/* --- Keyframes & Animation Overrides --- */

/* Hero Glow Effect */
.hero-glow {
    position: absolute;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(27,94,155,0.2) 0%, rgba(10,22,40,0) 70%);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 0;
    animation: pulse 8s infinite alternate;
}

@keyframes pulse {
    0% { transform: translate(-50%, -50%) scale(1); opacity: 0.5; }
    100% { transform: translate(-50%, -50%) scale(1.2); opacity: 1; }
}

/* Typing Effect for Subtitle */
.typing-effect {
    border-right: 2px solid var(--accent);
    white-space: nowrap;
    overflow: hidden;
    margin: 0 auto;
    animation: typing 3.5s steps(40, end), blink-caret .75s step-end infinite;
}

@keyframes typing {
  from { width: 0 }
  to { width: 100% }
}

@keyframes blink-caret {
  from, to { border-color: transparent }
  50% { border-color: var(--accent); }
}

/* Enhance AOS defaults for darker background */
[data-aos] {
    transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
}

/* Logo Marquee */
.logo-marquee { display: flex; overflow: hidden; width: 100%; }
.logo-marquee-track { display: flex; animation: marquee 20s linear infinite; }
.logo-marquee-track img { height: 40px; margin: 0 40px; filter: grayscale(100%) opacity(0.5); transition: 0.3s; }
.logo-marquee-track img:hover { filter: grayscale(0%) opacity(1); }
@keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
