@property --incident-color{syntax:"<color>";inherits:true;initial-value:#52a7ff}
/* Living city v2: one coordinate system for artwork, occlusion and activity. */
/* Day, dusk and night use independently lit artwork, without a brightness filter. */
.city-sky-dusk,.city-sky-night,.city-stars,.city-practical-lights{opacity:0;transition:opacity 1.2s ease}
body[data-scene-light="sunset"] .city-sky-dusk{opacity:1}
body[data-scene-light="night"] .city-sky-night{opacity:1}
body[data-scene-light="night"] .city-stars{opacity:.8}
body[data-scene-light="sunset"] .city-practical-lights{opacity:.4}
body[data-scene-light="night"] .city-practical-lights{opacity:.9}
.living-city .scene-searchlights{display:none}
.living-city .city-searchlight{opacity:0;transform-origin:0 0}
.living-city .city-incident,.living-city .city-gunflash{opacity:0;pointer-events:none}
body[data-scene-light="day"] .city-searchlights,body[data-scene-light="day"] [data-scene-layer="street-activity"]{visibility:hidden}
.city-cloud-drift{animation:city-cloud-drift 150s ease-in-out infinite alternate;animation-play-state:var(--vi-motion);opacity:.45}
@keyframes city-cloud-drift{from{transform:translateX(-80px)}to{transform:translateX(90px)}}
.living-city .scene-plane-light-red,.living-city .scene-plane-light-green,.living-city .scene-plane-light-tail{animation:none;opacity:1;filter:drop-shadow(0 0 1.5px currentColor)}
.living-city .scene-plane-light-beacon{animation:city-aircraft-beacon 1.6s linear infinite;animation-play-state:var(--vi-motion)}
.living-city .scene-plane-light-strobe{animation:city-aircraft-strobe 2.1s linear infinite;animation-play-state:var(--vi-motion);filter:drop-shadow(0 0 2px #fff)}
@keyframes city-aircraft-beacon{0%,8%,18%,100%{opacity:0}10%,15%{opacity:1}}
@keyframes city-aircraft-strobe{0%,4%,10%,14%,100%{opacity:0}5%,8%,11%,13%{opacity:1}}
body .animated-page-background:after{background:linear-gradient(#101b24cf,#101b24ec)}
body[data-game-theme="gta-v"] .animated-page-background:after{background:linear-gradient(#101815cf,#101815ec)}
body[data-game-theme="gta-vi"] .animated-page-background:after{background:linear-gradient(#1c1029cf,#1c1029ec)}
body[data-game-theme="fivem"] .animated-page-background:after{background:linear-gradient(#101d20cf,#101d20ec)}
.animated-page-background .city-copy-shade{opacity:.4}
body .vi-scene-copy h1,body .arrival-copy h1,body .wreckd-city-copy h1{text-shadow:0 2px 14px #0008}
@media(prefers-reduced-motion:reduce){.city-cloud-drift,.living-city .scene-plane-light{animation:none!important}.living-city .city-incident,.living-city .city-gunflash,.living-city .city-searchlights{display:none}}

body.community-site .exclusive-banner{background-image:linear-gradient(90deg,#0a1622e8,#0a162220),url(artwork/living-city-all-day-v8.webp),linear-gradient(#17283e,#34485d);background-position:center,center 60%,center;background-size:cover}

body.community-site[data-scene-light="sunset"] .exclusive-banner{background-image:linear-gradient(90deg,#0a1622e8,#0a162220),url(artwork/living-city-all-sunset-v8.webp),linear-gradient(#17283e,#34485d)}
body.community-site[data-scene-light="night"] .exclusive-banner{background-image:linear-gradient(90deg,#0a1622e8,#0a162220),url(artwork/living-city-all-night-v8.webp),linear-gradient(#17283e,#34485d)}

/* Airship: shaded envelope, cabin illumination and distinct running lights. */
.scene-blimp-hull{opacity:.95}
.scene-blimp-illumination{opacity:0}
body[data-scene-light="sunset"] .scene-blimp-illumination{opacity:.65}
body[data-scene-light="night"] .scene-blimp-illumination{opacity:1}
body[data-scene-light="night"] .scene-blimp-hull{opacity:.8}
.scene-blimp-nav,.scene-blimp-tail-light{filter:drop-shadow(0 0 1px currentColor)}
.scene-blimp-beacon{animation:city-aircraft-beacon 2.4s linear infinite;animation-play-state:var(--vi-motion);filter:drop-shadow(0 0 1px #ff5260)}
.scene-blimp-strobe{animation:city-aircraft-strobe 3.3s linear infinite;animation-play-state:var(--vi-motion);filter:drop-shadow(0 0 1px #fff)}
@media(prefers-reduced-motion:reduce){.scene-blimp-beacon,.scene-blimp-strobe{animation:none}}

.scene-bird-pass{visibility:hidden;pointer-events:none}
body[data-scene-light="day"] .scene-bird-pass{visibility:visible}
.scene-bird-wing{transform-box:fill-box;transform-origin:center;animation:city-bird-wing 1.1s ease-in-out infinite;animation-play-state:var(--vi-motion)}
.scene-bird-wing-1{animation-delay:-.35s}.scene-bird-wing-2{animation-delay:-.7s}
@keyframes city-bird-wing{0%,35%,100%{transform:scaleY(1)}50%{transform:scaleY(-.6)}65%{transform:scaleY(.8)}}
.scene-distant-strobe{animation:city-aircraft-strobe 2.8s linear infinite;animation-play-state:var(--vi-motion);filter:drop-shadow(0 0 .65px #e9f4ff)}
.scene-distant-flight-1 .scene-distant-strobe{animation-delay:-.9s}.scene-distant-flight-2 .scene-distant-strobe{animation-delay:-1.8s}
.scene-distant-flight-1 .scene-distant-red{animation-delay:-.6s}.scene-distant-flight-2 .scene-distant-red{animation-delay:-1.5s}
body[data-scene-light="day"] .scene-distant-lights{opacity:.35}
@media(prefers-reduced-motion:reduce){.scene-bird-pass,.scene-distant-flight{display:none}.scene-bird-wing,.scene-distant-strobe{animation:none}}

/* Sky-led illustrated edition. Preserve scenery occlusion; light only mapped activity. */
.living-city .city-road-vehicle{opacity:0;pointer-events:none}
.city-road-red,.city-road-blue{opacity:0}
.city-road-vehicle[data-service=police] .city-road-red,.city-road-vehicle[data-service=fire] .city-road-red{animation:city-aircraft-beacon .65s steps(1) infinite;animation-play-state:var(--vi-motion)}
.city-road-vehicle[data-service=police] .city-road-blue{animation:city-aircraft-beacon .65s steps(1) infinite reverse;animation-delay:-.32s;animation-play-state:var(--vi-motion)}
.city-road-vehicle[data-service=fire] .city-road-body{fill:#8d4540}
body[data-scene-light=day] .city-road-headlamp,body[data-scene-light=day] .city-road-wash{opacity:0}
body[data-scene-light=day] .living-city [data-scene-layer=street-activity]{visibility:visible}
.living-city .scene-aircraft-pass,.living-city .scene-banner-flight,.living-city .scene-blimp-pass,.living-city .scene-ufo-pass{filter:none}
body[data-scene-light=day] .living-city .scene-plane-light{opacity:.25;filter:none}
.living-city .city-copy-shade{opacity:.65}
body.community-site .wreckd-arrival:before,body.community-site .city-arrival:before,body.community-site .vi-scene:before{background:linear-gradient(90deg,#071521b8,#07152155 48%,transparent 80%),linear-gradient(0deg,#07152185,transparent 38%)}
@media(prefers-reduced-motion:reduce){.city-road-vehicle,.city-gunflash{display:none}}
.city-fire-incident{opacity:0}@media(prefers-reduced-motion:reduce){.city-fire-incident{display:none}}
@media(min-width:900px){body.community-site .wreckd-arrival,body.community-site .city-arrival,body.community-site .vi-scene{aspect-ratio:16/9;min-height:620px}}

/* Bird wingbeats alternate short flapping bursts with longer glides. */
.scene-bird-member .scene-bird-wing{animation:sky-bird-flap var(--bird-flap,3.2s) ease-in-out infinite;animation-delay:var(--bird-delay,0s);animation-play-state:var(--vi-motion)}
@keyframes sky-bird-flap{0%,12%,24%,36%,48%,100%{transform:scaleY(1)}6%,18%,30%,42%{transform:scaleY(-.65)}}
.scene-balloon-pass{opacity:0;pointer-events:none}.scene-balloon-heat{opacity:.035}.scene-balloon-glow{opacity:.25}
body[data-scene-light=sunset] .scene-balloon-glow{opacity:.6}body[data-scene-light=night] .scene-balloon-glow{opacity:.95}
body[data-scene-light=night] .scene-balloon-cloth{filter:brightness(.48) saturate(.75)}
.scene-balloon-flame{transform-origin:0 23px;animation:sky-burner-flicker .22s ease-in-out infinite alternate;animation-play-state:var(--vi-motion)}
@keyframes sky-burner-flicker{from{transform:scaleY(.86)}to{transform:scaleY(1.1)}}
.city-painted-sky,.scene-moving-clouds{transform-origin:0 0;pointer-events:none}
@media(prefers-reduced-motion:reduce){.scene-balloon-pass{display:none}.scene-balloon-flame,.scene-bird-member .scene-bird-wing{animation:none}}
/* Filled gull silhouettes: wings fold gently about the shoulder, with long glides. */
.scene-bird-member .scene-bird-wing-left{transform-box:fill-box;transform-origin:100% 70%;animation-name:sky-gull-left}
.scene-bird-member .scene-bird-wing-right{transform-box:fill-box;transform-origin:0% 70%;animation-name:sky-gull-right}
@keyframes sky-gull-left{0%,18%,36%,54%,100%{transform:rotate(0) scaleY(1)}9%,27%,45%{transform:rotate(12deg) scaleY(.5)}}
@keyframes sky-gull-right{0%,18%,36%,54%,100%{transform:rotate(0) scaleY(1)}9%,27%,45%{transform:rotate(-12deg) scaleY(.5)}}
