/* Local landing hero motion: visual elements animate; the illustration frame, copy and controls stay fixed. */
.ngcity .nght-hero-visual, .ngcity .ngcp-hero-visual{position:relative;isolation:isolate}
.ngcity .nght-hero-visual > img, .ngcity .ngcp-hero-visual > img{display:block}
@media (prefers-reduced-motion:no-preference){
/* Every inline city SVG gains animated airborne highlights, even landmark types with static architecture. */
.ngcity.ngcp .ngcp-signature-scene .ngcity-hero-orbit-a{animation:ngCityOrbitA 4.7s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.ngcity.ngcp .ngcp-signature-scene .ngcity-hero-orbit-b{animation:ngCityOrbitB 3.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.ngcity.ngcp .ngcp-signature-scene .ngcity-hero-beam{animation:ngCityBeam 3.5s ease-in-out infinite}
/* Image-based city/state hero artwork: accents move above the art, never the card itself. */
.ngcity .nght-hero-visual:has(> img)::before,
.ngcity .ngcp-hero-visual:has(> img)::before{
 content:"";position:absolute;pointer-events:none;z-index:2;top:12%;right:11%;
 width:clamp(27px,6vw,57px);height:clamp(27px,6vw,57px);border-radius:50%;
 border:2px dashed rgba(255,255,255,.88);box-shadow:0 0 0 5px rgba(132,192,65,.14);
 animation:ngCityImageOrbit 7s linear infinite;
}
.ngcity .nght-hero-visual:has(> img)::after,
.ngcity .ngcp-hero-visual:has(> img)::after{
 content:"";position:absolute;pointer-events:none;z-index:2;bottom:19%;left:9%;
 width:clamp(45px,8vw,100px);height:3px;border-radius:99px;
 background:linear-gradient(90deg,transparent,rgba(255,255,255,.92),#B5E66A,transparent);
 animation:ngCityImageSweep 3.5s ease-in-out infinite;
}
}
@keyframes ngCityOrbitA{0%,100%{transform:translate(-12px,8px) scale(.82);opacity:.3}50%{transform:translate(16px,-13px) scale(1.15);opacity:.95}}
@keyframes ngCityOrbitB{0%,100%{transform:translate(12px,-9px);opacity:.85}50%{transform:translate(-15px,13px);opacity:.24}}
@keyframes ngCityBeam{0%,100%{stroke-dashoffset:100;opacity:.2}50%{stroke-dashoffset:0;opacity:1}}
@keyframes ngCityImageOrbit{to{transform:rotate(360deg)}}
@keyframes ngCityImageSweep{0%,100%{transform:translateX(-9px);opacity:.2}50%{transform:translateX(24px);opacity:.9}}
@media(max-width:600px){.ngcity .nght-hero-visual:has(> img)::before,.ngcity .ngcp-hero-visual:has(> img)::before{right:8%;top:9%}}
@media(prefers-reduced-motion:reduce){.ngcity .ngcity-hero-orbit-a,.ngcity .ngcity-hero-orbit-b,.ngcity .ngcity-hero-beam{animation:none!important}}
