| @keyframes fadeSlideIn { |
| 0% { |
| opacity: 0; |
| transform: translateY(10px); |
| } |
| 100% { |
| opacity: 1; |
| transform: translateY(0); |
| } |
| } |
|
|
| @keyframes fadeSlideInRight { |
| 0% { |
| opacity: 0; |
| transform: translateX(10px); |
| } |
| 100% { |
| opacity: 1; |
| transform: translateX(0); |
| } |
| } |
|
|
| @keyframes fadeSlideInCenter { |
| 0% { |
| opacity: 0; |
| transform: translateX(-50%) translateY(-10px); |
| } |
| 100% { |
| opacity: 1; |
| transform: translateX(-50%) translateY(0); |
| } |
| } |
|
|
| @keyframes pulse { |
| 0%, |
| 100% { |
| opacity: 1; |
| } |
| 50% { |
| opacity: 0.5; |
| } |
| } |
|
|
| @keyframes glowPulse { |
| 0%, |
| 100% { |
| text-shadow: |
| 0 0 4px currentColor, |
| 0 0 8px currentColor; |
| } |
| 50% { |
| text-shadow: |
| 0 0 6px currentColor, |
| 0 0 14px currentColor, |
| 0 0 20px currentColor; |
| } |
| } |
|
|
| @keyframes borderGlow { |
| 0%, |
| 100% { |
| border-color: rgba(100, 200, 255, 0.15); |
| box-shadow: 0 0 8px rgba(0, 240, 255, 0.05); |
| } |
| 50% { |
| border-color: rgba(100, 200, 255, 0.3); |
| box-shadow: 0 0 16px rgba(0, 240, 255, 0.1); |
| } |
| } |
|
|
| @keyframes dotBlink { |
| 0%, |
| 100% { |
| opacity: 1; |
| } |
| 50% { |
| opacity: 0.3; |
| } |
| } |
|
|
| @keyframes shimmer { |
| 0% { |
| background-position: -100% 0; |
| } |
| 100% { |
| background-position: 200% 0; |
| } |
| } |
|
|
| @keyframes eventSlideIn { |
| 0% { |
| opacity: 0; |
| transform: translateX(-20px); |
| max-height: 0; |
| } |
| 100% { |
| opacity: 1; |
| transform: translateX(0); |
| max-height: 30px; |
| } |
| } |
|
|
| @keyframes generationFlash { |
| 0% { |
| color: var(--neon-cyan); |
| text-shadow: |
| 0 0 10px var(--neon-cyan), |
| 0 0 20px var(--neon-cyan), |
| 0 0 40px var(--neon-cyan); |
| } |
| 100% { |
| color: var(--neon-cyan); |
| text-shadow: |
| 0 0 4px var(--neon-cyan), |
| 0 0 8px var(--neon-cyan); |
| } |
| } |
|
|
| @keyframes announcementPulse { |
| 0% { |
| background: rgba(0, 240, 255, 0.1); |
| border-color: rgba(0, 240, 255, 0.3); |
| } |
| 50% { |
| background: rgba(0, 240, 255, 0.15); |
| border-color: rgba(0, 240, 255, 0.5); |
| } |
| 100% { |
| background: rgba(0, 240, 255, 0.1); |
| border-color: rgba(0, 240, 255, 0.3); |
| } |
| } |
|
|
| @keyframes breathe { |
| 0%, |
| 100% { |
| opacity: 0.85; |
| } |
| 50% { |
| opacity: 0.95; |
| } |
| } |
|
|
| @keyframes scanLine { |
| 0% { |
| transform: translateY(-100%); |
| } |
| 100% { |
| transform: translateY(200%); |
| } |
| } |
|
|
| @keyframes dataPop { |
| 0% { |
| transform: scale(0); |
| opacity: 0; |
| } |
| 60% { |
| transform: scale(1.3); |
| opacity: 1; |
| } |
| 100% { |
| transform: scale(1); |
| opacity: 1; |
| } |
| } |
|
|
| #panel-stats { |
| animation: fadeSlideIn 0.5s ease-out both; |
| animation-delay: 0.1s; |
| } |
|
|
| #panel-performance { |
| animation: fadeSlideInRight 0.5s ease-out both; |
| animation-delay: 0.2s; |
| } |
|
|
| #panel-generation { |
| animation: fadeSlideInCenter 0.6s ease-out both; |
| animation-delay: 0.05s; |
| } |
|
|
| #panel-events { |
| animation: fadeSlideIn 0.5s ease-out both; |
| animation-delay: 0.3s; |
| } |
|
|
| #panel-charts { |
| animation: fadeSlideInRight 0.5s ease-out both; |
| animation-delay: 0.4s; |
| } |
|
|
| .hud-panel { |
| animation: borderGlow 4s ease-in-out infinite; |
| } |
|
|
| .stat-value { |
| animation: glowPulse 3s ease-in-out infinite; |
| } |
|
|
| .event-entry { |
| animation: eventSlideIn 0.3s ease-out both; |
| } |
|
|
| .live-indicator { |
| display: inline-block; |
| width: 6px; |
| height: 6px; |
| border-radius: 50%; |
| background: var(--neon-green); |
| margin-right: 6px; |
| animation: dotBlink 1.5s ease-in-out infinite; |
| } |
|
|
| .generation-flash { |
| animation: generationFlash 1s ease-out; |
| } |
|
|
| .announcement { |
| position: fixed; |
| top: 60px; |
| left: 50%; |
| transform: translateX(-50%); |
| z-index: var(--z-announcements); |
| padding: 8px 24px; |
| border-radius: 8px; |
| border: 1px solid var(--neon-cyan); |
| background: rgba(6, 6, 15, 0.9); |
| backdrop-filter: blur(12px); |
| font-family: var(--font-mono); |
| font-size: 13px; |
| color: var(--neon-cyan); |
| white-space: nowrap; |
| pointer-events: none; |
| animation: announcementPulse 2s ease-in-out; |
| opacity: 0; |
| transition: opacity 0.3s ease; |
| } |
|
|
| .announcement.visible { |
| opacity: 1; |
| } |
|
|
| @media (prefers-reduced-motion: reduce) { |
| .hud-panel, |
| .stat-value, |
| .event-entry, |
| .live-indicator, |
| .announcement { |
| animation: none !important; |
| } |
|
|
| .announcement { |
| transition: none !important; |
| } |
| } |
|
|