        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        :root {
            --primary-green: #1a3d3d;
            --accent-orange: #e17654;
            --light-bg: #f8f9fa;
            --dark-text: #2c3e50;
            --light-text: #6c757d;
            --gold: #d4af37;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
            line-height: 1.6;
            color: var(--dark-text);
            overflow-x: hidden;
        }

        /* Header */
        header {
            background: white;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
            position: sticky;
            top: 0;
            z-index: 100;
        }

        nav {
            max-width: 1200px;
            margin: 0 auto;
            padding: 1rem 2rem;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .logo {

            font-size: 1.5rem;
            font-weight: bold;
            color: var(--primary-green);
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .logo-icon {
            width: 32px;
            height: 32px;
        }

        .nav-links {
            display: flex;
            gap: 2rem;
            list-style: none;
        }

        .nav-links a {
            text-decoration: none;
            color: var(--dark-text);
            font-weight: 500;
            transition: color 0.3s;
        }

        .nav-links a:hover {
            color: var(--accent-orange);
        }

        /* Hero Section with Grain Background */
        .hero {
            background: linear-gradient(135deg, var(--primary-green) 0%, #2d5555 100%);
            color: white;
            padding: 6rem 2rem 4rem;
            text-align: center;
            position: relative;
            overflow: hidden;
        }

        .hero::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"><ellipse cx="30" cy="30" rx="8" ry="12" fill="%23ffffff" opacity="0.03"/><ellipse cx="70" cy="50" rx="7" ry="11" fill="%23ffffff" opacity="0.03"/><ellipse cx="120" cy="35" rx="9" ry="13" fill="%23ffffff" opacity="0.03"/><ellipse cx="160" cy="60" rx="8" ry="12" fill="%23ffffff" opacity="0.03"/><ellipse cx="50" cy="90" rx="7" ry="10" fill="%23ffffff" opacity="0.03"/><ellipse cx="100" cy="80" rx="8" ry="12" fill="%23ffffff" opacity="0.03"/><ellipse cx="150" cy="95" rx="9" ry="11" fill="%23ffffff" opacity="0.03"/><ellipse cx="35" cy="130" rx="8" ry="13" fill="%23ffffff" opacity="0.03"/><ellipse cx="85" cy="120" rx="7" ry="11" fill="%23ffffff" opacity="0.03"/><ellipse cx="135" cy="135" rx="8" ry="12" fill="%23ffffff" opacity="0.03"/><ellipse cx="175" cy="125" rx="9" ry="13" fill="%23ffffff" opacity="0.03"/><ellipse cx="60" cy="165" rx="8" ry="11" fill="%23ffffff" opacity="0.03"/><ellipse cx="110" cy="155" rx="7" ry="12" fill="%23ffffff" opacity="0.03"/><ellipse cx="160" cy="170" rx="9" ry="13" fill="%23ffffff" opacity="0.03"/></svg>');
            background-size: 200px 200px;
            opacity: 0.4;
        }

        .hero-content {
            position: relative;
            z-index: 1;
        }

        .hero h1 {
            font-size: 3rem;
            margin-bottom: 1rem;
            max-width: 800px;
            margin-left: auto;
            margin-right: auto;
        }

        .hero p {
            font-size: 1.25rem;
            max-width: 700px;
            margin: 0 auto 2rem;
            opacity: 0.95;
        }

        .hero-stats {
            display: flex;
            justify-content: center;
            gap: 3rem;
            margin-top: 3rem;
            flex-wrap: wrap;
        }

        .stat {
            text-align: center;
        }

        .stat-number {
            font-size: 2.5rem;
            font-weight: bold;
            color: var(--accent-orange);
        }

        .stat-label {
            font-size: 0.9rem;
            opacity: 0.9;
        }

        .cta-button {
            display: inline-block;
            background: white;
            color: var(--accent-orange);
            padding: 1rem 2rem;
            border-radius: 5px;
            text-decoration: none;
            font-weight: 600;
            margin-top: 1rem;
            transition: transform 0.3s, box-shadow 0.3s;
        }

        .cta-button:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 12px white;
        }

        /* Section Styles */
        section {
            max-width: 1200px;
            margin: 0 auto;
            padding: 5rem 2rem;
        }

        h2 {
            font-size: 2.5rem;
            margin-bottom: 1rem;
            color: var(--primary-green);
            text-align: center;
        }

        .section-subtitle {
            font-size: 1.1rem;
            color: var(--light-text);
            margin-bottom: 3rem;
            text-align: center;
            max-width: 800px;
            margin-left: auto;
            margin-right: auto;
        }

        /* Problem Section - Reimagined */
        #problem {
            position: relative;
        }

        .problem-intro {
            text-align: center;
            max-width: 700px;
            margin: 0 auto 4rem;
            font-size: 1.15rem;
            line-height: 1.8;
        }

        .problem-main {
            background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
            padding: 3rem;
            border-radius: 12px;
            border-left: 6px solid var(--accent-orange);
            margin-bottom: 3rem;
            box-shadow: 0 4px 12px rgba(0,0,0,0.08);
        }

        .problem-main h3 {
            color: var(--primary-green);
            font-size: 1.8rem;
            margin-bottom: 1rem;
            display: flex;
            align-items: center;
            gap: 1rem;
        }

        .problem-main-icon {
            width: 48px;
            height: 48px;
        }

        .problem-secondary {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: 2rem;
            margin-top: 3rem;
        }

        .problem-card {
            background: white;
            padding: 2rem;
            border-radius: 8px;
            box-shadow: 0 2px 8px rgba(0,0,0,0.1);
            border-top: 3px solid var(--accent-orange);
            transition: transform 0.3s, box-shadow 0.3s;
        }

        .problem-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 6px 20px rgba(0,0,0,0.15);
        }

        .problem-card h4 {
            color: var(--primary-green);
            margin-bottom: 0.75rem;
            font-size: 1.2rem;
            display: flex;
            align-items: center;
            gap: 0.75rem;
        }

        .problem-icon {
            width: 32px;
            height: 32px;
            flex-shrink: 0;
        }

        /* Solution Section with Pipes Background */
        .solution {
            background: var(--light-bg);
            position: relative;
            overflow: hidden;
        }

        .solution::before {
            content: '';
            position: absolute;
            top: 0;
            right: 0;
            width: 300px;
            height: 100%;
            background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 200"><line x1="20" y1="0" x2="20" y2="60" stroke="%231a3d3d" stroke-width="4" opacity="0.1"/><line x1="20" y1="60" x2="80" y2="60" stroke="%231a3d3d" stroke-width="4" opacity="0.1"/><line x1="80" y1="60" x2="80" y2="120" stroke="%231a3d3d" stroke-width="4" opacity="0.1"/><circle cx="20" cy="60" r="6" fill="%23e17654" opacity="0.2"/><circle cx="80" cy="60" r="6" fill="%23e17654" opacity="0.2"/></svg>');
            background-repeat: repeat-y;
            opacity: 0.5;
        }

        .solution-features {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 2rem;
            margin-top: 2rem;
            position: relative;
            z-index: 1;
        }

        .feature {
            text-align: center;
            padding: 2rem;
            background: white;
            border-radius: 8px;
            box-shadow: 0 2px 8px rgba(0,0,0,0.08);
            transition: transform 0.3s;
        }

        .feature:hover {
            transform: translateY(-4px);
        }

        .feature-icon {
            width: 64px;
            height: 64px;
            margin: 0 auto 1rem;
        }

        .feature h3 {
            margin-bottom: 0.5rem;
            color: var(--primary-green);
        }

        /* Timeline */
        .timeline {
            position: relative;
            padding-left: 2rem;
            margin-top: 2rem;
            --timeline-progress-gradient: var(--accent-orange); 
        }

        .timeline::before {
            content: '';
            position: absolute;
            left: 0;
            top: 0;
            bottom: 0;
            width: 3px;
            z-index: 1;
            background: var(--timeline-progress-gradient); 
        }

        .milestone {
            margin-bottom: 2rem;
            position: relative;
        }

        .milestone::before {
            /* Dot styling */
            content: '';
            position: absolute;
            left: -2.5rem;
            top: 0.5rem;
            width: 12px;
            height: 12px;
            border-radius: 50%;
            background: var(--accent-orange); 
            border: 3px solid white;
            box-shadow: 0 0 0 2px var(--accent-orange);
            z-index: 2; 
        }
        
        .milestone h4 {
            color: var(--primary-green);
            margin-bottom: 0.25rem;
        }

        .milestone-date {
            font-size: 0.9rem;
            color: var(--light-text);
            font-weight: 600;
        }

        /* Team Section */
        .team-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 2rem;
            margin-top: 2rem;
        }

        .team-member {
            text-align: center;
        }

        .team-photo {
            width: 150px;
            height: 150px;
            border-radius: 50%;
            background: var(--light-bg);
            margin: 0 auto 1rem;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 3rem;
            color: var(--primary-green);
            border: 4px solid var(--accent-orange);
        }

        .team-photo img {
            /* Ensures the image fills the entire 150px x 150px circle */
            width: 100%;
            height: 100%;
            
            /* Crucial: Apply border-radius to the image so it doesn't spill out */
            border-radius: 50%;
            
            /* MODIFIED: Scales the entire image down until it fully fits inside the circle.
            It will show a small gap (the background color) if the photo is not square. */
            object-fit: cover; 
        }

        .team-member h4 {
            color: var(--primary-green);
            margin-bottom: 0.25rem;
        }

        .team-member .role {
            color: var(--accent-orange);
            font-weight: 600;
            font-size: 0.9rem;
        }

        .team-member .bio {
            font-size: 0.9rem;
            color: var(--light-text);
            margin-top: 0.5rem;
        }

        /* Contact Section */
        .contact {
            background: var(--primary-green);
            color: white;
            text-align: center;

            justify-content: center; /* 2. Centers content horizontally (main axis) */
            align-items: center;
        }

        .contact h2 {
            color: white;
        }

        .contact-info {
            display: flex;
            justify-content: center;
            gap: 3rem;
            margin-top: 2rem;
            flex-wrap: wrap;
        }

        .contact-item {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .contact-item a {
            color: white;
            text-decoration: none;
        }

        /* Beer Glass Footer */
        .beer-footer {
            /* Set the GIF as the background image spanning full width */
            background-image: url('../images/gif/beer.gif');
            background-color: var(--primary-green);
            
            /* Ensure GIF scales to 100% width and aligns to the bottom */
            background-size: auto auto; 
            background-repeat: no-repeat;
            background-position: center bottom; 
            
            /* Use padding to give the section height and breathing room */
            padding: 6rem 2rem 4rem; 
            
            position: relative;
            overflow: hidden;
            color: white; /* Default text color for the footer */

            display: grid; /* 1. Activates Grid */
            place-items: center;
        }

        /* Ensure the gold line remains at the top */
        .beer-footer::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: var(--gold);
        }

        /* Center all content within the footer */
        .beer-footer-content-wrapper {
            max-width: 1200px;
            margin: 0 auto;
            text-align: center; /* Center all text content */
            display: flex;
            flex-direction: column;
            place-items: center center;/* Center items horizontally */
            gap: 2rem; /* Spacing between main content blocks */
        }

        /* Styling the main callout section */
        .contact-callout h2 {
            font-size: 3rem;
            color: white;
            margin-bottom: 0.5rem;
        }

        .contact-callout .section-subtitle {
            max-width: 700px;
            margin: 0 auto 2rem;
            font-size: 1.1rem;
            opacity: 0.2;
        }

        .contact-info {
            display: flex;
            justify-content: center;
            gap: 2rem;
            font-size: 1.1rem;
        }

        .contact-item {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .contact-item a {
            color: white;
            text-decoration: none;
            transition: color 0.3s;
        }

        .contact-item a:hover {
            color: var(--accent-orange);
        }

        /* Styling the final message section */
        .footer-message h3 {
            font-size: 1.5rem;
            color: var(--accent-orange);
            margin-bottom: 0.5rem;
        }

        .footer-message p {
            font-size: 1rem;
            opacity: 0.8;
        }

        .footer-stats {
            font-size: 0.9rem;
            opacity: 0.6;
            margin-top: 1rem;
        }



        @keyframes bubble {
            0% {
                transform: translateY(0) scale(1);
                opacity: 0.6;
            }
            50% {
                opacity: 0.8;
            }
            100% {
                transform: translateY(-80px) scale(0.3);
                opacity: 0;
            }
        }

        /* Footer */
        footer {
            background: #0a1515;
            color: white;
            text-align: center;
            padding: 2rem;
        }

        .university-badge {
            display: inline-block;
            background: white;
            color: var(--primary-green);
            padding: 0.5rem 1rem;
            border-radius: 5px;
            font-weight: 600;
            margin-top: 1rem;
        }

        /* Responsive */
        @media (max-width: 768px) {
            .hero h1 {
                font-size: 2rem;
            }

            .nav-links {
                display: none;
            }

            section {
                padding: 3rem 1rem;
            }

            .problem-main {
                padding: 2rem 1.5rem;
            }
        }