/* ── Universal Insights – custom CSS ── */

/* Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #f1f1f1; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* Glass nav */
.glass-nav {
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(0,0,0,.05);
}

/* Hero gradient overlay */
.hero-gradient {
  background: linear-gradient(to right,
    rgba(10,37,64,0.9) 0%,
    rgba(10,37,64,0.7) 50%,
    rgba(10,37,64,0.3) 100%);
}

/* Text glow */
.text-glow { text-shadow: 0 0 20px rgba(0,212,255,0.3); }

/* Animations */
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes slideUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes scrollTerminal {
  0%   { transform: translateY(0); }
  100% { transform: translateY(-50%); }
}
@keyframes counterPop {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.08); }
  100% { transform: scale(1); }
}
@keyframes pulse4s {
  0%,100% { opacity: 1; }
  50%      { opacity: .5; }
}
@keyframes ping {
  0%        { transform: scale(1); opacity: 1; }
  75%,100%  { transform: scale(2); opacity: 0; }
}

.animate-fade-in   { animation: fadeIn  1s ease-out  forwards; }
.animate-slide-up  { animation: slideUp .8s ease-out forwards; }
.animate-pulse-slow{ animation: pulse4s 4s cubic-bezier(.4,0,.6,1) infinite; }
.animate-ping-dot  { animation: ping    1.2s cubic-bezier(0,0,.2,1) infinite; }

/* Reveal on scroll */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: .12s; }
.reveal-delay-2 { transition-delay: .24s; }
.reveal-delay-3 { transition-delay: .36s; }

/* Stagger children */
.stagger > * { opacity: 0; transform: translateY(20px); transition: opacity .6s ease, transform .6s ease; }
.stagger.visible > *:nth-child(1) { opacity:1;transform:none;transition-delay:.05s; }
.stagger.visible > *:nth-child(2) { opacity:1;transform:none;transition-delay:.15s; }
.stagger.visible > *:nth-child(3) { opacity:1;transform:none;transition-delay:.25s; }
.stagger.visible > *:nth-child(4) { opacity:1;transform:none;transition-delay:.35s; }
.stagger.visible > *:nth-child(5) { opacity:1;transform:none;transition-delay:.45s; }
.stagger.visible > *:nth-child(6) { opacity:1;transform:none;transition-delay:.55s; }
.stagger.visible > *:nth-child(n+7){ opacity:1;transform:none;transition-delay:.65s; }

/* Hero carousel */
.carousel-slide { position:absolute;inset:0;opacity:0;transition:opacity 1s ease-in-out; }
.carousel-slide.active { opacity:1; }
.carousel-slide img { transition:transform 6s ease-out; transform:scale(1); }
.carousel-slide.active img { transform:scale(1.05); }

/* Terminal window */
.terminal-window {
  background: #0d1117;
  border: 1px solid #30363d;
  border-radius: 12px;
  overflow: hidden;
  font-family: 'Courier New', monospace;
  font-size: 12px;
}
.terminal-header {
  background: #161b22;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid #30363d;
}
.terminal-dot { width:12px;height:12px;border-radius:50%; }
.terminal-body { padding: 16px; height: 280px; overflow-y: hidden; position: relative; }
.terminal-log  { animation: scrollTerminal 20s linear infinite; }

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

/* Modal */
.modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 100;
  background: rgba(0,0,0,.5);
  backdrop-filter: blur(4px);
  align-items: flex-start;
  justify-content: center;
  padding: 2rem 1rem;
  overflow-y: auto;
}
.modal-overlay.open { display: flex; animation: fadeIn .3s ease; }
.modal-content { animation: slideUp .4s ease; }

/* Counter pop on animate */
.counter-pop { animation: counterPop .4s ease; }

/* Service card hover */
.service-card:hover .service-icon {
  background: #00d4ff;
  color: white;
}

/* Globe grid background */
.grid-bg {
  background-image:
    linear-gradient(#1e293b 1px, transparent 1px),
    linear-gradient(90deg, #1e293b 1px, transparent 1px);
  background-size: 40px 40px;
}

/* Stat card number */
.stat-number { font-variant-numeric: tabular-nums; }

/* Line clamp */
.line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
