/* ============================================================
   animations.css — Keyframe animations and transition helpers
   ============================================================ */

/* ── AI Orb pulsing ring ── */
@keyframes pulse-ring {
  0% {
    transform: scale(0.85);
    opacity: 0.7;
  }
  50% {
    transform: scale(1.15);
    opacity: 0.2;
  }
  100% {
    transform: scale(0.85);
    opacity: 0.7;
  }
}

/* ── AI status dot pulse ── */
@keyframes pulse-dot {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.3; }
}

/* ── Map location ping ── */
@keyframes map-ping {
  0% {
    transform: scale(0.6);
    opacity: 0.9;
  }
  70% {
    transform: scale(2.2);
    opacity: 0;
  }
  100% {
    transform: scale(0.6);
    opacity: 0;
  }
}

/* ── Typing cursor blink ── */
@keyframes blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0; }
}

/* ── Panel overlay fade-in ── */
@keyframes panel-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ── Overlay backdrop fade ── */
@keyframes backdrop-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ── Utility classes ── */
.animate-pulse-ring {
  animation: pulse-ring 2s ease-in-out infinite;
}

.animate-pulse-dot {
  animation: pulse-dot 2s ease-in-out infinite;
}

.animate-map-ping {
  animation: map-ping 2s ease-out infinite;
}

.animate-blink {
  animation: blink 0.8s step-end infinite;
}

/* Panel overlay visibility */
.panel-overlay {
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-base);
}

.panel-overlay.visible {
  opacity: 1;
  pointer-events: all;
  animation: backdrop-in var(--transition-base) ease forwards;
}

.panel-overlay.visible .panel-card {
  animation: panel-in 0.25s ease forwards;
}

/* Mini panel hover lift */
.mini-panel {
  transition: transform var(--transition-fast), background var(--transition-fast);
}

.mini-panel:hover {
  transform: translateY(-1px);
  background: var(--bg-surface-hover);
}

/* Command bar focus glow */
.command-bar {
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.command-bar:focus-within {
  border-color: var(--accent-blue) !important;
  box-shadow: 0 0 0 3px rgba(82, 120, 255, 0.15);
}

/* Nav pill hover */
.nav-pill {
  transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

/* Chip hover */
.quick-chip {
  transition: background var(--transition-fast), transform var(--transition-fast);
}

.quick-chip:hover {
  background: var(--bg-surface-hover);
  transform: translateY(-1px);
}

/* News card hover */
.news-card {
  transition: background var(--transition-fast), transform var(--transition-fast);
}

.news-card:hover {
  background: var(--bg-surface-hover);
  transform: translateY(-1px);
}

/* Video card hover */
.video-card {
  transition: transform var(--transition-fast);
}

.video-card:hover {
  transform: translateY(-2px);
}

/* Email row hover */
.email-row {
  transition: background var(--transition-fast);
}

.email-row:hover {
  background: var(--bg-surface-hover);
}
