html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Plus Jakarta Sans', 'Inter', 'Noto Sans Armenian', sans-serif;
  background-color: #FAFAFA;
  color: #0B132B;
}

.font-display {
  font-family: 'Syne', 'Plus Jakarta Sans', 'Inter', 'Noto Sans Armenian', sans-serif;
}

/* Timeline connector line */
.timeline-item {
  position: relative;
  padding-left: 2.5rem;
}

.timeline-item::before {
  content: "";
  position: absolute;
  left: 0.4375rem;
  top: 1.75rem;
  bottom: -2rem;
  width: 2px;
  background-color: rgba(11, 19, 43, 0.15);
}

.timeline-item:last-child::before {
  display: none;
}

.timeline-dot {
  position: absolute;
  left: 0;
  top: 0.375rem;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 9999px;
  background-color: #E63946;
  border: 4px solid #FAFAFA;
  box-shadow: 0 0 0 2px rgba(11, 19, 43, 0.25), 0 0 12px 2px rgba(230, 57, 70, 0.45);
}

::selection {
  background-color: #E63946;
  color: #FFFFFF;
}

/* Scroll entrance animation for static section wrappers */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Pop-in animation for dynamically-rendered card grids (plays on every render) */
@keyframes popIn {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

.pop-in {
  animation: popIn 0.6s ease both;
}

/* Custom red glow shadow used by hover:shadow-glow (fallback if not resolved by Tailwind config) */
.shadow-glow {
  box-shadow: 0 12px 30px -10px rgba(230, 57, 70, 0.45);
}
