* { margin: 0; padding: 0; box-sizing: border-box; }
        html { background-color: #060C1C; }
        body { font-family: 'DM Sans', sans-serif; }

        /* Custom scrollbar */
        ::-webkit-scrollbar { width: 6px; }
        ::-webkit-scrollbar-track { background: #1b3a79; }
        ::-webkit-scrollbar-thumb { background: #1E3A8A; border-radius: 3px; }

        /* Hero gradient animation */
        .hero-gradient {
            background-color: #060C1C;
            background-image: url('../images/hero-bg.jpg');
            background-size: cover;
            background-position: center;
            background-repeat: no-repeat;
            position: relative;
        }
        .hero-gradient::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(135deg, rgba(6,12,28,0.75) 0%, rgba(30,58,138,0.45) 60%, rgba(6,12,28,0.65) 100%);
            z-index: 0;
        }
        @keyframes gradientShift {
            0% { background-position: center; }
            100% { background-position: center; }
        }
            50% { background-image: linear-gradient(135deg, #0C1737 0%, #1E3A8A 40%, #122353 70%, #060C1C 100%); }
            100% { background-image: linear-gradient(135deg, #060C1C 0%, #0C1737 30%, #1E3A8A 60%, #122353 100%); }
        }

        /* Grid pattern overlay */
        .grid-pattern {
            background-image:
                linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
                linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
            background-size: 60px 60px;
        }

        /* Floating dots */
        .dot-accent {
            position: absolute;
            width: 6px; height: 6px;
            background: rgba(67, 97, 179, 0.5);
            border-radius: 50%;
            animation: pulse-dot 3s ease-in-out infinite;
        }
        @keyframes pulse-dot {
            0%, 100% { opacity: 0.3; transform: scale(1); }
            50% { opacity: 1; transform: scale(1.5); }
        }

        /* Reveal animations */
        .reveal {
            opacity: 0;
            transform: translateY(40px);
            transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
                        transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .reveal.visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* Card hover */
        .service-card {
            transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
                        box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .service-card:hover {
            transform: translateY(-8px);
            box-shadow: 0 20px 60px rgba(30, 58, 138, 0.15);
        }
        .service-card .icon-wrapper {
            transition: background 0.4s ease, transform 0.4s ease;
        }
        .service-card:hover .icon-wrapper {
            background: #1E3A8A;
            transform: scale(1.1);
        }
        .service-card:hover .icon-wrapper svg {
            stroke: white;
        }

        /* Brand logos marquee */
        .marquee-track {
            display: flex;
            animation: marquee 30s linear infinite;
            width: max-content;
        }
        @keyframes marquee {
            0% { transform: translateX(0); }
            100% { transform: translateX(-50%); }
        }
        .marquee-track:hover { animation-play-state: paused; }

        /* CTA button glow */
        .btn-glow {
            position: relative;
            overflow: hidden;
        }
        .btn-glow::before {
            content: '';
            position: absolute;
            top: -2px; left: -2px; right: -2px; bottom: -2px;
            background: linear-gradient(45deg, #4361B3, #1E3A8A, #7289C6, #1E3A8A);
            background-size: 300% 300%;
            animation: glowShift 4s ease infinite;
            border-radius: inherit;
            z-index: -1;
            opacity: 0;
            transition: opacity 0.3s ease;
        }
        .btn-glow:hover::before { opacity: 1; }

        /* Nav link underline */
        .nav-link {
            position: relative;
        }
        .nav-link::after {
            content: '';
            position: absolute;
            bottom: -4px; left: 0;
            width: 0; height: 2px;
            background: #1E3A8A;
            transition: width 0.3s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .nav-link:hover::after { width: 100%; }

        /* Section divider */
        .section-line {
            width: 48px; height: 3px;
            background: linear-gradient(90deg, #1E3A8A, #4361B3);
            border-radius: 2px;
        }

        /* Mobile menu */
        .mobile-menu {
            clip-path: inset(0 0 100% 0);
            transition: clip-path 0.5s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .mobile-menu.open {
            clip-path: inset(0 0 0 0);
        }

        /* Counter animation */
        .stat-number {
            font-variant-numeric: tabular-nums;
        }