/* ABS Communications — production stylesheet
   Replaces the Tailwind CDN used by the landing page. */

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

html { line-height: 1.5; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: Inter, sans-serif;
  background: #02050b;
  color: #fff;
  overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
h1, h2, h3, p { margin: 0; }
button, input, textarea, select { font: inherit; }

.relative { position: relative; }
.absolute { position: absolute; }
.fixed { position: fixed; }
.inset-0 { inset: 0; }
.top-\[-300px\] { top: -300px; }
.left-\[-200px\] { left: -200px; }
.bottom-\[-400px\] { bottom: -400px; }
.right-\[-200px\] { right: -200px; }
.top-6 { top: 1.5rem; }
.right-8 { right: 2rem; }
.inset-8 { inset: 2rem; }
.top-[-300px], .left-\[-200px\], .bottom-\[-400px\], .right-\[-200px\] { z-index: auto; }

.z-10 { z-index: 10; }
.z-20 { z-index: 20; }
.z-30 { z-index: 30; }

.pointer-events-none { pointer-events: none; }
.hidden { display: none; }
.block { display: block; }
.flex { display: flex; }
.grid { display: grid; }
.inline-flex { display: inline-flex; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.flex-shrink-0 { flex-shrink: 0; }

.mx-auto { margin-left: auto; margin-right: auto; }
.mt-4 { margin-top: 1rem; }
.mt-10 { margin-top: 2.5rem; }
.mt-14 { margin-top: 3.5rem; }
.mb-5 { margin-bottom: 1.25rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-10 { margin-bottom: 2.5rem; }
.mb-14 { margin-bottom: 3.5rem; }
.mb-20 { margin-bottom: 5rem; }

.px-8 { padding-left: 2rem; padding-right: 2rem; }
.px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
.px-7 { padding-left: 1.75rem; padding-right: 1.75rem; }
.py-2 { padding-top: .5rem; padding-bottom: .5rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.py-7 { padding-top: 1.75rem; padding-bottom: 1.75rem; }
.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.py-14 { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.py-32 { padding-top: 8rem; padding-bottom: 8rem; }
.pt-28 { padding-top: 7rem; }
.pb-32 { padding-bottom: 8rem; }
.p-8 { padding: 2rem; }
.p-10 { padding: 2.5rem; }
.p-12 { padding: 3rem; }
.p-16 { padding: 4rem; }

.w-px { width: 1px; }
.w-16 { width: 4rem; }
.w-20 { width: 5rem; }
.w-max { width: max-content; }
.w-\[320px\] { width: 320px; }
.w-\[620px\] { width: 620px; }
.w-\[760px\] { width: 760px; }
.w-\[210px\] { width: 210px; }
.w-\[78\%\] { width: 78%; }
.h-px { height: 1px; }
.h-12 { height: 3rem; }
.h-16 { height: 4rem; }
.h-24 { height: 6rem; }
.h-\[320px\] { height: 320px; }
.h-\[620px\] { height: 620px; }
.h-\[210px\] { height: 210px; }

.max-w-2xl { max-width: 42rem; }
.max-w-3xl { max-width: 48rem; }
.max-w-6xl { max-width: 72rem; }
.max-w-7xl { max-width: 80rem; }
.max-w-full { max-width: 100%; }
.min-h-\[300px\] { min-height: 300px; }
.min-h-\[320px\] { min-height: 320px; }

.gap-4 { gap: 1rem; }
.gap-5 { gap: 1.25rem; }
.gap-6 { gap: 1.5rem; }
.gap-8 { gap: 2rem; }
.gap-16 { gap: 4rem; }
.gap-20 { gap: 5rem; }
.gap-24 { gap: 6rem; }

.grid-bg {
  background-image:
    linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
  background-size: 70px 70px;
}

.glass {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
}

.rounded-full { border-radius: 9999px; }
.rounded-\[30px\] { border-radius: 30px; }
.rounded-\[34px\] { border-radius: 34px; }
.rounded-\[42px\] { border-radius: 42px; }

.border { border-width: 1px; border-style: solid; }
.border-y { border-top-width: 1px; border-bottom-width: 1px; border-style: solid; }
.border-t { border-top-width: 1px; border-top-style: solid; }
.border-b { border-bottom-width: 1px; border-bottom-style: solid; }
.border-white\/5 { border-color: rgba(255,255,255,.05); }
.border-white\/10 { border-color: rgba(255,255,255,.10); }
.border-blue-400\/10 { border-color: rgba(96,165,250,.10); }

.bg-white\/\[0\.02\] { background: rgba(255,255,255,.02); }
.bg-blue-500\/10 { background: rgba(59,130,246,.10); }
.bg-blue-500\/\[0\.12\] { background: rgba(37,99,235,.12); }

.text-center { text-align: center; }
.text-left { text-align: left; }
.text-white { color: #fff; }
.text-gray-200 { color: #e5e7eb; }
.text-gray-300 { color: #d1d5db; }
.text-gray-400 { color: #9ca3af; }
.text-gray-500 { color: #6b7280; }
.text-gray-600 { color: #4b5563; }
.text-blue-300 { color: #93c5fd; }
.text-blue-400 { color: #60a5fa; }

.uppercase { text-transform: uppercase; }
.tracking-wide { letter-spacing: .025em; }
.tracking-\[0\.04em\] { letter-spacing: .04em; }
.tracking-\[0\.08em\] { letter-spacing: .08em; }
.tracking-\[0\.25em\] { letter-spacing: .25em; }
.tracking-\[0\.28em\] { letter-spacing: .28em; }
.tracking-\[0\.3em\] { letter-spacing: .3em; }
.tracking-\[0\.32em\] { letter-spacing: .32em; }
.tracking-\[0\.35em\] { letter-spacing: .35em; }
.tracking-\[0\.4em\] { letter-spacing: .4em; }
.tracking-\[-0\.03em\] { letter-spacing: -.03em; }
.tracking-\[-0\.04em\] { letter-spacing: -.04em; }
.tracking-\[-0\.05em\] { letter-spacing: -.05em; }
.tracking-\[-0\.06em\] { letter-spacing: -.06em; }

.leading-relaxed { line-height: 1.625; }
.leading-snug { line-height: 1.375; }
.leading-tight { line-height: 1.25; }
.leading-\[0\.96\] { line-height: .96; }

.text-xs { font-size: .75rem; line-height: 1rem; }
.text-sm { font-size: .875rem; line-height: 1.25rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.text-5xl { font-size: 3rem; line-height: 1; }
.text-6xl { font-size: 3.75rem; line-height: 1; }
.text-7xl { font-size: 4.5rem; line-height: 1; }

.font-\[200\] { font-weight: 200; }
.font-\[300\] { font-weight: 300; }
.font-\[400\] { font-weight: 400; }
.font-\[700\] { font-weight: 700; }

.opacity-90 { opacity: .9; }
.opacity-95 { opacity: .95; }
.opacity-100 { opacity: 1; }

.overflow-hidden { overflow: hidden; }
.whitespace-nowrap { white-space: nowrap; }
.select-none { user-select: none; }

.bg-blue-400\/40 { background-color: rgba(96,165,250,.4); }

.hero-glow {
  position: absolute;
  width: 900px;
  height: 900px;
  border-radius: 9999px;
  background: rgba(37,99,235,.12);
  filter: blur(140px);
}

.hero-glow.top-\[-300px\] { top: -300px; left: -200px; }
.hero-glow.bottom-\[-400px\] { bottom: -400px; right: -200px; }

.glass-metal-text {
  background: linear-gradient(180deg,#ffffff 0%,#dbeafe 18%,#ffffff 38%,#94a3b8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow:
    0 0 12px rgba(255,255,255,.18),
    0 2px 18px rgba(96,165,250,.18),
    0 1px 0 rgba(255,255,255,.35);
  filter: drop-shadow(0 0 22px rgba(147,197,253,.08));
  letter-spacing: .02em;
}

.hero-title {
  background: linear-gradient(180deg,#ffffff 0%,#dbeafe 20%,#ffffff 45%,#94a3b8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow:
    0 0 18px rgba(255,255,255,.14),
    0 4px 24px rgba(59,130,246,.12);
}

.section-title {
  background: linear-gradient(180deg,#ffffff 0%,#e2e8f0 35%,#94a3b8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 0 18px rgba(255,255,255,.08);
}

.marquee {
  animation: marquee 26s linear infinite;
}

@keyframes marquee {
  0% { transform: translateX(0%); }
  100% { transform: translateX(-50%); }
}

@media (min-width: 640px) {
  .sm\:block { display: block; }
}

@media (min-width: 768px) {
  .md\:flex-row { flex-direction: row; }
  .md\:block { display: block; }
  .md\:text-7xl { font-size: 4.5rem; line-height: 1; }
}

@media (min-width: 1024px) {
  .lg\:grid-cols-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .lg\:grid-cols-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .lg\:grid-cols-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
}

@media (min-width: 1280px) {
  .xl\:block { display: block; }
}

@media (max-width: 1023px) {
  .lg\:grid-cols-2,
  .lg\:grid-cols-3,
  .lg\:grid-cols-4 {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .md\:flex-row { flex-direction: column; }
  .md\:block { display: none; }
  .md\:text-7xl { font-size: 3.75rem; line-height: 1; }
  .text-6xl { font-size: 3rem; }
  .text-5xl { font-size: 2.5rem; }
  .px-8 { padding-left: 1.25rem; padding-right: 1.25rem; }
  .py-32 { padding-top: 5rem; padding-bottom: 5rem; }
  .pt-28 { padding-top: 4rem; }
  .pb-32 { padding-bottom: 5rem; }
  .p-16 { padding: 2rem; }
  .w-\[760px\] { width: 100%; }
  .w-\[620px\] { width: 100%; }
}

@media (max-width: 639px) {
  .xl\:block { display: none; }
  .text-7xl { font-size: 3.25rem; }
  .text-6xl { font-size: 2.75rem; }
  .text-3xl { font-size: 1.5rem; line-height: 2rem; }
  .tracking-\[0\.4em\] { letter-spacing: .25em; }
}
