@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800;900&family=Fira+Code:wght@500;700&display=swap');

body {
  font-family: 'Plus Jakarta Sans', sans-serif;
  background-color: #030712;
  color: #ffffff;
  overflow-x: hidden;
}

.hero-bg {
  background: radial-gradient(circle at 65% 45%, #0f274a 0%, #060e1e 50%, #030712 100%);
  position: relative;
}

.grid-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 55%;
  background-image: 
    linear-gradient(to right, rgba(0, 180, 255, 0.15) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(0, 180, 255, 0.15) 1px, transparent 1px);
  background-size: 50px 50px;
  transform: perspective(600px) rotateX(65deg);
  transform-origin: bottom center;
  mask-image: linear-gradient(to top, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 80%);
  -webkit-mask-image: linear-gradient(to top, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 80%);
  pointer-events: none;
  animation: grid-move 8s linear infinite;
}

@keyframes grid-move {
  0% { background-position: 0 0; }
  100% { background-position: 0 50px; }
}

.nav-container {
  position: relative;
}

.nav-link {
  position: relative;
  padding-bottom: 6px;
  transition: color 0.25s ease;
  cursor: pointer;
  color: #d1d5db;
}

.nav-link:hover,
.nav-link.active {
  color: #38bdf8;
  text-shadow: 0 0 12px rgba(56, 189, 248, 0.6);
}

.nav-sliding-indicator {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 2.5px;
  background: linear-gradient(90deg, #38bdf8, #00d2ff);
  border-radius: 9999px;
  box-shadow: 0 0 12px rgba(56, 189, 248, 0.95), 0 0 4px rgba(56, 189, 248, 0.7);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), width 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.25s ease;
  pointer-events: none;
  opacity: 0;
}

@keyframes badge-shimmer {
  0% { transform: translateX(-150%) skewX(-25deg); }
  30%, 100% { transform: translateX(250%) skewX(-25deg); }
}

@keyframes icon-pulse-glow {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 5px #38bdf8); }
  50% { transform: scale(1.15); filter: drop-shadow(0 0 14px #38bdf8); }
}

.badge-interactive {
  position: relative;
  overflow: hidden;
  background: rgba(8, 24, 56, 0.75);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(56, 189, 248, 0.85);
  box-shadow: 0 0 25px rgba(56, 189, 248, 0.45), inset 0 0 15px rgba(56, 189, 248, 0.2);
  cursor: default;
  user-select: none;
}

.badge-interactive::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 40%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.25), transparent);
  animation: badge-shimmer 4.5s ease-in-out infinite;
  pointer-events: none;
}

.badge-icon-animated {
  animation: icon-pulse-glow 2.5s ease-in-out infinite;
}

@keyframes programmerEntry {
  0% { opacity: 0; transform: translateX(80px) scale(0.94); }
  100% { opacity: 1; transform: translateX(0) scale(1); }
}

.animate-programmer-entry {
  animation: programmerEntry 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  will-change: transform, opacity;
}

@keyframes techFloatUp {
  0% { opacity: 0; transform: translateY(25px) scale(0.7); }
  60% { opacity: 0.95; transform: translateY(-4px) scale(1.05); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes subtleFloating {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-7px); }
}

.tech-icon-item {
  opacity: 0;
  animation: techFloatUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards, subtleFloating 4.5s ease-in-out infinite;
  font-family: 'Fira Code', monospace;
  pointer-events: none;
}

.tech-d-1 { animation-delay: 1.1s, 1.9s; }
.tech-d-2 { animation-delay: 1.3s, 2.1s; }
.tech-d-3 { animation-delay: 1.5s, 2.3s; }
.tech-d-4 { animation-delay: 1.7s, 2.5s; }
.tech-d-5 { animation-delay: 1.9s, 2.7s; }
.tech-d-6 { animation-delay: 2.1s, 2.9s; }

.tech-pill-glass {
  background: rgba(10, 26, 56, 0.45);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(56, 189, 248, 0.28);
  box-shadow: 0 0 16px rgba(0, 180, 255, 0.2), inset 0 0 10px rgba(56, 189, 248, 0.1);
}

.text-gradient-hero {
  background: linear-gradient(135deg, #00d2ff 0%, #7059ff 60%, #b862ff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.text-glow {
  text-shadow: 0 0 20px rgba(56, 189, 248, 0.6);
}

.glass-card {
  background: rgba(10, 20, 42, 0.65);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(56, 189, 248, 0.2);
}

.services-bar-container {
  background: rgba(6, 14, 30, 0.75);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(56, 189, 248, 0.25);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.service-item {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
}

.service-item:hover {
  background: rgba(14, 34, 70, 0.45);
  transform: translateY(-2px);
}

.service-item:hover .service-icon-box {
  border-color: rgba(56, 189, 248, 0.9);
  background: rgba(14, 165, 233, 0.2);
  box-shadow: 0 0 20px rgba(56, 189, 248, 0.6), inset 0 0 10px rgba(56, 189, 248, 0.3);
  transform: scale(1.05);
}

.service-item:hover .service-title {
  color: #38bdf8;
  text-shadow: 0 0 12px rgba(56, 189, 248, 0.5);
}

.service-icon-box {
  border: 1px solid rgba(56, 189, 248, 0.4);
  background: rgba(8, 24, 52, 0.6);
  transition: all 0.3s ease;
}
