/* ===== Deal Flow Labs — shared design system ===== */
:root { color-scheme: dark; }
html { scroll-behavior: smooth; }
body { background: #05060c; }
::selection { background: rgba(59,130,246,.35); }

/* Ambient backgrounds */
.grid-bg {
  background-image:
    linear-gradient(to right, rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 40%, transparent 100%);
}
.glow-blue { background: radial-gradient(60% 50% at 50% 0%, rgba(37,99,235,.30), transparent 70%); }
.glow-soft { background: radial-gradient(50% 50% at 50% 50%, rgba(59,130,246,.16), transparent 70%); }

/* Hero aurora — subtle drifting color field behind the headline */
.hero-aurora {
  position: absolute; inset: 0; overflow: hidden; pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 100% 85% at 50% 32%, #000 44%, transparent 100%);
  mask-image: radial-gradient(ellipse 100% 85% at 50% 32%, #000 44%, transparent 100%);
}
.hero-aurora span { position: absolute; display: block; border-radius: 9999px; filter: blur(66px); opacity: .55; will-change: transform; }
.hero-aurora .a1 { width: 560px; height: 560px; top: -130px; left: 0%; background: radial-gradient(circle at center, rgba(59,130,246,.80), transparent 60%); animation: aurora1 19s ease-in-out infinite alternate; }
.hero-aurora .a2 { width: 520px; height: 520px; top: -70px; right: -3%; background: radial-gradient(circle at center, rgba(124,92,246,.72), transparent 60%); animation: aurora2 23s ease-in-out infinite alternate; }
.hero-aurora .a3 { width: 500px; height: 500px; top: 120px; left: 33%; background: radial-gradient(circle at center, rgba(16,185,129,.42), transparent 60%); animation: aurora3 27s ease-in-out infinite alternate; }
@keyframes aurora1 { from { transform: translate(0,0) scale(1); } to { transform: translate(70px,46px) scale(1.18); } }
@keyframes aurora2 { from { transform: translate(0,0) scale(1); } to { transform: translate(-56px,34px) scale(1.12); } }
@keyframes aurora3 { from { transform: translate(0,0) scale(1); } to { transform: translate(34px,-30px) scale(1.22); } }

.text-gradient {
  background: linear-gradient(180deg, #ffffff 30%, #9fb4d6 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.text-blue-grad {
  background: linear-gradient(100deg, #60a5fa, #3b82f6 55%, #1d4ed8);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

.glass { background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.08); backdrop-filter: blur(10px); }
.card-hover { transition: transform .35s cubic-bezier(.2,.7,.2,1), border-color .35s, background .35s, box-shadow .35s; }
.card-hover:hover { transform: translateY(-4px); border-color: rgba(59,130,246,.35); background: rgba(59,130,246,.04); }

.btn-primary {
  background: linear-gradient(180deg, #3b82f6, #2563eb);
  box-shadow: 0 1px 0 rgba(255,255,255,.25) inset, 0 10px 30px -8px rgba(37,99,235,.6);
  transition: transform .15s ease, box-shadow .25s ease, filter .2s ease;
}
.btn-primary:hover { transform: translateY(-1px); filter: brightness(1.07); box-shadow: 0 1px 0 rgba(255,255,255,.3) inset, 0 16px 40px -10px rgba(37,99,235,.75); }
.btn-ghost { border: 1px solid rgba(255,255,255,.14); transition: background .2s, border-color .2s, transform .15s; }
.btn-ghost:hover { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.28); transform: translateY(-1px); }

/* Keyboard focus visibility */
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 2px solid #60a5fa; outline-offset: 2px; border-radius: 8px;
}

/* Scroll reveal */
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.in { opacity: 1; transform: none; }

/* Animated progress bar (count-up companion) */
.count-bar { transition: width 1.3s cubic-bezier(.2,.7,.2,1); }

/* FAQ */
.faq-item[open] .faq-icon { transform: rotate(45deg); }
.faq-item summary::-webkit-details-marker { display: none; }

.ping { animation: ping 1.8s cubic-bezier(0,0,.2,1) infinite; }
@keyframes ping { 75%,100% { transform: scale(2.2); opacity: 0; } }

/* Nav */
.nav-scrolled { background: rgba(5,6,12,.72); backdrop-filter: blur(14px); border-color: rgba(255,255,255,.08) !important; }
.nav-link { color: #cbd5e1; transition: color .2s; }
.nav-link:hover, .nav-link.active { color: #fff; }
.nav-link.active { position: relative; }

/* Industries dropdown */
.has-dropdown > .dropdown {
  opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.has-dropdown:hover > .dropdown, .has-dropdown:focus-within > .dropdown {
  opacity: 1; visibility: visible; transform: translateY(0);
}

/* Right-edge fade hint for horizontally scrollable tables on small screens */
.scroll-fade { position: relative; }
.scroll-fade::after {
  content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 40px;
  background: linear-gradient(to right, transparent, #05060c); pointer-events: none;
}
@media (min-width: 768px) { .scroll-fade::after { display: none; } }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
  .ping, .animate-bounce, [class*="animate-"] { animation: none !important; }
  .has-dropdown > .dropdown { transition: none; }
  .count-bar { transition: none; }
  .hero-aurora span { animation: none !important; }
}
