/* Custom styles for Jekyll site */
.prose {
  max-width: none;
}

.prose h2 {
  @apply text-2xl font-bold mt-8 mb-4 text-gray-900;
}

.prose p {
  @apply text-gray-600 leading-relaxed mb-4;
}

/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}

/* Custom animations */
@keyframes pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

.animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Focus styles for accessibility */
button:focus,
input:focus,
textarea:focus,
a:focus {
  outline: 2px solid #3b82f6;
  outline-offset: 2px;
}

/* Enhanced animations for GitHub section */
@keyframes float {
  0%,
  100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-10px);
  }
}

@keyframes glow {
  0%,
  100% {
    box-shadow: 0 0 5px rgba(34, 197, 94, 0.5);
  }
  50% {
    box-shadow: 0 0 20px rgba(34, 197, 94, 0.8), 0 0 30px rgba(34, 197, 94, 0.6);
  }
}

@keyframes gradient-shift {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.animate-float {
  animation: float 3s ease-in-out infinite;
}

.animate-glow {
  animation: glow 2s ease-in-out infinite;
}

.animate-gradient {
  background-size: 200% 200%;
  animation: gradient-shift 3s ease infinite;
}

/* Hover effects for contribution cards */
.contribution-card {
  transition: all 0.3s ease;
}

.contribution-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
}

/* Code block styling */
pre code {
  font-family: "Fira Code", "Consolas", monospace;
}

/* Data flow animation */
@keyframes dataflow {
  0% {
    transform: translateY(-100%);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    transform: translateY(100%);
    opacity: 0;
  }
}

.animate-dataflow {
  animation: dataflow linear infinite;
}

/* Floating animation */
@keyframes float-custom {
  0%,
  100% {
    transform: translateY(0) rotate(var(--rotation, 0deg));
  }
  50% {
    transform: translateY(-10px) rotate(var(--rotation, 0deg));
  }
}

.animate-float-custom {
  animation: float-custom ease-in-out infinite;
}

a {
  outline: none !important;
}

a:focus {
  outline: none !important;
}

@keyframes matrixFall {
  to {
    transform: translateY(200vh);
  }
}

/* Organization Hierarchy Styles */
.org-hierarchy-container {
  position: relative;
  min-height: 400px;
}

.hierarchy-svg {
  background: transparent;
  overflow: visible;
}

/* Node styles */
.node {
  cursor: pointer;
  transition: all 0.3s ease;
}

.node-circle {
  fill: #1e293b;
  stroke: #3b82f6;
  stroke-width: 2;
  filter: drop-shadow(0 0 10px rgba(59, 130, 246, 0.3));
  transition: all 0.3s ease;
}

.node:hover .node-circle {
  fill: #1e40af;
  stroke: #60a5fa;
  stroke-width: 3;
  filter: drop-shadow(0 0 20px rgba(59, 130, 246, 0.6));
  transform: scale(1.05);
}

/* Icon styles */
.node-icon {
  pointer-events: none;
  transition: all 0.3s ease;
}

.node:hover .node-icon path {
  stroke: #60a5fa;
  filter: drop-shadow(0 0 5px rgba(96, 165, 250, 0.6));
}

.node-label {
  fill: #94a3b8;
  font-family: "Monaco", "Consolas", monospace;
  font-size: 11px;
  text-anchor: middle;
  pointer-events: none;
}

/* Connection lines */
.connection-line {
  stroke: #374151;
  stroke-width: 2;
  fill: none;
  opacity: 0.6;
  transition: all 0.3s ease;
}

.connection-line.active {
  stroke: #3b82f6;
  stroke-width: 3;
  opacity: 1;
  filter: drop-shadow(0 0 5px rgba(59, 130, 246, 0.6));
}

/* Data flow animation */
.data-flow {
  fill: #60a5fa;
  filter: drop-shadow(0 0 8px rgba(96, 165, 250, 0.8));
  animation: dataFlow 2s ease-in-out;
}

@keyframes dataFlow {
  0% {
    opacity: 0;
    r: 2;
  }
  25% {
    opacity: 1;
    r: 4;
  }
  75% {
    opacity: 1;
    r: 4;
  }
  100% {
    opacity: 0;
    r: 2;
  }
}

/* Glow effects */
.pulse-glow {
  animation: pulseGlow 3s infinite ease-in-out;
}

@keyframes pulseGlow {
  0%,
  100% {
    filter: drop-shadow(0 0 10px rgba(59, 130, 246, 0.3));
  }
  50% {
    filter: drop-shadow(0 0 25px rgba(59, 130, 246, 0.7));
  }
}

/* Info panel */
.node-info.visible {
  opacity: 1 !important;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .org-hierarchy-container {
    padding: 1rem;
  }

  .hierarchy-svg {
    height: 300px;
  }

  .node-text {
    font-size: 12px;
  }

  .node-label {
    font-size: 9px;
  }
}
