/* haovcc — shared site styles (light theme) */

html { -webkit-tap-highlight-color: transparent; }
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.is-visible { opacity: 1; transform: translateY(0); }

/* Card showcase — light theme gradient with brand accents */
.haovcc-card {
  background:
    radial-gradient(circle at 20% 20%, rgba(14,165,233,.30), transparent 45%),
    radial-gradient(circle at 80% 80%, rgba(11,79,132,.22), transparent 50%),
    linear-gradient(135deg, #0F1B33 0%, #1A2238 60%, #243054 100%);
  box-shadow:
    0 30px 60px -20px rgba(15,23,42,.35),
    0 20px 40px -15px rgba(15,23,42,.25),
    inset 0 1px 0 0 rgba(255,255,255,.16);
  color: #fff;
}
.haovcc-card .text-slate-300,
.haovcc-card .text-slate-400,
.haovcc-card .text-slate-500 { color: rgba(255,255,255,.78); }

.card-shine {
  background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,.22) 50%, transparent 70%);
  background-size: 200% 100%;
  background-position: 200% 0;
  transition: background-position .9s ease;
}
.haovcc-card:hover .card-shine { background-position: -200% 0; }

/* Grid background pattern (light) */
.grid-bg {
  background-image:
    linear-gradient(rgba(15,23,42,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15,23,42,.045) 1px, transparent 1px);
  background-size: 56px 56px;
}

/* Gradient text — saturated for light bg */
.text-gradient {
  background: linear-gradient(110deg, #0ea5e9 0%, #087fce 45%, #0967aa 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Subtle noise overlay for depth */
.noise::before {
  content: '';
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity: .04; pointer-events: none; mix-blend-mode: multiply;
}

/* Marquee fade mask */
.mask-fade {
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .animate-marquee, .animate-marquee-reverse, .animate-float-slow, .animate-float-slower { animation: none !important; }
  .reveal { transition: none; opacity: 1; transform: none; }
}

/* Active nav link (light) */
.nav-link.active { color: #0F172A; background: rgba(15,23,42,.06); }

/* Dropdown menu animation */
[data-dropdown-menu] { transform-origin: top left; }
[data-dropdown]:hover [data-dropdown-caret],
[data-dropdown][data-open] [data-dropdown-caret] { transform: rotate(180deg); }

/* Drawer scroll lock helper */
body.drawer-open { overflow: hidden; }
