/* Only the home hero changes: existing type, copy and navigation remain intact. */
.ff-hero .ff-hero-image{opacity:1;pointer-events:none}
.ff-city-scene{position:absolute;inset:0;transform-origin:70% 50%}
.ff-hero .ff-city-scene>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;filter:saturate(.55);animation:none;transform:none;will-change:auto}
.ff-city-network{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}
.ff-hero:after{background:linear-gradient(90deg,rgba(7,14,17,.94),rgba(7,14,17,.66) 39%,rgba(7,14,17,.13) 76%,rgba(7,14,17,.05)),linear-gradient(0deg,rgba(10,17,20,.92),transparent 45%)}
.ff-city-rail{fill:none;stroke:#7ac5ca;stroke-width:1;opacity:.26}
.ff-city-trail{fill:none;stroke:#bdfff5;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:9 91;stroke-dashoffset:16;opacity:0}
.ff-city-halo{stroke:#57d9e2;stroke-width:6;filter:url(#ff-city-glow)}
.ff-city-ring{fill:none;stroke:#7ce3e2;stroke-width:1;opacity:.25;transform-box:fill-box;transform-origin:center}
.ff-city-ring-outer{opacity:0}
.ff-city-beacon{fill:#73eeec;opacity:.5;filter:url(#ff-city-glow)}
.ff-city-core{fill:#e5fffb}
.ff-city-needle{stroke:#b9fff7;stroke-width:1;opacity:.7}
.ff-motion-ready .ff-city-scene{animation:ff-city-drift 22s ease-in-out infinite alternate;will-change:transform}
.ff-motion-ready .ff-city-trail{animation:ff-city-flow var(--route-duration) linear var(--route-delay) infinite}
.ff-motion-ready .ff-city-ring{animation:ff-city-pulse 5.6s ease-out var(--node-delay) infinite}
.ff-motion-ready .ff-city-ring-outer{animation-delay:calc(var(--node-delay) - 2.8s)}
.ff-motion-ready .ff-city-beacon{animation:ff-city-breathe 4s ease-in-out var(--node-delay) infinite}
.ff-motion-paused .ff-city-scene,.ff-motion-paused .ff-city-network *{animation-play-state:paused!important}
@keyframes ff-city-flow{0%{stroke-dashoffset:16;opacity:0}12%{opacity:.95}82%{opacity:.95}100%{stroke-dashoffset:-100;opacity:0}}
@keyframes ff-city-pulse{0%{transform:scale(.4);opacity:0}18%{opacity:.65}100%{transform:scale(2.2);opacity:0}}
@keyframes ff-city-breathe{0%,100%{opacity:.3}50%{opacity:.85}}
@keyframes ff-city-drift{from{transform:scale(1.015) translate3d(0,0,0)}to{transform:scale(1.055) translate3d(-.5%,.4%,0)}}
@media(max-width:760px){
 .ff-hero .ff-city-scene>img,.ff-city-network{width:200%;max-width:none;left:-80%}
 .ff-hero:after{background:linear-gradient(90deg,rgba(7,14,17,.83),rgba(7,14,17,.60) 60%,rgba(7,14,17,.3)),linear-gradient(0deg,rgba(10,17,20,.96),transparent 68%)}
 .ff-city-network{opacity:.8}
 .ff-city-halo{display:none}
 .ff-city-trail{stroke-width:1.6}
 .ff-motion-ready .ff-city-scene{animation-duration:28s}
}
@media(prefers-reduced-motion:reduce){
 .ff-motion-ready .ff-city-scene,.ff-motion-ready .ff-city-network *{animation:none!important;will-change:auto}
 .ff-city-trail,.ff-city-ring-outer{display:none}
}
