/* ==========================================================================
   Kshatrav Global Technology — Custom Styles
   ========================================================================== */

:root {
  --bg-0: #05050a;
  --bg-1: #0a0a0f;
  --bg-2: #10101a;
  --bg-3: #1a1a26;
  --txt-0: #ffffff;
  --txt-1: rgba(255,255,255,.7);
  --txt-2: rgba(255,255,255,.5);
  --accent: #8b5cf6;
  --accent-2: #ec4899;
  --mint: #34d399;
  --ease-out-expo: cubic-bezier(.16,1,.3,1);
  --ease-in-out-expo: cubic-bezier(.87,0,.13,1);
}

html, body { background: var(--bg-0); }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

* { -webkit-tap-highlight-color: transparent; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,.1); border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.2); }

/* ---------- Gradient text ---------- */
.text-gradient-1 {
  background-image: linear-gradient(110deg, #a78bfa 0%, #ec4899 45%, #f97316 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  background-size: 200% 100%;
  animation: gradient-pan 8s linear infinite;
}
@keyframes gradient-pan {
  0%   { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}

/* ---------- Preloader ---------- */
#preloader { transition: opacity .6s var(--ease-out-expo), visibility .6s; }
#preloader.is-hidden { opacity: 0; visibility: hidden; }
.preloader-bar {
  width: 220px; height: 2px;
  background: rgba(255,255,255,.1);
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.preloader-bar span {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #8b5cf6, #ec4899, #f97316);
  transform: translateX(-100%);
  animation: preload 1.6s var(--ease-in-out-expo) infinite;
}
@keyframes preload {
  0%   { transform: translateX(-100%); }
  50%  { transform: translateX(0%); }
  100% { transform: translateX(100%); }
}

/* ---------- Cursor ---------- */
.cursor-dot, .cursor-ring {
  position: fixed; top: 0; left: 0; pointer-events: none;
  z-index: 9998; mix-blend-mode: difference;
  transform: translate(-50%, -50%);
  transition: opacity .3s ease;
}
.cursor-dot { width: 6px; height: 6px; background: #fff; border-radius: 50%; }
.cursor-ring {
  width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.6); border-radius: 50%;
  transition: transform .2s var(--ease-out-expo), width .25s, height .25s, opacity .3s;
}
.cursor-ring.is-hover { transform: translate(-50%,-50%) scale(1.6); }
@media (max-width: 1024px) { .cursor-dot, .cursor-ring { display: none; } }

/* ---------- Nav ---------- */
#site-header.is-scrolled {
  background: rgba(10,10,15,.65);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.nav-link { position: relative; }
.nav-link.active { color: #fff; }
.nav-link.active::after {
  content: "";
  position: absolute; left: 50%; bottom: 4px;
  width: 18px; height: 2px; border-radius: 2px;
  background: linear-gradient(90deg,#8b5cf6,#ec4899);
  transform: translateX(-50%);
}
.nav-link::before {
  content: "";
  position: absolute; inset: 0;
  background: rgba(255,255,255,.05); border-radius: 999px;
  opacity: 0; transition: opacity .25s var(--ease-out-expo);
  z-index: -1;
}
.nav-link:hover::before { opacity: 1; }

#mobile-menu.is-open { opacity: 1; pointer-events: auto; }

/* ---------- Marquee ---------- */
.marquee { animation: marquee 28s linear infinite; }
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ---------- Hero animations ---------- */
.hero-title .word, .hero-title > span { display: inline-block; }
.animate-float-slow { animation: floaty 14s ease-in-out infinite alternate; }
@keyframes floaty {
  0%   { transform: translate3d(0,0,0); }
  50%  { transform: translate3d(20px,-30px,0); }
  100% { transform: translate3d(-20px,20px,0); }
}

/* ---------- Cards / tilt ---------- */
.service-card, .portfolio-card, .team-card { will-change: transform; }
.tilt { transition: transform .35s var(--ease-out-expo); }

/* ---------- Magnetic button ---------- */
.magnetic-btn { will-change: transform; transition: transform .25s var(--ease-out-expo); }

/* ---------- Swiper overrides ---------- */
.testimonial-swiper .swiper-slide { height: auto; }
.testimonial-swiper .swiper-wrapper { align-items: stretch; }

/* ---------- Light mode ---------- */
html[data-theme="light"] {
  background: #f7f7fb;
}
html[data-theme="light"] body {
  background: #f7f7fb;
  color: #0a0a0f;
}
html[data-theme="light"] #site-header.is-scrolled {
  background: rgba(255,255,255,.7);
  border-bottom-color: rgba(0,0,0,.06);
}
html[data-theme="light"] .nav-link { color: rgba(10,10,15,.7); }
html[data-theme="light"] .nav-link:hover { color: #0a0a0f; }
html[data-theme="light"] .text-white { color: #0a0a0f !important; }
html[data-theme="light"] .text-white\/70 { color: rgba(10,10,15,.7) !important; }
html[data-theme="light"] .text-white\/60 { color: rgba(10,10,15,.6) !important; }
html[data-theme="light"] .text-white\/50 { color: rgba(10,10,15,.5) !important; }
html[data-theme="light"] .text-white\/40 { color: rgba(10,10,15,.4) !important; }
html[data-theme="light"] .bg-ink-950, html[data-theme="light"] .bg-ink-900, html[data-theme="light"] .bg-ink-800 { background: #f0f0f5 !important; }
html[data-theme="light"] .border-white\/10 { border-color: rgba(10,10,15,.1) !important; }
html[data-theme="light"] .border-white\/15 { border-color: rgba(10,10,15,.15) !important; }
html[data-theme="light"] .bg-white { background: #0a0a0f !important; color: #fff !important; }
html[data-theme="light"] .bg-white\/5 { background: rgba(10,10,15,.04) !important; }
html[data-theme="light"] .bg-white\/\[0\.06\] { background: rgba(10,10,15,.04) !important; }
html[data-theme="light"] #preloader { background: #f7f7fb; }

/* ---------- Utilities ---------- */
.reveal { opacity: 0; transform: translateY(40px); }
.reveal.in { opacity: 1; transform: none; transition: opacity .9s var(--ease-out-expo), transform .9s var(--ease-out-expo); }

.glass {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

/* ---------- Reduce motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ---------- Forms ---------- */
input:autofill, textarea:autofill {
  -webkit-box-shadow: 0 0 0 1000px rgba(255,255,255,.04) inset !important;
  -webkit-text-fill-color: #fff !important;
}

/* ---------- FAQ Accordion ---------- */
.faq-item summary { list-style: none; cursor: pointer; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item[open] .faq-icon { transform: rotate(45deg); }
.faq-icon { transition: transform .35s var(--ease-out-expo); }
