/* A scenery frame surrounds the unchanged 4800 × 3600 city coordinates. */
.cw-stage .city-world-v140{box-sizing:content-box!important;border:360px solid transparent!important;border-radius:0!important;overflow:visible!important;clip-path:inset(0)}
.city-outskirts{position:absolute;inset:0;z-index:3;pointer-events:none;background:none}
.outskirts-ground{position:absolute;max-width:none!important;z-index:-1;pointer-events:none}
.mountain-range{position:absolute;max-width:none!important;width:1100px;height:auto;pointer-events:none;filter:none!important;opacity:.84}
.range-west{left:-360px;top:-330px;width:780px;transform:rotate(-4deg)}.range-east{left:4340px;top:-338px;width:820px;transform:scaleX(-1) rotate(-3deg)}
.range-southwest{left:-360px;top:3550px;width:940px;transform:rotate(4deg)}.range-southeast{left:4490px;top:3540px;width:960px;transform:scaleX(-1) rotate(3deg)}
.city-outskirts .fringe-tree{position:absolute;width:0;height:0;pointer-events:none}.fringe-tree img{position:absolute;bottom:0;height:auto;max-width:none!important;filter:none!important}
.rail-network,.rail-route{position:absolute;inset:0;pointer-events:none;overflow:visible}
.rail-civil{position:absolute;max-width:none!important;display:block;pointer-events:none}
.rail-car{position:absolute;left:-21.5px;top:calc(var(--rail-height) / -2);width:43px!important;height:var(--rail-height)!important;max-width:none!important;object-fit:fill;transform-origin:50% 50%;pointer-events:none;filter:none!important;will-change:transform}
.rail-car[hidden]{display:none!important}
body[data-art-season="autumn"] .mountain-range{filter:sepia(.13) saturate(.9)!important}

.outskirts-canal{position:absolute;max-width:none!important;z-index:-1;pointer-events:none}

/* суда на каналах */
#waterShips{position:absolute;left:0;top:0;width:0;height:0;z-index:5;pointer-events:none;overflow:visible}
.ws-ship{position:absolute;left:0;top:0;width:0;height:0;will-change:transform}
.ws-bob{position:absolute;left:0;top:0;width:0;height:0;animation:wsBob 4.2s ease-in-out infinite;animation-delay:var(--ph,0s)}
@keyframes wsBob{0%,100%{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-3px) rotate(.6deg)}}
.ws-ship img{position:absolute;max-width:none;pointer-events:none;user-select:none;filter:drop-shadow(0 6px 5px rgba(20,50,70,.35))}
.ws-wake{position:absolute;top:-6px;height:16px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(255,255,255,.55),rgba(255,255,255,.18) 55%,transparent 72%);animation:wsWake 2.6s ease-in-out infinite}
@keyframes wsWake{0%,100%{transform:scaleX(1);opacity:.75}50%{transform:scaleX(1.08);opacity:.45}}
body:not([data-screen="cityScreen"]) .ws-ship,body:not([data-screen="cityScreen"]) .ws-ship *{animation-play-state:paused!important}
body.perf-low .ws-wake{display:none}
@media(prefers-reduced-motion:reduce){.ws-bob,.ws-wake{animation:none}}

/* живая вода каналов: слой под судами, над мостами/насыпью вырезан clip-path'ом */
#waterFlow,#waterFlow .wf-in{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;overflow:visible}
#waterFlow{z-index:4}
.wf-band{position:absolute;overflow:hidden}
.wf-l{position:absolute;will-change:transform}
@keyframes wfx{to{transform:translate3d(var(--d),0,0)}}
@keyframes wfp{0%,100%{opacity:.3}50%{opacity:.66}}
@keyframes wfd{to{transform:translate3d(var(--d),var(--ey),0)}}
@keyframes wfdy{to{transform:translate3d(var(--ex),var(--d),0)}}
@keyframes wfy{to{transform:translate3d(0,var(--d),0)}}
body:not([data-screen="cityScreen"]) #waterFlow .wf-l{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){#waterFlow .wf-l{animation:none}}
