.fh-badge{animation:fhFadeDown .5s ease-out both}.fh-source-card{animation:fhCardIn .6s ease-out both,fhFloat 3s ease-in-out infinite;animation-delay:var(--delay, 0s)}.fh-hub{animation:fhPulse 2.5s ease-in-out infinite}.fh-hub-glow{animation:fhGlow 2.5s ease-in-out infinite}.fh-dash{stroke:hsl(var(--accent) / .3);stroke-width:1.5;stroke-dasharray:6 4;fill:none;animation:fhDashFlow 1.5s linear infinite}@keyframes fhFadeDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes fhCardIn{0%{opacity:0;transform:scale(.85) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes fhFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes fhPulse{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.06)}}@keyframes fhGlow{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}}@keyframes fhDashFlow{to{stroke-dashoffset:-20}}@media (prefers-reduced-motion: reduce){.fh-badge,.fh-source-card,.fh-hub,.fh-hub-glow,.fh-dash{animation:none!important}.fh-source-card{opacity:1;transform:none}}
