*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  background: var(--body-bg);
  color: var(--text-primary);
  font-family: var(--font);
  overflow-x: clip;
  line-height: 1.6;
}

img { display: block; max-width: 100%; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
a { text-decoration: none; color: inherit; }
ul, ol { list-style: none; }

.container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--body-bg); }
::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 3px; }

/* Section badge */
.section-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 1.25rem;
  border-radius: 9999px;
  background: rgba(0, 200, 150, 0.08);
  border: 1px solid rgba(0, 200, 150, 0.2);
  color: var(--primary);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 1.25rem;
}

/* Gradient text — FastMobile green to blue */
.gradient-text {
  background: linear-gradient(135deg, var(--primary), var(--accent));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Primary button */
.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.75rem;
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, var(--primary), var(--accent));
  color: #050c18;
  font-weight: 700;
  font-size: 0.95rem;
  transition: opacity 0.2s, transform 0.2s, box-shadow 0.2s;
  position: relative;
  overflow: hidden;
  white-space: nowrap;
}
.btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.12);
  opacity: 0;
  transition: opacity 0.2s;
}
.btn-primary:hover::before { opacity: 1; }
.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,200,150,0.3);
}

/* Secondary button */
.btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.75rem;
  border-radius: var(--radius-sm);
  background: rgba(0,200,150,0.06);
  border: 1px solid rgba(0,200,150,0.2);
  color: var(--primary);
  font-weight: 600;
  font-size: 0.95rem;
  transition: background 0.2s, transform 0.2s, border-color 0.2s;
}
.btn-secondary:hover {
  background: rgba(0,200,150,0.12);
  border-color: rgba(0,200,150,0.4);
  transform: translateY(-2px);
}

/* Ghost button (navbar) */
.btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1.25rem;
  border-radius: var(--radius-sm);
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--border-subtle);
  color: var(--text-muted);
  font-weight: 500;
  font-size: 0.875rem;
  transition: background 0.2s, color 0.2s;
}
.btn-ghost:hover {
  background: rgba(255,255,255,0.08);
  color: #fff;
}

/* Glass card */
.glass-card {
  background: rgba(0,200,150,0.02);
  border: 1px solid var(--card-border);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-radius: var(--radius-lg);
}

/* Glow blob (background decoration) */
.glow-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(120px);
  opacity: 0.06;
  pointer-events: none;
  animation: pulse-glow 6s ease-in-out infinite;
}

/* Section padding */
.section-pad { padding: 6rem 0; }