/* Chart Animations */

@keyframes grow-bar {
    from { height: 0; opacity: 0; }
    to { opacity: 1; }
}

@keyframes draw-line {
    from { stroke-dashoffset: 1000; }
    to { stroke-dashoffset: 0; }
}

@keyframes fade-in-scale {
    from { opacity: 0; transform: scale(0.9); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes pulse-soft {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.8; transform: scale(1.05); }
}

@keyframes float-y {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

/* Components */

.chart-card {
    background: rgba(24, 24, 27, 0.8); /* zinc-900/80 */
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 1rem;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
}

.bar-chart-bar {
    animation: grow-bar 1.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    transform-origin: bottom;
}

.line-chart-path {
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
    animation: draw-line 2s ease-out forwards;
}

.floating-card {
    animation: float-y 6s ease-in-out infinite;
}

.floating-card-delayed {
    animation: float-y 7s ease-in-out infinite reverse;
}

.live-indicator {
    animation: pulse-soft 2s infinite;
}
