/* Shared custom styles for LocateNow.ai */
html { -webkit-font-smoothing: antialiased; scroll-behavior: smooth; }
body { font-feature-settings: "cv02","cv03","cv04","cv11"; }

/* Reveal on scroll */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
.reveal.in { opacity: 1; transform: none; }

/* Animated gradient mesh background */
.mesh {
  background:
    radial-gradient(60% 60% at 15% 10%, rgba(53,92,246,.35), transparent 60%),
    radial-gradient(50% 50% at 90% 20%, rgba(45,212,191,.22), transparent 60%),
    radial-gradient(55% 55% at 50% 100%, rgba(28,43,120,.45), transparent 60%);
}
.grid-lines {
  background-image:
    linear-gradient(to right, rgba(148,163,184,.08) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(148,163,184,.08) 1px, transparent 1px);
  background-size: 56px 56px;
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 30%, #000 40%, transparent 100%);
  mask-image: radial-gradient(ellipse 80% 70% at 50% 30%, #000 40%, transparent 100%);
}
.text-gradient {
  background: linear-gradient(100deg,#90b0ff 0%,#5b84ff 35%,#2dd4bf 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
/* radar ping */
.radar span { position:absolute; inset:0; border-radius:9999px; border:1px solid rgba(45,212,191,.5); animation: ping 3s cubic-bezier(0,0,.2,1) infinite; }
.radar span:nth-child(2){ animation-delay:1s; } .radar span:nth-child(3){ animation-delay:2s; }
@keyframes ping { 0%{transform:scale(.3);opacity:.9} 100%{transform:scale(1.6);opacity:0} }

.nav-blur { -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px); }
details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display:none; }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .animate-float { animation: none; }
  .animate-ping { animation: none; }
  .radar span { animation: none; opacity: 0.6; }
  .group-hover\:-translate-y-1:hover { transform: none; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
