        /* Custom Styles & High Contrast Mode */
        :root {
            --primary-bg: #fdfdfd;
            --primary-text: #0d1a26;
            --secondary-bg: #f1f5f9;
            --secondary-text: #334155;
            --accent-color: #0891b2; /* New Accent: Cyan */
            --accent-text: #ffffff;
            --border-color: #e2e8f0;
        }

        .high-contrast {
            --primary-bg: #000000;
            --primary-text: #ffffff;
            --secondary-bg: #111111;
            --secondary-text: #e5e7eb;
            --accent-color: #facc15;
            --accent-text: #000000;
            --border-color: #4b5563;
        }
        
        body {
            font-family: 'Inter', sans-serif;
            background-color: var(--primary-bg);
            color: var(--primary-text);
            transition: background-color 0.3s, color 0.3s;
        }

        .bg-primary { background-color: var(--primary-bg); }
        .text-primary { color: var(--primary-text); }
        .bg-secondary { background-color: var(--secondary-bg); }
        .text-secondary { color: var(--secondary-text); }
        .bg-accent { background-color: var(--accent-color); }
        .text-accent-text { color: var(--accent-text); }
        .border-custom { border-color: var(--border-color); }
        .fill-accent { fill: var(--accent-color); }
        .text-accent { color: var(--accent-color); }

        .transition-all { transition: all 0.3s ease-in-out; }
       
        /* --- New Animations --- */

        /* Hero Background Zoom */
        .hero-bg-image {
            animation: zoomIn 10s ease-out forwards;
        }
        @keyframes zoomIn {
            from { transform: scale(1); }
            to { transform: scale(1.1); }
        }

        /* Hero Text Animation */
        .animated-hero-text h1, 
        .animated-hero-text p, 
        .animated-hero-text .animated-btn {
            opacity: 0;
            animation: fadeInUp 0.8s ease-out forwards;
        }
        .animated-hero-text h1 { animation-delay: 0.5s; }
        .animated-hero-text p { animation-delay: 1.0s; }
        .animated-hero-text .animated-btn { animation-delay: 1.5s; }

        @keyframes fadeInUp {
            from { opacity: 0; transform: translateY(20px); }
            to { opacity: 1; transform: translateY(0); }
        }

        /* Scroll-triggered fade-in animation */
        .reveal {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.8s ease-out, transform 0.8s ease-out;
        }
        .reveal.visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* Page transition fade-in */
        .fade-in { 
            animation: fadeIn 0.6s ease-in-out; 
        }
        @keyframes fadeIn { 
            from { opacity: 0; } 
            to { opacity: 1; } 
        }

        /* Smooth Scrolling */
        html { scroll-behavior: smooth; }

        /* Read More Functionality */
        .extra-content {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.7s ease-in-out;
        }
        .extra-content.show {
            max-height: 1000px; /* Adjust as needed */
        }

        /* Enhanced Button Styles */
        .animated-btn {
            transition: all 0.3s ease;
        }
        .animated-btn:hover {
            transform: translateY(-3px);
            box-shadow: 0 4px 12px rgba(0,0,0,0.15);
        }
        .animated-btn:active {
            transform: translateY(-1px);
        }

        /* Card hover effect */
        .animated-card {
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .animated-card:hover {
            transform: translateY(-8px);
            box-shadow: 0 10px 20px rgba(0,0,0,0.1);
        }

        /* Image zoom on card hover */
        .animated-card .card-image {
            transition: transform 0.4s ease;
        }
        .animated-card:hover .card-image {
            transform: scale(1.05);
        }

        /* Nav link underline effect */
        .nav-link-animated {
            position: relative;
            padding-bottom: 4px;
        }
        .nav-link-animated::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            width: 0;
            height: 2px;
            background-color: var(--accent-color);
            transition: width 0.3s ease;
        }
        .nav-link-animated:hover::after {
            width: 100%;
        }
        
        /* Icon animation on hover */
        .animated-icon-wrapper {
            transition: transform 0.3s ease;
        }
        .animated-icon-wrapper:hover {
            transform: scale(1.1);
        }


       @keyframes slideDown { from { transform: translateY(-50px); opacity:0; } to { transform: translateY(0); opacity:1; } }
@keyframes slideUp { from { transform: translateY(50px); opacity:0; } to { transform: translateY(0); opacity:1; } }

.animate-slideDown { animation: slideDown 1s ease-out forwards; }
.animate-slideUp { animation: slideUp 1s ease-out forwards; }

.hero-bg-image { transition: opacity 1s ease-in-out; }
