
        /* ============================================================
               CUSTOM STYLES & ANIMATIONS
               ============================================================ */

        /* ---------- Scroll reveal base ---------- */
        .reveal {
            opacity: 0;
            transform: translateY(40px) scale(0.96);
            transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
        }

        .reveal.visible {
            opacity: 1;
            transform: translateY(0) scale(1);
        }

        /* Stagger children inside a container */
        .stagger-children>* {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.6s ease, transform 0.6s ease;
        }

        .stagger-children.visible>*:nth-child(1) {
            transition-delay: 0.05s;
        }
        .stagger-children.visible>*:nth-child(2) {
            transition-delay: 0.12s;
        }
        .stagger-children.visible>*:nth-child(3) {
            transition-delay: 0.19s;
        }
        .stagger-children.visible>*:nth-child(4) {
            transition-delay: 0.26s;
        }
        .stagger-children.visible>*:nth-child(5) {
            transition-delay: 0.33s;
        }
        .stagger-children.visible>*:nth-child(6) {
            transition-delay: 0.40s;
        }

        .stagger-children.visible>* {
            opacity: 1;
            transform: translateY(0);
        }

        /* ---------- Hero background ---------- */
        .hero-bg {
            background: linear-gradient(180deg, #ffffff 0%, #f0f9ff 40%, #cffafe 100%);
            position: relative;
            overflow: hidden;
        }

        .hero-bg::before {
            content: '';
            position: absolute;
            inset: 0;
            background:
                radial-gradient(circle at 10% 30%, rgba(37, 99, 235, 0.04) 0%, transparent 60%),
                radial-gradient(circle at 90% 70%, rgba(124, 58, 237, 0.04) 0%, transparent 60%),
                url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%232563eb' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
            pointer-events: none;
        }

        .hero-bg .floating-shape {
            position: absolute;
            border-radius: 50%;
            background: rgba(37, 99, 235, 0.04);
            animation: float 12s ease-in-out infinite alternate;
        }

        @keyframes float {
            0% {
                transform: translate(0, 0) scale(1);
            }
            100% {
                transform: translate(30px, -20px) scale(1.1);
            }
        }

        /* ---------- Card hover effects ---------- */
        .card-hover {
            transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
                box-shadow 0.4s ease, border-color 0.3s ease;
        }

        .card-hover:hover {
            transform: translateY(-6px) scale(1.01);
            box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.12);
        }

        /* ---------- Stat counter ---------- */
        .stat-number {
            font-variant-numeric: tabular-nums;
        }

        /* ---------- Timeline item pulse ---------- */
        .timeline-pulse {
            animation: pulse-ring 2s ease-out infinite;
        }

        @keyframes pulse-ring {
            0% {
                box-shadow: 0 0 0 0 rgba(99, 102, 241, 0.3);
            }
            70% {
                box-shadow: 0 0 0 12px rgba(99, 102, 241, 0);
            }
            100% {
                box-shadow: 0 0 0 0 rgba(99, 102, 241, 0);
            }
        }

        /* ---------- Button shine ---------- */
        .btn-shine {
            position: relative;
            overflow: hidden;
        }

        .btn-shine::after {
            content: '';
            position: absolute;
            top: -50%;
            left: -60%;
            width: 30%;
            height: 200%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
            transform: rotate(25deg);
            transition: left 0.6s ease;
        }

        .btn-shine:hover::after {
            left: 120%;
        }

        /* ---------- Responsive tweaks ---------- */
        @media (max-width: 640px) {
            .reveal {
                transform: translateY(20px);
            }
            .hero-bg .floating-shape {
                display: none;
            }
        }

        /* ---------- Misc ---------- */
        .text-blue {
            color: #1e3a5f;
        }
        .text-indigo-1000 {
            color: #1e1b4b;
        }
        .bg-indigo-50 {
            background-color: #eef2ff;
        }
        .border-indigo-100 {
            border-color: #e0e7ff;
        }
        .shadow-indigo-500\/20 {
            box-shadow: 0 4px 14px rgba(99, 102, 241, 0.2);
        }
        .shadow-indigo-500\/25 {
            box-shadow: 0 8px 30px rgba(99, 102, 241, 0.25);
        }
        .shadow-emerald-500\/20 {
            box-shadow: 0 4px 14px rgba(16, 185, 129, 0.2);
        }
        .shadow-purple-500\/20 {
            box-shadow: 0 4px 14px rgba(168, 85, 247, 0.2);
        }
        .shadow-amber-500\/20 {
            box-shadow: 0 4px 14px rgba(245, 158, 11, 0.2);
        }
        .hover\:border-indigo-200:hover {
            border-color: #c7d2fe;
        }
        .hover\:border-purple-200:hover {
            border-color: #e9d5ff;
        }

        /* Fix for backdrop blur in older browsers */
        .backdrop-blur-sm {
            backdrop-filter: blur(4px);
            -webkit-backdrop-filter: blur(4px);
        }
