:root {
            --gs-primary: #1c7c54;
            /* deep green */
            --gs-primary-2: #2eb872;
            /* vibrant green */
            --gs-accent: #f0a202;
            /* warm accent */
            --gs-ink: #0b2e26;
            /* dark ink */
            --gs-sky: #e7f7ef;
            /* pale mint */
        }
        
        html,
        body {
            scroll-behavior: smooth;
        }

        .jumbotron-slider img {
            height: 90vh;
            object-fit: cover;
            width: 100%;
        }

        .carousel-caption {
            background: rgba(0, 0, 0, 0.45);
            border-radius: 12px;
            padding: 1.5rem;
        }

        /* Artistic abstract background */
        .bg-art {
            position: relative;
            background:
                radial-gradient(1200px 600px at 10% 10%, rgba(46, 184, 114, .12), transparent 60%),
                radial-gradient(900px 500px at 90% 0%, rgba(28, 124, 84, .18), transparent 60%),
                linear-gradient(180deg, #ffffff 0%, #f8fffb 100%);
        }

        .bg-art::before,
        .bg-art::after {
            content: "";
            position: absolute;
            inset: auto;
            z-index: 0;
            filter: blur(40px);
            width: 60vmin;
            height: 60vmin;
            border-radius: 50%;
            background: conic-gradient(from 180deg,
                    rgba(46, 184, 114, .35),
                    rgba(240, 162, 2, .2),
                    rgba(28, 124, 84, .35));
            opacity: .35;
        }

        .bg-art::before {
            top: -10vmin;
            left: -10vmin;
        }

        .bg-art::after {
            bottom: -10vmin;
            right: -10vmin;
        }

        /* Glass cards */
        .glass {
            background: rgba(255, 255, 255, 0.7);
            border: 1px solid rgba(255, 255, 255, 0.6);
            box-shadow: 0 10px 30px rgba(12, 51, 41, .08);
            backdrop-filter: blur(8px);
            border-radius: 18px;
        }

        /* Navbar */
        .navbar {
            --bs-navbar-color: #0b2e26;
            --bs-navbar-hover-color: var(--gs-primary);
        }

        .navbar-brand span {
            color: var(--gs-primary);
        }

        /* Hero */
        #hero {
            position: relative;
            z-index: 1;
            padding: 110px 0 80px;
            color: var(--gs-ink);
        }

        #hero .badge {
            background: linear-gradient(90deg, var(--gs-primary), var(--gs-primary-2));
        }

        .hero-figure {
            position: relative;
            isolation: isolate;
        }

        .hero-figure img {
            border-radius: 18px;
            box-shadow: 0 20px 60px rgba(28, 124, 84, .25);
        }

        .leaf-float {
            position: absolute;
            inset: auto;
            width: 72px;
            height: 72px;
            right: -18px;
            bottom: -18px;
            background:
                radial-gradient(circle at 30% 30%, #fff 0, #fff 35%, rgba(255, 255, 255, 0) 36%),
                linear-gradient(145deg, var(--gs-primary-2), var(--gs-primary));
            border-radius: 16px 50% 50% 50%;
            transform: rotate(-12deg);
            box-shadow: 0 12px 24px rgba(0, 0, 0, .12);
        }

        /* Section headings */
        .section-title {
            font-weight: 800;
            letter-spacing: .2px;
        }

        .section-sub {
            color: #335b52;
        }

        /* Stats */
        .stat {
            text-align: center;
        }

        .stat h3 {
            font-size: 2.25rem;
            font-weight: 800;
            color: var(--gs-primary);
        }

        .stat p {
            margin: 0;
            color: #335b52;
        }

        /* Program card icons */
        .icon-circle {
            width: 56px;
            height: 56px;
            display: grid;
            place-items: center;
            border-radius: 50%;
            background: var(--gs-sky);
            color: var(--gs-primary);
        }

        /* Project slide */
        .project-card {
            border-radius: 16px;
            overflow: hidden;
            box-shadow: 0 14px 30px rgba(11, 46, 38, .12);
        }

        .project-card img {
            object-fit: cover;
            height: 240px;
            width: 100%;
        }

        /* Masonry gallery */
        .masonry {
            columns: 1;
            column-gap: 1rem;
        }

        .masonry>figure {
            break-inside: avoid;
            margin: 0 0 1rem;
            border-radius: 14px;
            overflow: hidden;
            box-shadow: 0 8px 22px rgba(0, 0, 0, .08);
        }

        .masonry img {
            width: 100%;
            height: auto;
            display: block;
        }

        @media (min-width:768px) {
            .masonry {
                columns: 2;
            }
        }

        @media (min-width:1200px) {
            .masonry {
                columns: 3;
            }
        }

        /* CTA */
        .cta {
            background: linear-gradient(120deg, var(--gs-primary), var(--gs-primary-2));
            color: #fff;
            border-radius: 18px;
        }

        /* Footer */
        footer {
            background: #0f1f1b;
            color: #cfeee2;
        }

        footer a {
            color: #b7f1d6;
            text-decoration: none;
        }

        footer a:hover {
            color: #fff;
        }

        .btn-gradient {
            background: linear-gradient(90deg, var(--gs-primary), var(--gs-primary-2));
            border: none;
            color: #fff;
        }

        .btn-gradient:hover {
            opacity: .9;
            color: #fff;
        }
