/* === Advanced Traffic Booster Toolkit Animations === */
@keyframes fadeIn {
    from { opacity:0; transform:translateY(20px); }
    to { opacity:1; transform:translateY(0); }
}
@keyframes slideIn {
    from { opacity:0; transform:translateX(-50px); }
    to { opacity:1; transform:translateX(0); }
}
@keyframes bounce {
    0%, 20%, 50%, 80%, 100% { transform:translateY(0); }
    40% { transform:translateY(-10px); }
    60% { transform:translateY(-5px); }
}
@keyframes pulse {
    0% { transform:scale(1); }
    50% { transform:scale(1.05); }
    100% { transform:scale(1); }
}
@keyframes spin {
    to { transform:rotate(360deg); }
}
@keyframes progressAnimation {
    0% { width:0%; }
    50% { width:70%; }
    100% { width:100%; }
}
@keyframes fadeOut {
    to { opacity:0; transform:translateX(100px); }
}
@keyframes typing {
    0%, 20% { content:'.'; }
    40% { content:'..'; }
    60%, 100% { content:'...'; }
}

/* Apply */
.stat-card { animation:fadeIn 0.6s ease; }
.stat-card:nth-child(1) { animation-delay:0.1s; }
.stat-card:nth-child(2) { animation-delay:0.2s; }
.stat-card:nth-child(3) { animation-delay:0.3s; }
.stat-card:nth-child(4) { animation-delay:0.4s; }

.tab-btn { animation:slideIn 0.5s ease; }
.tab-btn:nth-child(1) { animation-delay:0.1s; }
.tab-btn:nth-child(2) { animation-delay:0.2s; }
.tab-btn:nth-child(3) { animation-delay:0.3s; }
.tab-btn:nth-child(4) { animation-delay:0.4s; }
.tab-btn:nth-child(5) { animation-delay:0.5s; }

/* Hover Shine */
.traffic-booster-btn::before {
    content:''; position:absolute; top:0; left:-100%; width:100%; height:100%;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    transition:left 0.5s;
}
.traffic-booster-btn:hover::before { left:100%; }

/* Spinner */
.loading-spinner {
    display:inline-block; width:18px; height:18px; border:3px solid rgba(255,255,255,0.3);
    border-radius:50%; border-top-color:#fff; animation:spin 1s ease-in-out infinite; vertical-align:middle; margin-left:8px;
}

/* Notification */
.notification {
    position:fixed; top:20px; right:20px; padding:15px 25px; background:var(--secondary-color); color:#fff;
    border-radius:8px; box-shadow:var(--shadow); z-index:1000; animation:slideIn 0.3s ease, fadeOut 0.3s ease 2.7s forwards;
}

/* Tooltip */
.tooltip { position:relative; display:inline-block; }
.tooltip .tooltip-text {
    visibility:hidden; width:220px; background:var(--card-bg); color:var(--text-color); text-align:center;
    border-radius:6px; padding:10px; position:absolute; z-index:10; bottom:125%; left:50%; margin-left:-110px;
    opacity:0; transition:opacity 0.3s; border:1px solid var(--border-color); box-shadow:var(--shadow); font-size:0.9rem;
}
.tooltip:hover .tooltip-text { visibility:visible; opacity:1; animation:fadeIn 0.3s ease; }