@import "tailwindcss";
@tailwind base;
@tailwind components;
@tailwind utilities;


/* scrollbar styling */
::-webkit-scrollbar {
    width: 12px;
    height: 12px;
    -webkit-font-smoothing: antialiased;
}

::-webkit-scrollbar-track {
    background: theme('colors.neutral.100'); /* Tailwind neutral-100 */
    border-radius: 10px;
}

.dark::-webkit-scrollbar-track {
    background: theme('colors.neutral.700'); /* Tailwind neutral-700 */
}

::-webkit-scrollbar-thumb {
    background-color: theme('colors.primary.500');
    border-radius: 10px;
    border: 3px solid theme('colors.neutral.100'); /* Adjust border color to match track for a thinner thumb appearance */
}

.dark::-webkit-scrollbar-thumb {
    border-color: theme('colors.neutral.700'); /* dark:neutral-700 */
}

::-webkit-scrollbar-thumb:hover {
    background-color: theme('colors.primary.600'); /* primary-600 on hover, matches primary-500 from your config */
}

/* dropdown style */
        .dropdown-menu {
            transition: all 0.3s ease-out;
            max-height: 0;
            overflow: hidden;
            opacity: 0;
            visibility: hidden;
        }
        .dropdown-menu.show {
            max-height: 200px; /* Adjust based on content height */
            opacity: 1;
            visibility: visible;
        }

/* Cookie Consent Popup */
#cookie-consent-banner {
    /* Positioning and Sizing */
    bottom: 0; /* Fixed to the very bottom */
    left: 0;   /* Stretches to the left edge */
    right: 0;  /* Stretches to the right edge */
    width: 100%; /* Explicitly ensures full width */
    margin: 0; /* Removes any default or inherited margins */
    padding: 1rem; /* Consistent padding inside the banner (equivalent to Tailwind's p-4) */

    /* Border Radius (Top corners rounded, bottom flush) */
    border-radius: 0; /* Reset all corners to square */
    border-top-left-radius: 0.5rem; /* Apply rounding to top-left (e.g., Tailwind's rounded-t-lg) */
    border-top-right-radius: 0.5rem; /* Apply rounding to top-right */

    /* Initial Visibility & Animation */
    opacity: 0; /* Start hidden */
    transform: translateY(100%); /* Start off-screen */
    transition: opacity 0.5s ease-out, transform 0.5s ease-out; /* Smooth animation */

    /* Flexbox Layout (Always Stacked) */
    display: flex; /* Enable flexbox */
    flex-direction: column; /* ALWAYS stack items vertically (text then button) */
    align-items: center; /* Horizontally center content (the stacked block) within the banner */
    justify-content: center; /* Vertically center content if there's extra space */
    gap: 0.75rem; /* Add consistent vertical spacing between text and button (equivalent to Tailwind's gap-y-3) */
}

#cookie-consent-banner.show {
    opacity: 1; /* Fully visible */
    transform: translateY(0); /* Move into view */
}

/* Specific styling for the paragraph text within the banner */
#cookie-consent-banner p {
    text-align: center; /* Center the text lines themselves */
    /* Optional: Add a max-width to the paragraph if you want to prevent the text from
       spreading too wide on very large screens, while still keeping the banner full-width */
    /* max-width: 600px; */
}

/* Page Dimming Overlay (CSS remains the same as it's typically controlled by JS class toggles) */
#page-dim-overlay {
    /* Styles are mostly handled by Tailwind classes directly in HTML
       (e.g., fixed inset-0 bg-black bg-opacity-50 z-30 opacity-0 transition-opacity duration-500 ease-out pointer-events-none) */
}

#page-dim-overlay.visible {
    opacity: 1;
    pointer-events: auto; /* Re-enable pointer events when visible to block clicks */
}

/* Specific text colors using custom primary definition */
.text-primary-500 { color: theme('colors.primary.400'); } /* Mapped to primary-400 as per your config */
.dark .text-primary-500 { color: theme('colors.primary.500'); } /* Mapped to primary-500 as per your config */

/* Adjustments for larger screens for the banner layout */
@media (min-width: 768px) {
    #cookie-consent-banner {
        flex-direction: row; /* Row direction for desktop */
        margin-left: 1rem; /* Add margins for desktop */
        margin-right: 1rem;
        width: calc(100% - 2rem); /* Adjust width for desktop margins */
        border-radius: 0.5rem; /* Rounded corners for desktop popup */
    }
}

@media (max-width: 767px) { /* For mobile devices (adjust breakpoint as needed) */
    #cookie-consent-banner {
        bottom: 4rem; /* Example: Move up 4rem (adjust this value based on your mobile nav height) */
        margin-left: 1rem;
        margin-right: 1rem;
        width: calc(100% - 2rem); /* Adjust width to account for margins */
        border-radius: 0.5rem; /* Slightly rounded corners for mobile popup */
    }
}

/* Style for the GitHub repository select */

#report-bug-section .form-group {

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 1rem;

}



#report-bug-section .github-row {

    flex-direction: row; /* Keep elements in a row */

    gap: 1rem;

}



#report-bug-section .github-logo {

    flex-shrink: 0;

    width: 2.5rem; /* Equivalent to w-10 */

    height: 2.5rem; /* Equivalent to h-10 */

    color: #4B5563; /* Tailwind gray-700 */

    transition: color 0.3s ease;

}



.dark #report-bug-section .github-logo {

    color: #D1D5DB; /* Tailwind gray-300 */

}



#report-bug-section .github-logo:hover {

    color: #1F2937; /* Tailwind gray-900 */

}



.dark #report-bug-section .github-logo:hover {

    color: #F9FAFB; /* Tailwind gray-50 */

}



#report-bug-section .github-logo svg {

    width: 100%;

    height: 100%;

}



#github-repo-select {
    flex-grow: 1; /* Allow select to take available space */
    max-width: 100%; /* Ensure it doesn't overflow */
    padding: 0.75rem 1rem; /* p-3 for py and px-4 */
    border-radius: 0.5rem; /* rounded-lg */
    border: 1px solid #D1D5DB; /* border-gray-300 */
    background-color: #F9FAFB; /* bg-gray-50 */
    color: #1F2937; /* text-gray-900 */
    font-size: 1rem; /* text-base */
    line-height: 1.5;
    appearance: none; /* Remove default arrow */
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3e%3cpath d='M7 7l3-3 3 3m0 6l-3 3-3-3' stroke='%236B7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1.5em 1.5em;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;

}

.dark #github-repo-select {
    border-color: #374151; /* dark:border-gray-700 */
    background-color: #1F2937; /* dark:bg-gray-800 */
    color: #F9FAFB; /* dark:text-white */

}

#github-repo-select:focus {
    border-color: #0ea5e9; /* focus:border-primary-500 */
    ring-color: #0ea5e9; /* focus:ring-primary-500 */
    outline: none;
    box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.2); /* ring-primary-500 with opacity */

}

.dark #github-repo-select:focus {

    box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.4); /* dark:focus:ring-primary-400 */

}

/* Specific styles for the filter buttons */
#modpack-filters .filter-btn {
    @apply transition-colors duration-200;
}

#modpack-filters .filter-btn[data-category="all"] {
    @apply bg-primary-600 text-white hover:bg-primary-700;
}

#modpack-filters .filter-btn:not([data-category="all"]) {
    @apply bg-neutral-200 dark:bg-neutral-700 text-neutral-800 dark:text-neutral-200 hover:bg-neutral-300 dark:hover:bg-neutral-600;
}

/* Line clamp utility for modpack descriptions */
.line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Ensures images maintain aspect ratio without distortion */
.object-cover {
    object-fit: cover;
}

/* Styles for the partner logo containers */
.partner-logo-container {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1rem; /* p-4 */
    background-color: theme('colors.neutral.100'); /* bg-neutral-100 */
    border-radius: 0.5rem; /* rounded-lg */
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1); /* shadow-md */
    border: 1px solid theme('colors.neutral.200'); /* border-neutral-200 */
    transition: all 0.3s ease-in-out;
}

.dark .partner-logo-container {
    background-color: theme('colors.neutral.700'); /* dark:bg-neutral-700 */
    border-color: theme('colors.neutral.600'); /* dark:border-neutral-600 */
}

.partner-logo-container:hover {
    border-color: theme('colors.primary.brand-hover'); /* hover:border-brand-hover */
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); /* hover:shadow-lg */
}

/* Partners Section Styling */
.partner-logo-container {
    transition: all 0.3s ease-in-out;
    cursor: pointer;
    box-sizing: border-box; /* Include padding and border in the element's total width and height */
}

.partner-logo-container:hover {
    transform: translateY(-5px) scale(1.05);
    box-shadow: 0 15px 20px -5px rgba(0, 0, 0, 0.2), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    border-color: theme('colors.primary.400' / 0.5); /* Blue border on hover using primary-400 with opacity */
}

.dark .partner-logo-container:hover {
    border-color: theme('colors.primary.500'); /* Darker blue for dark mode hover */
}

/* Bug Report */
.report-bug-section {
    background-color: theme('colors.white'); /* Light background matching main container */
    border-radius: 0; /* No rounded corners */
    box-shadow: none; /* No shadow */
    border: none; /* No explicit border, relies on overall page design */
    padding: 3rem;
    transition: all 0.3s ease;
}
.dark .report-bug-section {
    background-color: transparent; /* Dark background matching main container */
    border-color: theme('colors.neutral.600'); /* Darker border for dark mode, if border was present */
    box-shadow: none; /* No shadow */
}

.form-container-inner {
    max-width: 600px;
    margin: 0 auto;
}

.form-group label {
    display: block;
    margin-bottom: 0.6rem;
    font-weight: 700;
    color: theme('colors.neutral.700'); /* Neutral-700 */
}
.dark .form-group label {
    color: theme('colors.neutral.400'); /* Neutral-400 for dark mode labels */
}
.form-group select {
    width: 100%;
    padding: 0.8rem 1rem;
    border: 1px solid theme('colors.neutral.300'); /* Neutral-300 */
    border-radius: 0; 
    background-color: theme('colors.neutral.100'); /* Neutral-100 */
    color: theme('colors.neutral.800'); /* Neutral-800 */
    font-size: 1.05rem;
    transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, background-color 0.2s ease-in-out;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23374151'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z' clip-rule='evenodd' /%3E%3C/svg%3E"); /* Using Neutral-700 hex */
    background-repeat: no-repeat;
    background-position: right 0.8rem center;
    background-size: 1.4em 1.4em;
}
.dark .form-group select {
    background-color: theme('colors.neutral.900'); /* Darker background for dark mode select */
    border-color: theme('colors.neutral.600'); /* Darker border for dark mode */
    color: theme('colors.neutral.200'); /* Neutral-200 text */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%239CA3AF'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z' clip-rule='evenodd' /%3E%3C/svg%3E"); /* Using Neutral-400 hex */
}
.form-group select:focus {
    outline: none;
    border-color: theme('colors.primary.500'); /* Primary-500 */
    box-shadow: 0 0 0 4px theme('colors.primary.500' / 0.4);
    background-color: theme('colors.white'); /* White on focus for light mode */
}
.dark .form-group select:focus {
    background-color: theme('colors.neutral.700'); /* Slightly lighter dark on focus */
}

.github-logo {
    flex-shrink: 0;
    margin-right: 1.25rem;
}
.github-logo svg {
    width: 3rem;
    height: 3rem;
    color: theme('colors.neutral.800');
    transition: color 0.2s ease-in-out;
}
.dark .github-logo svg {
    color: theme('colors.neutral.200');
}
.github-logo:hover svg {
    color: theme('colors.primary.500');
}
.dark .github-logo:hover svg {
    color: theme('colors.primary.400');
}

@media (max-width: 639px) {
    .github-row {
        flex-direction: column;
        align-items: center;
        gap: 1.25rem;
        margin-bottom: 2rem;
    }
    .github-logo {
        margin-right: 0;
    }
    .report-bug-section {
        padding: 2rem;
    }
}

/* Styles for the partner logo containers */

.partner-logo-container {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1rem; /* p-4 */
    background-color: #F3F4F6; /* bg-gray-100 */
    border-radius: 0.5rem; /* rounded-lg */
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1); /* shadow-md */
    border: 1px solid #E5E7EB; /* border-gray-200 */
    transition: all 0.3s ease-in-out;

}



.dark .partner-logo-container {
    background-color: #374151; /* dark:bg-gray-700 */
    border-color: #4B5563; /* dark:border-gray-600 */

}

.partner-logo-container:hover {
    border-color: #327DC2; /* hover:border-blue-500 */
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); /* hover:shadow-lg */

}

        /* Partners Section Styling */
        .partner-logo-container {
            transition: all 0.3s ease-in-out;
            cursor: pointer;
            box-sizing: border-box; /* Include padding and border in the element's total width and height */

        }

        .partner-logo-container:hover {
            transform: translateY(-5px) scale(1.05);
            box-shadow: 0 15px 20px -5px rgba(0, 0, 0, 0.2), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
            border-color: #327DC2; /* Blue border on hover */

        }

        .dark .partner-logo-container:hover {
            border-color: #327DC2; /* Darker blue for dark mode hover */
        }

        /* Bug Report */

        .report-bug-section {
            background-color: #ffffff; /* Light background matching main container */
            border-radius: 0; /* No rounded corners */
            box-shadow: none; /* No shadow */
            border: none; /* No explicit border, relies on overall page design */
            padding: 3rem;
            transition: all 0.3s ease;

        }

        .dark .report-bug-section {
            background-color: transparent; /* Dark background matching main container */
            border-color: #4a5568; /* Darker border for dark mode, if border was present */
            box-shadow: none; /* No shadow */

        }



        .form-container-inner {
            max-width: 600px;
            margin: 0 auto;

        }

        .form-group label {
            display: block;
            margin-bottom: 0.6rem;
            font-weight: 700;
            color: #4a5568; /* Gray-700 */

        }

        .dark .form-group label {
            color: #a0aec0; /* Gray-400 for dark mode labels */

        }

        .form-group select {
            width: 100%;
            padding: 0.8rem 1rem;
            border: 1px solid #cbd5e0; /* Gray-300 */
            border-radius: 0; 
            background-color: #edf2f7; /* Gray-100 */
            color: #2d3748; /* Gray-800 */
            font-size: 1.05rem;
            transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, background-color 0.2s ease-in-out;
            appearance: none;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%234a5568'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z' clip-rule='evenodd' /%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: right 0.8rem center;
            background-size: 1.4em 1.4em;

        }

        .dark .form-group select {
            background-color: #333333; /* Darker background for dark mode select */
            border-color: #4a4a4a; /* Darker border for dark mode */
            color: #e2e8f0; /* White text */
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23a0aec0'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z' clip-rule='evenodd' /%3E%3C/svg%3E");

        }

        .form-group select:focus {
            outline: none;
            border-color: #3b82f6; /* Blue-500 */
            box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.4);
            background-color: #ffffff; /* White on focus for light mode */

        }

        .dark .form-group select:focus {
            background-color: #2d3748; /* Slightly lighter dark on focus */

        }



        .github-logo {
            flex-shrink: 0;
            margin-right: 1.25rem;

        }

        .github-logo svg {
            width: 3rem;
            height: 3rem;
            color: #2d3748;
            transition: color 0.2s ease-in-out;

        }

        .dark .github-logo svg {
            color: #e2e8f0;

        }

        .github-logo:hover svg {
            color: #327DC2;

        }

        .dark .github-logo:hover svg {
            color: #327DC2;

        }

        @media (max-width: 639px) {
            .github-row {
                flex-direction: column;
                align-items: center;
                gap: 1.25rem;
                margin-bottom: 2rem;

            }

            .github-logo {
                margin-right: 0;

            }
            .report-bug-section {
                padding: 2rem;
            }
        }

/* About Section */
        /* History Feature Container Styles - New Responsive Grid */
        .history-feature-container {
            display: grid;
            grid-template-columns: repeat(1, minmax(0, 1fr)); /* Single column by default */
            gap: 2.5rem; /* Space between cards */
            padding-top: 2.5rem;
            padding-bottom: 2.5rem;
        }

        @media (min-width: 640px) { /* sm breakpoint */
            .history-feature-container {
                grid-template-columns: repeat(2, minmax(0, 1fr)); /* 2 columns on small screens */
            }
        }

        @media (min-width: 1024px) { /* lg breakpoint */
            .history-feature-container {
                grid-template-columns: repeat(3, minmax(0, 1fr)); /* 3 columns on large screens */
            }
        }

        /* History Feature Card Styles - Modern & Interactive */
        .history-feature-card {
            background-color: #ffffff; /* White card background */
            border-radius: 1rem; /* rounded-xl */
            box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06); /* Softer, layered shadow */
            padding: 2.5rem; /* p-10 */
            text-align: center;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); /* Ease-in-out for smooth animations */
            border: 1px solid #e5e7eb; /* Light gray border */
            position: relative;
            overflow: hidden;
        }

        .dark .history-feature-card {
            background-color: #1a202c; /* Dark background */
            border-color: #2d3748; /* Darker border */
            box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5); /* Stronger dark shadow */
        }

        .history-feature-card:hover {
            transform: translateY(-8px); /* More pronounced lift on hover */
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15); /* Deeper shadow on hover */
            border-color: #327DC2; /* New blue for hover accent */
        }

        .dark .history-feature-card:hover {
            border-color: #4a90d9; /* Lighter shade of new blue for dark mode hover */
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.7);
        }

        /* Card background ornament (subtle gradient overlay) */
        .history-feature-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(135deg, rgba(50, 125, 194, 0.03) 0%, rgba(74, 144, 217, 0.01) 100%); /* New blue gradients */
            opacity: 1;
            z-index: 0;
            pointer-events: none;
        }

        .dark .history-feature-card::before {
            background: linear-gradient(135deg, rgba(74, 144, 217, 0.03) 0%, rgba(50, 125, 194, 0.01) 100%);
        }

        .history-feature-card > * {
            position: relative; /* Ensure content is above the pseudo-element */
            z-index: 1;
        }

        /* Feature Icon Container */
        .feature-icon-container {
            width: 4.5rem; /* Larger icon container */
            height: 4.5rem;
            background-color: #e0f2fe; /* Tailwind blue-100 */
            border-radius: 9999px; /* rounded-full */
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 1.5rem;
            transition: background-color 0.3s ease;
        }

        .dark .feature-icon-container {
            background-color: #1e3a8a; /* Tailwind blue-900 */
        }

        .feature-icon-container i {
            font-size: 2rem; /* Larger icon size */
            color: #2563eb; /* Tailwind blue-600 */
            transition: color 0.3s ease;
        }

        .dark .feature-icon-container i {
            color: #93c5fd; /* Tailwind blue-300 */
        }

        /* Feature Date Styling */
        .feature-date {
            font-size: 0.95rem; /* Slightly larger */
            font-weight: 700;
            color: #1d4ed8; /* Tailwind blue-700 */
            margin-bottom: 0.75rem;
            letter-spacing: 0.075em; /* More tracking */
            text-transform: uppercase;
        }

        .dark .feature-date {
            color: #93c5fd; /* Tailwind blue-300 */
        }

        /* Heading Styles */
        .history-feature-card h3 {
            font-size: 2rem; /* Larger heading */
            font-weight: 800; /* Extra bold */
            color: #1a202c; /* gray-900 */
            margin-bottom: 1rem;
            line-height: 1.3;
        }

        .dark .history-feature-card h3 {
            color: #ffffff; /* white */
        }

        /* Paragraph Styles */
        .history-feature-card p {
            font-size: 1.05rem; /* Slightly larger paragraph */
            color: #4a5568; /* gray-700 */
            line-height: 1.7;
        }

        .dark .history-feature-card p {
            color: #cbd5e0; /* gray-300 */
        }

        /* Link within paragraph */
        .history-feature-card p a {
            color: #3b82f6; /* blue-500 */
            font-weight: 600;
            text-decoration: underline;
            transition: color 0.2s ease;
        }

        .dark .history-feature-card p a {
            color: #60a5fa; /* blue-400 */
        }

        .history-feature-card p a:hover {
            color: #2563eb; /* blue-600 */
        }

        .dark .history-feature-card p a:hover {
            color: #3b82f6; /* blue-500 */
        }

/* Staff Section */
        .staff-card {
            display: flex;
            flex-direction: column;
            align-items: center;
            background-color: #ffffff; /* Tailwind white */
            border-radius: 0.75rem; /* Tailwind rounded-xl */
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* Tailwind shadow-xl */
            padding: 1.5rem; /* Tailwind p-6 */
            text-align: center;
            transform: scale(1);
            transition: all 0.3s ease-in-out;
            border: 1px solid #e2e8f0; /* Tailwind border-gray-200 */
        }

        .staff-card:hover {
            transform: scale(1.05); /* Tailwind hover:scale-105 */
        }

        .dark .staff-card {
            background-color: #2d3748; /* Tailwind gray-800 */
            border-color: #4a5568; /* Tailwind gray-700 */
        }

        .staff-card img {
            width: 7rem; /* w-28 */
            height: 7rem; /* h-28 */
            border-radius: 9999px; /* rounded-full */
            margin-left: auto;
            margin-right: auto;
            margin-bottom: 1rem; /* mb-4 */
            object-fit: cover;
        }

        .dark .staff-card img {
            border-color: #3b82f6; /* Tailwind border-blue-600 */
        }

        .staff-card h5 {
            font-size: 1.25rem; /* Tailwind text-xl */
            font-weight: 700; /* Tailwind font-bold */
            color: #1a202c; /* Tailwind gray-900 */
            margin-bottom: 0.25rem; /* mb-1 */
        }

        .dark .staff-card h5 {
            color: #ffffff; /* Tailwind white */
        }

        /* Badge Styles */
        .badge {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0.25rem 0.75rem;
            border-radius: 9999px; /* rounded-full */
            font-size: 0.75rem; /* text-xs */
            font-weight: 600; /* font-semibold */
            text-transform: uppercase;
            letter-spacing: 0.05em; /* tracking-wide */
            margin-top: 0.5rem;
            margin-bottom: 0.75rem;
        }

        .badge-manager {
            background-color: #f900ff ; 
            color: #ffffff;
        }
        .dark .badge-manager {
            background-color: #f900ff; 
        }

        .badge-lead-developer, .badge-developer {
            background-color: #9c70c7; 
            color: #ffffff;
        }
        .dark .badge-lead-developer, .dark .badge-developer {
            background-color: #9c70c7; /
        }

        .badge-admin {
            background-color: #aa0000; 
            color: #ffffff;
        }
        .dark .badge-admin {
            background-color: #aa0000; 
        }

        .badge-mod {
            background-color: #31b6ac;
            color: #ffffff;
        }
        .dark .badge-mod {
            background-color: #31b6ac; 
        }

        .badge-helper {
            background-color: #ffff55; 
            color: #000000;
        }
        .dark .badge-helper {
            background-color: #ffff55; 
        }

        /* Fallback badge for unknown roles */
        .badge:not([class*="badge-"]) {
            background-color: #6b7280; /* gray-500 */
            color: #ffffff;
        }
        .dark .badge:not([class*="badge-"]) {
            background-color: #4b5563; /* gray-600 */
        }

/* Generic styles for headings and text to match site theme */
h1, h2, h3, h4 {
    color: theme('colors.neutral.900'); /* Dark text for headings */
}
.dark h1, .dark h2, .dark h3, .dark h4 {
    color: theme('colors.neutral.200'); /* Light text for headings in dark mode */
}
p {
    color: theme('colors.neutral.700'); /* Neutral-700 for body text */
}
.dark p {
    color: theme('colors.neutral.400'); /* Neutral-400 for body text in dark mode */
}

.primary-text-color {
    color: theme('colors.primary.brand-primary'); /* Primary blue */
}
.dark .primary-text-color {
    color: theme('colors.primary.300'); /* Lighter blue for dark mode primary */
}

/* Staff Section Specific Styles */
.staff-card {
    background-color: theme('colors.neutral.50'); /* Light card background */
    border-radius: 0.75rem;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    border: 1px solid theme('colors.neutral.100');
    padding: 1.5rem;
    text-align: center;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.dark .staff-card {
    background-color: theme('colors.neutral.600'); /* Dark card background */
    border-color: theme('colors.neutral.500');
}
.staff-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 12px rgba(0, 0, 0, 0.15);
}
.staff-card img { /* Avatar styling from minotar */
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
    margin: 0 auto 0.75rem;
    border: 3px solid theme('colors.primary.brand-primary'); /* Primary blue border */
}
.dark .staff-card img {
    border-color: theme('colors.primary.300');
}
.staff-card h5 { /* Username */
    font-size: 1.125rem;
    font-weight: 700;
    margin-bottom: 0.25rem;
    color: theme('colors.neutral.900');
}
.dark .staff-card h5 {
    color: theme('colors.neutral.200');
}
.badge {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.6rem;
    border-radius: 9999px;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1;
    margin-top: 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.badge-founder { background-color: theme('colors.warning'); color: theme('colors.white'); } /* Amber-500 */
.badge-manager { background-color: theme('colors.custom-magenta'); color: theme('colors.white'); } /* Updated to custom-magenta */
.badge-lead-developer { background-color: theme('colors.custom-lilac'); color: theme('colors.white'); } /* Updated to custom-lilac */
.badge-developer { background-color: theme('colors.my-custom-purple'); color: theme('colors.white'); } /* Updated to my-custom-purple */
.badge-admin { background-color: theme('colors.custom-dark-red'); color: theme('colors.white'); } /* Updated to custom-dark-red */
.badge-mod { background-color: theme('colors.custom-teal'); color: theme('colors.white'); } /* Updated to custom-teal */
.badge-helper { background-color: theme('colors.custom-bright-yellow'); color: theme('colors.neutral.800'); } /* Updated to custom-bright-yellow and neutral-800 */

/* Pagination styles */
#pagination {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: 2rem;
}
#pagination button {
    background-color: theme('colors.primary.500');
    color: theme('colors.white');
    padding: 0.6rem 1.2rem;
    border-radius: 0.5rem;
    font-weight: 600;
    transition: background-color 0.2s ease-in-out;
}
#pagination button:hover {
    background-color: theme('colors.primary.brand-hover');
}
.dark #pagination button {
    background-color: theme('colors.primary.400');
}
.dark #pagination button:hover {
    background-color: theme('colors.primary.500');
}

/* New History/Story Section Styles (Feature Blocks) */
.history-feature-container {
    display: grid;
    grid-template-columns: 1fr; /* Single column by default */
    gap: 2rem; /* Space between feature blocks */
}
@media (min-width: 768px) { /* Medium screens and up */
    .history-feature-container {
        grid-template-columns: repeat(2, 1fr); /* Two columns */
    }
}
/* If you want 3 columns on larger screens: */
@media (min-width: 1024px) { /* Large screens and up */
    .history-feature-container {
        grid-template-columns: repeat(3, 1fr); /* Three columns */
    }
}

.history-feature-card {
    background-color: theme('colors.white'); /* Main content background for feature cards */
    border-radius: 1.5rem; /* Consistent with main content sections */
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    border: 1px solid theme('colors.neutral.200');
    padding: 2.5rem;
    text-align: center; /* Center content within the card */
    transition: all 0.3s ease;
}
.dark .history-feature-card {
    background-color: theme('colors.neutral.700');
    border-color: theme('colors.neutral.600');
}
.history-feature-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 25px -5px rgba(0, 0, 0, 0.2), 0 5px 15px -5px rgba(0, 0, 0, 0.1);
}

.feature-icon-container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 4rem; /* Size of the icon container */
    height: 4rem;
    background-color: theme('colors.primary.50'); /* Light blue background for icon */
    border-radius: 50%; /* Circular icon container */
    margin: 0 auto 1.5rem; /* Center and space below */
    transition: background-color 0.3s ease;
}
.dark .feature-icon-container {
    background-color: theme('colors.primary.500'); /* Primary blue for dark mode icon container */
}
.history-feature-card:hover .feature-icon-container {
    background-color: theme('colors.primary.100'); /* Lighter blue on hover */
}
.dark .history-feature-card:hover .feature-icon-container {
    background-color: theme('colors.primary.brand-hover'); /* Darker blue on dark mode hover */
}

.feature-icon-container .fa-solid { /* Style for FontAwesome solid icons */
    font-size: 2.5rem; /* Size of the icon */
    color: theme('colors.primary.500'); /* Primary blue for icon */
    transition: color 0.3s ease;
}
.dark .feature-icon-container .fa-solid {
    color: theme('colors.white'); /* White icon in dark mode */
}
.history-feature-card:hover .feature-icon-container .fa-solid {
    color: theme('colors.primary.500'); /* Stay blue on hover light mode */
}
.dark .history-feature-card:hover .feature-icon-container .fa-solid {
    color: theme('colors.white'); /* Stay white on hover dark mode */
}


.feature-date {
    font-size: 1rem;
    font-weight: 600;
    color: theme('colors.neutral.500'); /* Neutral-500 */
    margin-bottom: 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.dark .feature-date {
    color: theme('colors.neutral.400'); /* Neutral-400 */
}

.history-feature-card h3 {
    font-size: 1.75rem;
    font-weight: 800;
    margin-bottom: 1rem;
    color: theme('colors.neutral.900');
}
.dark .history-feature-card h3 {
    color: theme('colors.neutral.200');
}
.history-feature-card p {
    font-size: 1rem;
    line-height: 1.6;
    color: theme('colors.neutral.700');
}
.dark .history-feature-card p {
    color: theme('colors.neutral.400');
}
.history-feature-card p strong {
    color: theme('colors.primary.brand-primary');
}
.dark .history-feature-card p strong {
    color: theme('colors.primary.300');
}
.history-feature-card p a {
    color: theme('colors.primary.500');
    text-decoration: underline;
}
.dark .history-feature-card p a {
    color: theme('colors.primary.400');
}

/* Error */
.container-404 {
    /* Applied styles to match main site's .container */
    background-color: theme('colors.white');
    border-radius: 1.5rem; /* Consistent rounded corners */
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    padding: 2.5rem;
    max-width: 700px;
    width: 100%;
    box-sizing: border-box;
    border: 1px solid theme('colors.neutral.200'); /* Light border */
}
.dark .container-404 {
    background-color: theme('colors.neutral.700'); /* Darker background for dark mode */
    border-color: theme('colors.neutral.600'); /* Darker border for dark mode */
}
.error-code {
    font-size: 8rem; /* Large 404 code */
    font-weight: 900; /* Extra bold */
    line-height: 1;
    color: theme('colors.error'); /* Red-500 */
    margin-bottom: 1rem;
}
.dark .error-code {
    color: theme('colors.error'); /* Using 'error' from config for dark mode */
}
.error-message {
    font-size: 2.5rem; /* Large message text */
    font-weight: 800; /* Extra bold */
    color: theme('colors.neutral.900'); /* Dark text */
    margin-bottom: 1.5rem;
}
.dark .error-message {
    color: theme('colors.neutral.200'); /* Light text */
}
.sub-message {
    font-size: 1.125rem; /* Base message text */
    color: theme('colors.neutral.700'); /* Neutral-700 */
    margin-bottom: 2.5rem;
}
.dark .sub-message {
    color: theme('colors.neutral.400'); /* Neutral-400 */
}
.home-button {
    display: inline-block;
    padding: 0.75rem 2rem;
    background-color: theme('colors.primary.500'); /* Primary-500 */
    color: theme('colors.white');
    font-weight: 700;
    border-radius: 0.5rem;
    text-decoration: none;
    transition: background-color 0.2s ease-in-out, transform 0.2s ease-in-out;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.home-button:hover {
    background-color: theme('colors.primary.brand-hover'); /* Primary-brand-hover */
    transform: translateY(-2px);
}
.dark .home-button {
    background-color: theme('colors.primary.400'); /* Lighter blue for dark mode */
}
.dark .home-button:hover {
    background-color: theme('colors.primary.500'); /* Original blue on dark mode hover */
}


        .vote-container {
            background-color: rgba(255, 255, 255, 0.9); /* Semi-transparent background for content */
            padding: 40px;
            border-radius: 10px;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
            text-align: center;
            max-width: 800px;
            width: 90%;
            position: relative; /* Ensure it's above the background */
            z-index: 1;
        }

        .vote-container h1 {
            color: #007bff; /* Example primary color */
            margin-bottom: 20px;
            font-size: 2.5em;
        }

        .vote-container p {
            font-size: 1.1em;
            line-height: 1.6;
            margin-bottom: 30px;
        }

        .vote-links {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 20px;
            margin-top: 30px;
        }

        .vote-link-card {
            background-color: #f0f0f0;
            border: 1px solid #ddd;
            border-radius: 8px;
            padding: 25px;
            width: 280px;
            text-align: center;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
            transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
        }

        .vote-link-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 6px 15px rgba(0, 0, 0, 0.15);
        }

        .vote-link-card h3 {
            color: #0056b3;
            margin-bottom: 15px;
            font-size: 1.5em;
        }

        .vote-link-card a.button {
            display: inline-block;
            background-color: #28a745; /* Example button color */
            color: white;
            padding: 12px 25px;
            border-radius: 5px;
            text-decoration: none;
            font-weight: bold;
            transition: background-color 0.2s ease-in-out;
        }

        .vote-link-card a.button:hover {
            background-color: #218838;
        }

        .rewards {
            margin-top: 40px;
            padding: 20px;
            background-color: rgba(240, 240, 240, 0.8);
            border-radius: 8px;
        }

        .rewards h2 {
            color: #d9534f;
            margin-bottom: 20px;
            font-size: 2em;
        }

        .rewards ul {
            list-style: none;
            padding: 0;
            text-align: left;
        }

        .rewards ul li {
            margin-bottom: 10px;
            font-size: 1.05em;
            padding-left: 25px;
            position: relative;
        }

        .rewards ul li::before {
            content: '⭐'; /* Star icon for list items */
            position: absolute;
            left: 0;
        }

        /* Responsive adjustments */
        @media (max-width: 768px) {
            .vote-container {
                padding: 20px;
            }
            .vote-container h1 {
                font-size: 2em;
            }
            .vote-link-card {
                width: 100%; /* Stack cards on smaller screens */
            }
        }

        /* Loading Spinner */
        .loader {
            border: 4px solid #f3f3f3; /* Light grey */
            border-top: 4px solid #3498db; /* Blue */
            border-radius: 50%;
            width: 40px;
            height: 40px;
            animation: spin 1s linear infinite;
        }

        .dark .loader {
            border-color: #4a5568; /* Dark grey */
            border-top-color: #63b3ed; /* Light blue */
        }

        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }


        /* Donation Page */
        /* Custom CSS for dark/light mode and popup styles */

/* Light mode defaults (already handled by Tailwind, but good for explicit overrides) */
body {
    background-color: #f3f4f6; /* gray-100 */
    color: #1f2937; /* gray-900 */
}

/* Dark mode styles */
.dark body {
    background-color: #111827; /* gray-900 */
    color: #f3f4f6; /* gray-100 */
}

.dark .bg-white {
    background-color: #1f2937; /* gray-800 */
}

.dark .text-gray-900 {
    color: #f3f4f6; /* gray-100 */
}

.dark .text-gray-700 {
    color: #d1d5db; /* gray-300 */
}

.dark .text-gray-600 {
    color: #9ca3af; /* gray-400 */
}

/* Popup container styles */
.popup-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
    padding: 20px;
    box-sizing: border-box;
    display: none; /* Hidden by default, shown by JS */
}

.popup-content {
    background-color: #ffffff;
    padding: 40px;
    border-radius: 12px;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
    text-align: center;
    max-width: 500px;
    width: 100%;
    position: relative;
    color: #1f2937; /* Dark text for popup content */
}

.dark .popup-content {
    background-color: #2d3748; /* Darker background for popup in dark mode */
    color: #f3f4f6; /* Light text for popup content in dark mode */
}

.popup-content h1 {
    font-size: 2.5rem;
    font-weight: bold;
    margin-bottom: 20px;
    color: #1a202c; /* Deeper dark for headings */
}

.dark .popup-content h1 {
    color: #e2e8f0; /* Lighter for headings in dark mode */
}

.popup-content p {
    font-size: 1.125rem;
    line-height: 1.6;
    margin-bottom: 30px;
    white-space: pre-wrap; /* Preserve line breaks from markdown */
}

.popup-content .button {
    display: inline-block;
    background-color: #4c51bf; /* Indigo-700 */
    color: white;
    padding: 12px 28px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: bold;
    transition: background-color 0.3s ease;
    margin-bottom: 15px;
}

.popup-content .button:hover {
    background-color: #434190; /* Indigo-800 */
}

.popup-content .close-popup {
    background: none;
    border: none;
    color: #6b7280;
    cursor: pointer;
    font-size: 1rem;
    margin-top: 15px;
    padding: 10px 20px;
    border-radius: 8px;
    transition: color 0.3s ease, background-color 0.3s ease;
}

.popup-content .close-popup:hover {
    color: #1f2937;
    background-color: #e5e7eb;
}

.dark .popup-content .close-popup {
    color: #9ca3af;
}

.dark .popup-content .close-popup:hover {
    color: #f3f4f6;
    background-color: #374151;
}

/* Specific styling for the PayPal button */
#paypal-button-container > div {
    width: 100%; /* Ensures the PayPal iframe takes full width of its parent */
}