 @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }
        @keyframes fadeInUp {
            from { opacity: 0; transform: translateY(20px); }
            to { opacity: 1; transform: translateY(0); }
        }
        @keyframes scaleIn {
            from { opacity: 0; transform: scale(0.95); }
            to { opacity: 1; transform: scale(1); }
        }
        @keyframes pulseGlowLime {
            0%, 100% { box-shadow: 0 0 8px #1f4071, 0 0 12px #1f4071; }
            50% { box-shadow: 0 0 16px #1f4071, 0 0 24px #1f4071; }
        }
        @keyframes pulseGlowCyan {
            0%, 100% { box-shadow: 0 0 8px #20578f, 0 0 12px #20578f; }
            50% { box-shadow: 0 0 16px #20578f, 0 0 24px #20578f; }
        }
        .animate-fadeIn { animation: fadeIn 1s ease-out forwards; }
        .animate-fadeInUp { animation: fadeInUp 0.8s ease-out forwards; }
        .animate-scaleIn { animation: scaleIn 0.7s ease-out forwards; }

        .animation-delay-200 { animation-delay: 0.2s; }
        .animation-delay-400 { animation-delay: 0.4s; }
        .animation-delay-600 { animation-delay: 0.6s; }
        .animation-delay-800 { animation-delay: 0.8s; }

        body {
            background-color: #020617; /* slate-950 */
            color: #cbd5e1; /* slate-300 */
            font-family: 'Inter', sans-serif; /* A modern sans-serif font, Tailwind usually includes similar */
        }
        /* Custom scrollbar for a more modern look */
        ::-webkit-scrollbar {
            width: 5px;
        }
        ::-webkit-scrollbar-track {
            background: #0f172a; /* slate-900 */
        }
        ::-webkit-scrollbar-thumb {
            background: #20578f; /* lime-500 */
            border-radius: 4px;
        }
        ::-webkit-scrollbar-thumb:hover {
            background: #20578f; /* lime-400 */
        }
        .glassmorphic-panel {
            background: rgba(15, 23, 42, 0.6); /* slate-900 with opacity */
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
            border: 1px solid rgba(51, 65, 85, 0.5); /* slate-700 with opacity */
        }

        .hero-bg-pattern {
            background-image: radial-gradient(circle at 25% 25%, #67e8f91a 0%, transparent 30%),
                              radial-gradient(circle at 75% 75%, #3498db1a 0%, transparent 30%);
            background-size: 100px 100px; /* Adjust size of patterns */
        }
        .section-title-underline::after {
            content: '';
            display: block;
            width: 60px;
            height: 3px;
            background-color: #20578f; /* lime-500 */
            margin-top: 8px;
        }
        .section-title-underline.mx-auto::after {
             margin-left: auto;
             margin-right: auto;
        }
        /* For JS-controlled animations, initially hidden */
        .revealable {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.6s ease-out, transform 0.6s ease-out;
        }
        .revealable.revealed {
            opacity: 1;
            transform: translateY(0);
        }

        




@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');


                .gradient-text {
            background-clip: text;
            -webkit-background-clip: text;
            color: transparent;
        }

        .hero-gradient {
            background-image: linear-gradient(120deg, #f0fdf4 0%, #ecfdf5 50%, #ccfbf1 100%);
        }

        .cta-gradient {
            background-image: linear-gradient(to right, var(--lime-600) 0%, #20578f 100%);
        }

        .scroll-animate {
            opacity: 0;
            transition: opacity 0.7s ease-out, transform 0.7s ease-out;
        }

        .scroll-animate.fade-in-up {
            transform: translateY(30px);
        }

        .scroll-animate.fade-in-up.is-visible {
            opacity: 1;
            transform: translateY(0);
        }

        .scroll-animate.fade-in.is-visible {
            opacity: 1;
        }

        .scroll-animate.slide-in-left {
            transform: translateX(-50px);
        }

        .scroll-animate.slide-in-left.is-visible {
            opacity: 1;
            transform: translateX(0);
        }

        .scroll-animate.slide-in-right {
            transform: translateX(50px);
        }

        .scroll-animate.slide-in-right.is-visible {
            opacity: 1;
            transform: translateX(0);
        }

        .scroll-animate.zoom-in {
            transform: scale(0.9);
        }

        .scroll-animate.zoom-in.is-visible {
            opacity: 1;
            transform: scale(1);
        }

        .stagger-1.is-visible {
            transition-delay: 0.1s !important;
        }

        .stagger-2.is-visible {
            transition-delay: 0.2s !important;
        }

        .stagger-3.is-visible {
            transition-delay: 0.3s !important;
        }

        .stagger-4.is-visible {
            transition-delay: 0.4s !important;
        }

        .menu-item::after {
            content: '';
            position: absolute;
            width: 0;
            height: 2px;
            bottom: -4px;
            left: 50%;
            transform: translateX(-50%);
            background-color: var(--lime-600);
            transition: width 0.3s ease-in-out;
        }

        .menu-item:hover::after,
        .menu-item.active::after {
            width: 100%;
        }

        .mobile-menu-item {
            transition: background-color 0.2s ease-in-out;
        }

        .mobile-menu-item:hover {
            background-color: #ecfdf5;
            /* lime-50 */
        }

        .btn-primary {
            background-color: #20578f;
            color: white;
            transition: background-color 0.3s ease, transform 0.2s ease;
        }

        .btn-primary:hover {
            background-color: #1f4071;
            /* lime-700 */
            transform: translateY(-2px);
        }

        .btn-secondary {
            background-color: transparent;
            color: var(--lime-600);
            border: 2px solid var(--lime-600);
            transition: background-color 0.3s ease, color 0.3s ease, transform 0.2s ease;
        }

        .btn-secondary:hover {
            background-color: var(--lime-600);
            color: white;
            transform: translateY(-2px);
        }

        .floating-card {
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }

        .floating-card:hover {
            transform: translateY(-8px);
            box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
        }