* {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  cursor: default;
}
a, button, [role="button"], input[type="submit"], input[type="button"], input[type="reset"], label[for], select {
  cursor: pointer;
}
body {
  font-family: 'Inter', sans-serif;
  background-color: #060e20;
  color: #dee5ff;
  -webkit-font-smoothing: antialiased;
}


/* ── Glassmorphism base ── */
.frosted-glass {
  background: rgba(25, 37, 64, 0.50);
  backdrop-filter: blur(24px) saturate(200%);
  -webkit-backdrop-filter: blur(24px) saturate(200%);
  border: 1px solid rgba(255, 255, 255, 0.10);
}

/* ── Main glass card ── */
.glass-card {
  background: linear-gradient(135deg, rgba(255,255,255,0.085) 0%, rgba(186,249,41,0.015) 50%, rgba(255,255,255,0.025) 100%);
  backdrop-filter: blur(32px) saturate(180%);
  -webkit-backdrop-filter: blur(32px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 8px 32px rgba(0,0,0,0.40), inset 0 1px 0 rgba(255,255,255,0.14), inset 0 -1px 0 rgba(0,0,0,0.12);
  position: relative;
  overflow: hidden;
  transition: background 0.5s cubic-bezier(0.4,0,0.2,1),
              border-color 0.5s cubic-bezier(0.4,0,0.2,1),
              box-shadow 0.5s cubic-bezier(0.4,0,0.2,1),
              transform 0.4s cubic-bezier(0.34,1.56,0.64,1);
  will-change: transform, box-shadow;
}
/* top shimmer line */
.glass-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.22) 40%, rgba(186,249,41,0.18) 60%, transparent 100%);
  pointer-events: none;
  transition: opacity 0.5s ease;
}
/* inner light sweep on hover */
.glass-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.04) 0%, transparent 50%);
  opacity: 0;
  transition: opacity 0.5s cubic-bezier(0.4,0,0.2,1);
  pointer-events: none;
  border-radius: inherit;
}
.glass-card:hover {
  background: linear-gradient(135deg, rgba(255,255,255,0.13) 0%, rgba(186,249,41,0.025) 50%, rgba(255,255,255,0.04) 100%);
  border-color: rgba(186, 249, 41, 0.30);
  box-shadow: 0 20px 60px rgba(0,0,0,0.45), 0 0 0 1px rgba(186,249,41,0.10), inset 0 1px 0 rgba(255,255,255,0.16), 0 0 40px rgba(186,249,41,0.04);
  transform: translateY(-4px);
}
.glass-card:hover::after { opacity: 1; }

/* ── Nav ── */
.glass-nav {
  background: rgba(6, 14, 32, 0.60);
  backdrop-filter: blur(32px) saturate(220%);
  -webkit-backdrop-filter: blur(32px) saturate(220%);
  border: 1px solid rgba(255, 255, 255, 0.09);
  box-shadow: 0 4px 32px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.07);
  transition: background 0.4s ease, box-shadow 0.4s ease;
}
.glass-nav:hover {
  background: rgba(6, 14, 32, 0.72);
}

/* ── Modal & phone mockup ── */
.glass-modal {
  background: linear-gradient(145deg, rgba(15, 25, 50, 0.88) 0%, rgba(6, 14, 32, 0.95) 100%);
  backdrop-filter: blur(40px) saturate(200%);
  -webkit-backdrop-filter: blur(40px) saturate(200%);
  border: 1px solid rgba(255, 255, 255, 0.11);
  box-shadow: 0 32px 96px rgba(0,0,0,0.65), inset 0 1px 0 rgba(255,255,255,0.12), inset 0 -1px 0 rgba(0,0,0,0.2);
}

/* ── Stat badge ── */
.glass-stat {
  background: linear-gradient(135deg, rgba(186,249,41,0.10) 0%, rgba(186,249,41,0.03) 100%);
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  border: 1px solid rgba(186, 249, 41, 0.18);
  box-shadow: 0 4px 24px rgba(0,0,0,0.3), inset 0 1px 0 rgba(186,249,41,0.12), 0 0 24px rgba(186,249,41,0.06);
}

/* ── Icon containers ── */
.glass-icon {
  background: linear-gradient(135deg, rgba(186,249,41,0.16) 0%, rgba(186,249,41,0.04) 100%);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(186,249,41,0.14);
  box-shadow: 0 0 24px rgba(186,249,41,0.10), inset 0 1px 0 rgba(255,255,255,0.08);
  transition: transform 0.4s cubic-bezier(0.34,1.56,0.64,1),
              box-shadow 0.4s cubic-bezier(0.4,0,0.2,1),
              background 0.4s ease;
  will-change: transform;
}
.group:hover .glass-icon {
  box-shadow: 0 0 32px rgba(186,249,41,0.20), inset 0 1px 0 rgba(255,255,255,0.12);
  background: linear-gradient(135deg, rgba(186,249,41,0.22) 0%, rgba(186,249,41,0.08) 100%);
}

/* ── Hero buttons ── */
.btn-primary {
  transition: transform 0.35s cubic-bezier(0.34,1.56,0.64,1),
              box-shadow 0.35s cubic-bezier(0.4,0,0.2,1),
              opacity 0.25s ease;
  will-change: transform;
}
.btn-primary:hover {
  transform: scale(1.06);
  box-shadow: 0 0 40px rgba(186,249,41,0.35), 0 12px 32px rgba(0,0,0,0.3);
}
.btn-outline {
  background: rgba(255,255,255,0.04);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.15);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08);
  transition: background 0.35s ease,
              border-color 0.35s ease,
              box-shadow 0.35s ease,
              transform 0.35s cubic-bezier(0.34,1.56,0.64,1);
  will-change: transform;
}
.btn-outline:hover {
  background: rgba(255,255,255,0.09);
  border-color: rgba(255,255,255,0.28);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.14), 0 8px 24px rgba(0,0,0,0.25);
  transform: scale(1.03);
}
.btn-outline.bg-background:hover {
  background: #0d1a35;
  border-color: rgba(255,255,255,0.22);
}

/* ── Nav links ── */
.nav-link {
  position: relative;
  transition: color 0.3s ease;
}
.nav-link::after {
  content: '';
  position: absolute;
  bottom: -3px; left: 50%; right: 50%;
  height: 2px;
  background: #baf929;
  border-radius: 99px;
  transition: left 0.35s cubic-bezier(0.4,0,0.2,1), right 0.35s cubic-bezier(0.4,0,0.2,1), opacity 0.3s ease;
  opacity: 0;
}
.nav-link:hover::after { left: 0; right: 0; opacity: 0.6; }

/* ── Glass divider ── */
.glass-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.08) 30%, rgba(186,249,41,0.12) 50%, rgba(255,255,255,0.08) 70%, transparent 100%);
  border: none;
}

/* ── Section glass pill label ── */
.glass-pill {
  background: linear-gradient(135deg, rgba(186,249,41,0.10) 0%, rgba(186,249,41,0.04) 100%);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(186,249,41,0.18);
  box-shadow: 0 2px 12px rgba(0,0,0,0.2), inset 0 1px 0 rgba(186,249,41,0.10);
  display: inline-block;
  padding: 0.35rem 1rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #baf929;
  margin-bottom: 1.25rem;
}

/* ── About Us mini-stat cards ── */
.glass-mini {
  background: linear-gradient(135deg, rgba(255,255,255,0.055) 0%, rgba(255,255,255,0.015) 100%);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 4px 16px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.07);
  border-radius: 1rem;
  padding: 1.25rem 1.5rem;
  transition: transform 0.4s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.4s ease;
}
.glass-mini:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.10);
}

/* ── Footer glass strip ── */
.glass-footer {
  background: rgba(6,14,32,0.80);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-top: 1px solid rgba(255,255,255,0.06);
}

/* ── Background grid pattern ── */
.bg-grid {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(186,249,41,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(186,249,41,0.04) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 40%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 40%, transparent 100%);
}

/* ── Background scattered dots ── */
.bg-dots {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(circle, rgba(186,249,41,0.12) 1px, transparent 1px);
  background-size: 36px 36px;
  background-position: 18px 18px;
  mask-image: radial-gradient(ellipse 60% 60% at 50% 50%, transparent 30%, black 70%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 60% 60% at 50% 50%, transparent 30%, black 70%, transparent 100%);
  opacity: 0.6;
}

/* ── Diagonal gradient sweeps ── */
.bg-sweep-1 {
  position: fixed;
  top: -10%;
  left: -20%;
  width: 70%;
  height: 60%;
  background: conic-gradient(from 210deg at 30% 50%, rgba(186,249,41,0.07) 0deg, rgba(60,143,255,0.06) 120deg, transparent 200deg);
  border-radius: 50%;
  filter: blur(60px);
  pointer-events: none;
  z-index: 0;
  animation: sweep-drift 30s ease-in-out infinite alternate;
}
.bg-sweep-2 {
  position: fixed;
  bottom: -10%;
  right: -15%;
  width: 55%;
  height: 55%;
  background: conic-gradient(from 30deg at 70% 60%, rgba(60,143,255,0.08) 0deg, rgba(186,249,41,0.05) 150deg, transparent 220deg);
  border-radius: 50%;
  filter: blur(70px);
  pointer-events: none;
  z-index: 0;
  animation: sweep-drift 36s ease-in-out infinite alternate-reverse;
}
.bg-sweep-3 {
  position: fixed;
  top: 40%;
  left: 30%;
  width: 40%;
  height: 35%;
  background: radial-gradient(ellipse at center, rgba(186,249,41,0.05) 0%, rgba(60,143,255,0.04) 50%, transparent 100%);
  filter: blur(50px);
  pointer-events: none;
  z-index: 0;
  animation: sweep-drift 24s ease-in-out infinite alternate;
  animation-delay: -12s;
}
@keyframes sweep-drift {
  from { transform: translate(0, 0) rotate(0deg) scale(1); }
  to   { transform: translate(30px, 20px) rotate(8deg) scale(1.08); }
}

.ghost-border { border: 1px solid rgba(64, 72, 93, 0.2); }
.neon-glow { text-shadow: 0 0 30px rgba(186, 249, 41, 0.5), 0 0 60px rgba(186,249,41,0.2); }
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* ── Global transition smoothing for Tailwind utilities ── */
[class*="hover:scale"],
[class*="hover:opacity"],
[class*="hover:text"],
[class*="hover:border"],
[class*="hover:bg"],
[class*="group-hover:"],
[class*="transition"] {
  transition-duration: 350ms;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
