/* KB Infosys — base styles (Tailwind handles most) */
html { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; }
h1, h2, h3 { scroll-margin-top: 88px; text-wrap: balance; }
:focus-visible { outline: 3px solid #0369A1; outline-offset: 2px; }
/* Active nav link (JS adds .nav-active alongside aria-current) */
.nav-active { color: #0369A1; font-weight: 700; }
.reveal { will-change: transform, opacity; }
/* Hero orbital vector: transform/opacity only, GPU-friendly */
.orbit, .pulse-ring, .node-dot { transform-box: fill-box; transform-origin: center; }
.orbit-a { animation: orbit-spin 46s linear infinite; }
.orbit-b { animation: orbit-spin-rev 34s linear infinite; }
.orbit-c { animation: orbit-spin 24s linear infinite; }
@keyframes orbit-spin { to { transform: rotate(360deg); } }
@keyframes orbit-spin-rev { to { transform: rotate(-360deg); } }
.pulse-ring { animation: pulse-ring 3.2s ease-out infinite; }
.pulse-d2 { animation-delay: 1.6s; }
@keyframes pulse-ring { 0% { transform: scale(.55); opacity: .9; } 100% { transform: scale(1.9); opacity: 0; } }
.node-dot { animation: node-blink 3.2s ease-in-out infinite; }
.node-d2 { animation-delay: .8s; } .node-d3 { animation-delay: 1.6s; } .node-d4 { animation-delay: 2.4s; }
@keyframes node-blink { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }
/* Hero CTA glow (GRIN-style pill) */
.cta-glow { box-shadow: 0 12px 30px rgba(3,105,161,.35); }
/* Floating orbit badges: simple repeated motif, transform only */
.orbit-badge { animation: float-y 5s ease-in-out infinite; will-change: transform; }
.float-2 { animation-delay: 1.2s; } .float-3 { animation-delay: 2.4s; }
@keyframes float-y { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
/* Proof marquee: single loop, pause on hover/focus */
.marquee { animation: marquee 28s linear infinite; width: max-content; }
.marquee:hover, .marquee:focus-within { animation-play-state: paused; }
@keyframes marquee { to { transform: translateX(-50%); } }
/* FAQ accordion */
details summary::-webkit-details-marker { display: none; }
details summary::after { content: "+"; float: right; color: #0369A1; font-weight: 700; }
details[open] summary::after { content: "–"; }
details summary:focus-visible { outline: 3px solid #0369A1; outline-offset: 2px; }
/* Tilt depth */
[data-tilt] { transform-style: preserve-3d; will-change: transform; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1 !important; transform: none !important; }
  .marquee { animation: none; width: auto; flex-wrap: wrap; white-space: normal; }
  .orbit, .pulse-ring, .node-dot, .orbit-badge { animation: none; }
  .pulse-ring { opacity: .25; }
}
