/*!
 * 奇营主题 · 动态图标动画
 * 仅当页面用到动态图标时才加载（后台图标库预览常驻加载）。
 * 每个类对应 functions.php 中 qy_icon_anim() 里 SVG 自带的 class。
 * 尺寸由外层容器控制（前台导航 .nav-ico，底栏 .tab-item），此处只负责动起来。
 */

svg[class^="qy-anim-"],
svg[class*=" qy-anim-"] {
    display: block;
    transform-origin: 50% 50%;
    will-change: transform, opacity;
}

/* 旋转：加载 / 刷新 */
.qy-anim-spin { animation: qy-spin 1.4s linear infinite; }
@keyframes qy-spin {
    to { transform: rotate(360deg); }
}

/* 呼吸脉冲：圆点扩散 */
.qy-anim-pulse { animation: qy-pulse 1.6s ease-in-out infinite; }
@keyframes qy-pulse {
    0%, 100% { transform: scale(.82); opacity: .9; }
    50%      { transform: scale(1.12); opacity: 1; }
}

/* 上下弹跳：下载 / 上传 */
.qy-anim-bounce { animation: qy-bounce 1.5s ease-in-out infinite; }
@keyframes qy-bounce {
    0%, 100% { transform: translateY(-1.5px); }
    50%      { transform: translateY(1.5px); }
}

/* 左右平移：前往 / 跳转 */
.qy-anim-move { animation: qy-move 1.3s ease-in-out infinite; }
@keyframes qy-move {
    0%, 100% { transform: translateX(-1.5px); }
    50%      { transform: translateX(1.5px); }
}

/* 摇摆：铃铛 / 通知（以顶部为轴） */
.qy-anim-swing { transform-origin: 50% 4%; animation: qy-swing 1.8s ease-in-out infinite; }
@keyframes qy-swing {
    0%, 100% { transform: rotate(-13deg); }
    50%      { transform: rotate(13deg); }
}

/* 心跳：收藏 / 点赞 */
.qy-anim-heartbeat { animation: qy-heartbeat 1.4s ease-in-out infinite; }
@keyframes qy-heartbeat {
    0%, 100% { transform: scale(1); }
    14%      { transform: scale(1.2); }
    28%      { transform: scale(1); }
    42%      { transform: scale(1.16); }
    70%      { transform: scale(1); }
}

/* 闪烁：闪电 / 能量 */
.qy-anim-flash { animation: qy-flash 1.6s ease-in-out infinite; }
@keyframes qy-flash {
    0%, 100% { opacity: 1; transform: scale(1); }
    45%      { opacity: .45; transform: scale(.94); }
    55%      { opacity: .85; transform: scale(1.02); }
}

/* 抖动：礼物 / 惊喜 */
.qy-anim-jiggle { animation: qy-jiggle 1.5s ease-in-out infinite; }
@keyframes qy-jiggle {
    0%, 100% { transform: rotate(0deg); }
    20%      { transform: rotate(-9deg); }
    40%      { transform: rotate(7deg); }
    60%      { transform: rotate(-5deg); }
    80%      { transform: rotate(3deg); }
}

/* 打字中：三个圆点依次跳动 */
.qy-anim-typing circle { animation: qy-typing 1.2s ease-in-out infinite; }
.qy-anim-typing circle:nth-child(1) { animation-delay: 0s; }
.qy-anim-typing circle:nth-child(2) { animation-delay: .18s; }
.qy-anim-typing circle:nth-child(3) { animation-delay: .36s; }
@keyframes qy-typing {
    0%, 100% { opacity: .3; transform: translateY(0); }
    35%      { opacity: 1;  transform: translateY(-2.2px); }
}

/* 系统「减少动态效果」时全部静止，保持图标可见 */
@media (prefers-reduced-motion: reduce) {
    svg[class^="qy-anim-"],
    svg[class*=" qy-anim-"] {
        animation: none !important;
    }
}
