/* ============================================================
   Jetlane shared styles (glassmorphism on jet-blue gradient)
   ============================================================ */

:root {
  --jet-900: #07102b;
  --jet-800: #0F1B3D;
  --jet-700: #1A2A5C;
  --cyan:    #00B4FF;
  --cyan-2:  #5BD0FF;
  --amber:   #FFD740;
  --glass-bg:        rgba(255, 255, 255, 0.04);
  --glass-bg-hover:  rgba(255, 255, 255, 0.07);
  --glass-border:    rgba(255, 255, 255, 0.10);
  --glass-border-hover: rgba(0, 180, 255, 0.40);
}

html { background: var(--jet-900); }
body { background: transparent; }

/* Page background — multi-layer radial blobs + grid */
.bg-jet {
  position: relative;
  min-height: 100vh;
  background:
    radial-gradient(60% 50% at 12% 10%, rgba(0, 180, 255, 0.18), transparent 70%),
    radial-gradient(50% 40% at 88% 5%,  rgba(255, 215, 64, 0.10), transparent 70%),
    radial-gradient(70% 50% at 50% 100%, rgba(91, 208, 255, 0.10), transparent 70%),
    linear-gradient(180deg, #07102b 0%, #0a1230 60%, #07102b 100%);
}
.bg-jet::before {
  content: '';
  position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    linear-gradient(rgba(0, 180, 255, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 180, 255, 0.045) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 30%, black 30%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 30%, black 30%, transparent 100%);
}

/* Glass — universal card */
.glass {
  background: var(--glass-bg);
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  border: 1px solid var(--glass-border);
  border-radius: 16px;
  transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
.glass:hover {
  background: var(--glass-bg-hover);
  border-color: var(--glass-border-hover);
}

.glass-strong {
  background: rgba(15, 27, 61, 0.55);
  backdrop-filter: blur(28px) saturate(160%);
  -webkit-backdrop-filter: blur(28px) saturate(160%);
  border: 1px solid var(--glass-border);
  border-radius: 16px;
}

/* Glass nav (sticky) */
.glass-nav {
  background: rgba(7, 16, 43, 0.55);
  backdrop-filter: blur(22px) saturate(160%);
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

/* Glow on CTAs */
.glow-cyan {
  box-shadow:
    0 0 30px rgba(0, 180, 255, 0.22),
    0 0 80px rgba(0, 180, 255, 0.10);
}
.glow-amber {
  box-shadow: 0 0 24px rgba(255, 215, 64, 0.25);
}

/* Gradient text */
.gradient-text {
  background: linear-gradient(120deg, #00B4FF 0%, #5BD0FF 35%, #FFD740 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Subtle status dot pulse */
@keyframes statusPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(74, 222, 128, 0.6); }
  50%      { box-shadow: 0 0 0 6px rgba(74, 222, 128, 0); }
}
.status-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #4ADE80;
  animation: statusPulse 2s ease-in-out infinite;
  display: inline-block;
}

/* Routed line dash */
@keyframes dash { to { stroke-dashoffset: -120; } }
.anim-route {
  stroke-dasharray: 8 6;
  animation: dash 2s linear infinite;
}

/* Fade-up */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}
.fade-up { animation: fadeUp .8s ease-out forwards; }

/* Section — common spacing */
.section { padding: 5rem 0; position: relative; z-index: 1; }
.section-tight { padding: 3rem 0; position: relative; z-index: 1; }

/* Eyebrow */
.eyebrow {
  font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, monospace;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--cyan);
}

/* Pill */
.pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 500;
  background: rgba(255, 215, 64, 0.10);
  border: 1px solid rgba(255, 215, 64, 0.30);
  color: var(--amber);
}

/* Mega-menu (nav dropdown) */
.mega {
  position: absolute;
  top: 100%; left: 0;
  margin-top: 0.75rem;
  min-width: 380px;
  padding: 1rem;
  background: rgba(7, 16, 43, 0.85);
  backdrop-filter: blur(28px) saturate(160%);
  -webkit-backdrop-filter: blur(28px) saturate(160%);
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 14px;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-4px);
  transition: opacity .15s ease, transform .15s ease;
  z-index: 50;
}
.mega-trigger:hover .mega,
.mega-trigger:focus-within .mega,
.mega.open {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.mega-item {
  display: flex;
  gap: 0.75rem;
  padding: 0.625rem 0.75rem;
  border-radius: 10px;
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  transition: background .15s ease;
}
.mega-item:hover { background: rgba(255, 255, 255, 0.06); }
.mega-item .icon {
  width: 36px; height: 36px;
  border-radius: 8px;
  background: rgba(0, 180, 255, 0.10);
  color: var(--cyan);
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}
.mega-item .title { font-weight: 600; font-size: 0.875rem; }
.mega-item .desc  { font-size: 0.75rem; color: rgba(255, 255, 255, 0.5); margin-top: 2px; }

/* Mobile nav */
.mobile-menu { display: none; }
.mobile-menu.open { display: block; }

/* Tag chips */
.chip {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 8px;
  border-radius: 6px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.7rem;
  background: rgba(0, 180, 255, 0.10);
  color: var(--cyan);
  border: 1px solid rgba(0, 180, 255, 0.30);
}
