/* =========================================================
   LinkNest 资源搜索 - 轨道动画（orbit）
   视觉参考 quanpan.xyz 首页轨道
   ========================================================= */

.orbit { margin-top: 44px; }

.orbit-wrap {
    position: relative;
    width: 380px;
    height: 380px;
    margin: 0 auto;
}

/* 中心 logo */
.orbit-center {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 3;
}
.orbit-center .fb {
    display: flex;
    width: 86px;
    height: 86px;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(82, 104, 255, .3);
    overflow: hidden;
}
.orbit-center img { width: 100%; height: 100%; }

/* 扩散光环 */
.pulse-ring {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 210px;
    height: 210px;
    margin-left: -105px;
    margin-top: -105px;
    border: 2px solid rgba(82, 104, 255, .32);
    border-radius: 50%;
    animation: pulse 9s ease-out infinite;
    pointer-events: none;
}
@keyframes pulse {
    0% { transform: scale(.35); opacity: 1; }
    100% { transform: scale(1.5); opacity: 0; }
}

/* 轨道环：整体缓慢旋转，items 反向自旋保持图标直立 */
.orbit-ring {
    position: absolute;
    inset: 0;
    animation: orbit-spin 32s linear infinite;
}
.orbit-ring-2 { animation-duration: 46s; animation-direction: reverse; }

@keyframes orbit-spin { to { transform: rotate(360deg); } }

.orbit-item {
    --deg: 0deg;
    --r: 150px;
    position: absolute;
    left: 50%;
    top: 50%;
    width: 52px;
    height: 52px;
    margin-left: -26px;
    margin-top: -26px;
    animation: orbit-item 32s linear infinite;
    z-index: 2;
}
.orbit-ring-2 .orbit-item { animation-duration: 46s; animation-direction: reverse; }

/* 放置到环上角度 --deg、半径 --r，并反向旋转抵消环的转动，图标始终直立 */
@keyframes orbit-item {
    from {
        transform: rotate(var(--deg)) translateX(var(--r)) rotate(calc(var(--deg) * -1));
    }
    to {
        transform: rotate(var(--deg)) translateX(var(--r)) rotate(calc(var(--deg) * -1 - 360deg));
    }
}

.orbit-item.pos-0   { --deg: 0deg; }
.orbit-item.pos-60  { --deg: 60deg; }
.orbit-item.pos-120 { --deg: 120deg; }
.orbit-item.pos-180 { --deg: 180deg; }
.orbit-item.pos-240 { --deg: 240deg; }
.orbit-item.pos-300 { --deg: 300deg; }

.orbit-ring-1 .orbit-item { --r: 152px; }
.orbit-ring-2 .orbit-item { --r: 92px; }

.orbit-item .fb {
    display: flex;
    width: 100%;
    height: 100%;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(30, 60, 120, .15);
    overflow: hidden;
}
.orbit-item img { width: 100%; height: 100%; }

/* 数据粒子 */
.data-particle {
    position: absolute;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    animation: float var(--dur, 4s) ease-in-out infinite;
    opacity: .85;
    z-index: 1;
}
@keyframes float {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(var(--dx, 20px), var(--dy, 20px)); }
}

/* ==================== 响应式 ==================== */
@media only screen and (max-width: 767px) {
    .orbit { margin-top: 30px; }
    .orbit-wrap { width: 280px; height: 280px; }
    .orbit-ring-1 .orbit-item { --r: 108px; }
    .orbit-ring-2 .orbit-item { --r: 64px; }
    .orbit-item { width: 40px; height: 40px; margin-left: -20px; margin-top: -20px; }
    .orbit-center .fb { width: 64px; height: 64px; border-radius: 18px; }
    .pulse-ring { width: 160px; height: 160px; margin-left: -80px; margin-top: -80px; }
}
