        /* Animation Classes */
        .animate-on-scroll {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.8s ease, transform 0.8s ease;
        }

        .animate-on-scroll.animated {
            opacity: 1;
            transform: translateY(0);
        }

        /* Fade In */
        .fade-in {
            opacity: 0;
            animation: fadeIn 1s ease forwards;
        }

        .fade-in.animated {
            opacity: 1;
        }

        @keyframes fadeIn {
            from {
                opacity: 0;
            }
            to {
                opacity: 1;
            }
        }

        /* Slide Up */
        .slide-up {
            opacity: 0;
            transform: translateY(50px);
            transition: opacity 0.8s ease, transform 0.8s ease;
        }

        .slide-up.animated {
            opacity: 1;
            transform: translateY(0);
        }

        /* Slide Left */
        .slide-left {
            opacity: 0;
            transform: translateX(-50px);
            transition: opacity 0.8s ease, transform 0.8s ease;
        }

        .slide-left.animated {
            opacity: 1;
            transform: translateX(0);
        }

        /* Slide Right */
        .slide-right {
            opacity: 0;
            transform: translateX(50px);
            transition: opacity 0.8s ease, transform 0.8s ease;
        }

        .slide-right.animated {
            opacity: 1;
            transform: translateX(0);
        }

        /* Zoom In */
        .zoom-in {
            opacity: 0;
            transform: scale(0.9);
            transition: opacity 0.8s ease, transform 0.8s ease;
        }

        .zoom-in.animated {
            opacity: 1;
            transform: scale(1);
        }

        /* Bounce In */
        .bounce-in {
            opacity: 0;
            transform: scale(0.3);
            transition: opacity 0.8s cubic-bezier(0.68, -0.55, 0.265, 1.55), 
                        transform 0.8s cubic-bezier(0.68, -0.55, 0.265, 1.55);
        }

        .bounce-in.animated {
            opacity: 1;
            transform: scale(1);
        }

        /* Flip Animation */
        .flip-in {
            opacity: 0;
            transform: perspective(400px) rotateY(90deg);
            transition: opacity 0.8s ease, transform 0.8s ease;
        }

        .flip-in.animated {
            opacity: 1;
            transform: perspective(400px) rotateY(0deg);
        }

        /* Rotate In */
        .rotate-in {
            opacity: 0;
            transform: rotate(-180deg) scale(0.5);
            transition: opacity 0.8s ease, transform 0.8s ease;
        }

        .rotate-in.animated {
            opacity: 1;
            transform: rotate(0deg) scale(1);
        }

        /* Staggered Animation Delays */
        .delay-100 { transition-delay: 0.1s; }
        .delay-200 { transition-delay: 0.2s; }
        .delay-300 { transition-delay: 0.3s; }
        .delay-400 { transition-delay: 0.4s; }
        .delay-500 { transition-delay: 0.5s; }
        .delay-600 { transition-delay: 0.6s; }
        .delay-700 { transition-delay: 0.7s; }
        .delay-800 { transition-delay: 0.8s; }
        .delay-900 { transition-delay: 0.9s; }
        .delay-1000 { transition-delay: 1s; }

        /* Enhanced Preloader Animation */
        .loader-wrap {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: #fff;
            z-index: 9999;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: opacity 0.5s ease, visibility 0.5s ease;
        }

        .animation-preloader {
            text-align: center;
        }

        .logo-loader {
            animation: pulse 2s infinite ease-in-out;
            margin-bottom: 20px;
        }

        @keyframes pulse {
            0%, 100% {
                transform: scale(1);
            }
            50% {
                transform: scale(1.05);
            }
        }

        .loader-percentage {
            font-size: 24px;
            font-weight: bold;
            color: #1E66D0;
            animation: countUp 2s ease-out forwards;
        }

        @keyframes countUp {
            from {
                opacity: 0;
                transform: translateY(20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        /* Page Load Animation */
        body {
            opacity: 0;
            animation: pageLoad 0.8s ease forwards;
        }

        @keyframes pageLoad {
            from {
                opacity: 0;
                transform: translateY(10px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        /* Section Spacing with Animation */
        section {
            position: relative;
            overflow: hidden;
        }

        /* Hover Effects for Cards */
        .card-hover {
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }

        .card-hover:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 30px rgba(0,0,0,0.1);
        }

        /* Button Animation */
        .btn-animate {
            position: relative;
            overflow: hidden;
            transition: all 0.3s ease;
        }

        .btn-animate:hover {
            transform: translateY(-2px);
            box-shadow: 0 5px 15px rgba(0,0,0,0.1);
        }

        /* Text Reveal Animation */
        .text-reveal {
            opacity: 0;
            transform: translateY(20px);
            transition: opacity 0.6s ease, transform 0.6s ease;
        }

        .text-reveal.revealed {
            opacity: 1;
            transform: translateY(0);
        }

        /* Image Reveal Animation */
        . {
            opacity: 0;
            transform: scale(0.95);
            transition: opacity 0.8s ease, transform 0.8s ease;
        }

        ..revealed {
            opacity: 1;
            transform: scale(1);
        }

        /* Counter Animation */
        .counter {
            font-weight: bold;
            transition: all 0.5s ease;
        }

        /* Progress Bar Animation */
        .progress-animate {
            width: 0;
            transition: width 1.5s ease-in-out;
        }

        .progress-animate.animated {
            width: var(--progress-width);
        }

        /* Grid Item Animation */
        .grid-item {
            opacity: 0;
            transform: translateY(20px) scale(0.95);
            transition: opacity 0.5s ease, transform 0.5s ease;
        }

        .grid-item.animated {
            opacity: 1;
            transform: translateY(0) scale(1);
        }

        /* Stagger Animation for Lists */
        .stagger-list li {
            opacity: 0;
            transform: translateX(-20px);
            transition: opacity 0.4s ease, transform 0.4s ease;
        }

        .stagger-list.animated li {
            opacity: 1;
            transform: translateX(0);
        }

        .stagger-list.animated li:nth-child(1) { transition-delay: 0.1s; }
        .stagger-list.animated li:nth-child(2) { transition-delay: 0.2s; }
        .stagger-list.animated li:nth-child(3) { transition-delay: 0.3s; }
        .stagger-list.animated li:nth-child(4) { transition-delay: 0.4s; }
        .stagger-list.animated li:nth-child(5) { transition-delay: 0.5s; }
        .stagger-list.animated li:nth-child(6) { transition-delay: 0.6s; }
        .stagger-list.animated li:nth-child(7) { transition-delay: 0.7s; }

        /* Typewriter Effect */
        .typewriter {
            overflow: hidden;
            border-right: 3px solid #1E66D0;
            white-space: nowrap;
            animation: typing 3.5s steps(40, end), blink-caret 0.75s step-end infinite;
        }

        @keyframes typing {
            from { width: 0 }
            to { width: 100% }
        }

        @keyframes blink-caret {
            from, to { border-color: transparent }
            50% { border-color: #1E66D0 }
        }

        /* Floating Animation */
        .floating {
            animation: floating 3s ease-in-out infinite;
        }

        @keyframes floating {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-10px); }
        }

        /* Shine Effect */
        .shine {
            position: relative;
            overflow: hidden;
        }

        .shine::after {
            content: '';
            position: absolute;
            top: -50%;
            left: -60%;
            width: 20%;
            height: 200%;
            opacity: 0;
            transform: rotate(30deg);
            background: rgba(255, 255, 255, 0.13);
            background: linear-gradient(
                to right,
                rgba(255, 255, 255, 0.13) 0%,
                rgba(255, 255, 255, 0.13) 77%,
                rgba(255, 255, 255, 0.5) 92%,
                rgba(255, 255, 255, 0.0) 100%
            );
        }

        .shine:hover::after {
            opacity: 1;
            left: 130%;
            transition: left 0.7s ease;
        }