/* Decorative motion; values and availability remain controlled by the panel. */
#launchCard #onlineDot{animation:world-presence 2.8s ease-in-out infinite}
#launchCard .signal-bar{transform-box:view-box;transform-origin:50% 83.333%;animation:world-signal 2.8s ease-in-out var(--bar-delay) infinite;stroke-linecap:round}
#launchCard .clock-minute,#launchCard .clock-hour{transform-box:view-box;transform-origin:50% 50%;stroke-linecap:round;animation:world-clock 12s linear infinite}
#launchCard .clock-hour{animation-duration:72s}
#launchCard .guild-player-arriving{animation:guild-arrival 4.8s ease-in-out infinite}
#launchCard .guild-player-main{animation:guild-breathe 4.8s ease-in-out infinite}
#launchCard #communityStrip .metric-heading svg{animation:guild-aura 4.8s ease-in-out infinite}
@keyframes world-presence{0%,100%{opacity:.3;transform:scale(.8)}45%,60%{opacity:1;transform:scale(1.12);box-shadow:0 0 7px currentColor}}
@keyframes world-signal{0%,100%{transform:scaleY(.4);opacity:.5}45%,65%{transform:scaleY(1);opacity:1}}
@keyframes world-clock{to{transform:rotate(360deg)}}
@keyframes guild-arrival{0%,100%{opacity:.35;transform:translateX(1.5px)}35%,70%{opacity:1;transform:translateX(0)}}
@keyframes guild-breathe{0%,100%{opacity:.75}45%,70%{opacity:1}}
@keyframes guild-aura{0%,100%{filter:drop-shadow(0 0 0 transparent)}45%,60%{filter:drop-shadow(0 0 3px #d6ad5570)}}
@media(prefers-reduced-motion:reduce){#launchCard #onlineDot,#launchCard .signal-bar,#launchCard .clock-minute,#launchCard .clock-hour,#launchCard .guild-player-arriving,#launchCard .guild-player-main,#launchCard #communityStrip .metric-heading svg{animation:none}}
