        :root {
            --primary-green: #2B6346;
            --sky-blue: #DDECF5;
            --cream: #EEF3F6;
            --house-yellow: #ECAC34;
            --house-gold: #F4C65D;
            --dark-blue: #163E53;
            --festival-coral: #F45D48;
            --festival-teal: #149C95;
            --festival-orange: #FF7A1A;
            --night-ink: #102434;
            --text: #2f2f2f;
        }

        * {
            box-sizing: border-box;
        }

        body {
            margin: 0;
            font-family: "Source Sans 3", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
            line-height: 1.6;
            color: var(--text);
            background:
                radial-gradient(1200px 600px at 8% -10%, rgba(20, 156, 149, 0.12), transparent 55%),
                radial-gradient(900px 500px at 90% 0%, rgba(255, 122, 26, 0.1), transparent 50%),
                linear-gradient(180deg, #f4f8fb 0%, #eaf1f6 100%);
        }

        h1, h2, h3, .pill, .btn, .top-nav a {
            font-family: "Outfit", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
            letter-spacing: 0.01em;
        }

        a {
            color: inherit;
        }

        .social-icon {
            display: inline-block;
            width: 1em;
            text-align: center;
            margin-right: 0.35em;
            color: inherit;
        }

        .hero {
            background:
                linear-gradient(126deg, rgba(16, 36, 52, 0.9), rgba(22, 62, 83, 0.82), rgba(20, 156, 149, 0.45), rgba(244, 93, 72, 0.45)),
                url("../media/simonbackground.jpg") center/cover;
            color: white;
            padding: 5rem 1.25rem 4rem;
            text-align: center;
            border-bottom: 4px solid rgba(255, 122, 26, 0.6);
        }

        .hero-inner {
            max-width: 900px;
            margin: 0 auto;
        }

        .eyebrow {
            display: inline-block;
            background: rgba(255,255,255,0.16);
            border: 1px solid rgba(255,255,255,0.3);
            padding: 0.4rem 0.8rem;
            border-radius: 999px;
            font-size: 0.9rem;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            margin-bottom: 1rem;
        }

        h1 {
            margin: 0 0 1rem;
            font-size: clamp(2.2rem, 4.3vw, 3.6rem);
            line-height: 1.1;
        }

        .hero p {
            font-size: 1.08rem;
            max-width: 720px;
            margin: 0 auto 1.5rem;
        }

        .hero-urgency {
            margin: 0.25rem auto 1.35rem;
            max-width: 680px;
            background: rgba(255, 255, 255, 0.15);
            border: 1px solid rgba(255,255,255,0.32);
            border-radius: 12px;
            padding: 0.6rem 0.85rem;
            font-weight: 700;
            font-size: 0.98rem;
        }

        .hero-meta {
            display: flex;
            justify-content: center;
            flex-wrap: wrap;
            gap: 0.75rem;
            margin-bottom: 1.5rem;
        }

        .pill {
            background: rgba(255,255,255,0.16);
            padding: 0.6rem 0.95rem;
            border-radius: 999px;
            border: 1px solid rgba(255,255,255,0.35);
            box-shadow: inset 0 0 0 1px rgba(244, 93, 72, 0.25);
            font-weight: 600;
        }

        .hero-actions {
            display: flex;
            justify-content: center;
            flex-wrap: wrap;
            gap: 1rem;
        }

        .hero-note-link {
            display: inline-block;
            margin-top: 0.55rem;
            color: white;
            font-weight: 700;
            text-decoration: underline;
            text-underline-offset: 0.15em;
        }

        .trust-strip {
            margin: 1.6rem auto 0;
            max-width: 900px;
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 0.7rem;
        }

        .trust-item {
            background: linear-gradient(135deg, rgba(255,255,255,0.18), rgba(255,255,255,0.08));
            border: 1px solid rgba(255,255,255,0.3);
            border-radius: 12px;
            padding: 0.75rem;
            font-size: 0.95rem;
            backdrop-filter: blur(4px);
        }

        .trust-item strong {
            display: block;
            font-size: 1.05rem;
            line-height: 1.2;
            margin-bottom: 0.2rem;
        }

        .hero-link {
            display: inline-block;
            margin-top: 0.5rem;
            color: white;
            text-decoration: none;
            font-weight: 700;
        }

        .hero-link:hover {
            text-decoration: underline;
        }

        .btn {
            display: inline-block;
            text-decoration: none;
            padding: 0.9rem 1.25rem;
            border-radius: 999px;
            font-weight: 700;
        }

        .btn-primary {
            background: linear-gradient(135deg, var(--house-yellow), var(--festival-orange), var(--festival-coral));
            color: #0f2736;
            box-shadow: 0 12px 26px rgba(244, 93, 72, 0.35);
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }

        .btn-primary:hover,
        .btn-primary:focus {
            transform: translateY(-1px);
            box-shadow: 0 18px 30px rgba(244, 93, 72, 0.42);
        }

        .btn-secondary {
            background: rgba(255,255,255,0.94);
            color: var(--night-ink);
            border: 1px solid rgba(16, 36, 52, 0.14);
            box-shadow: 0 6px 14px rgba(16, 36, 52, 0.08);
        }

        .btn-secondary:hover,
        .btn-secondary:focus {
            background: #fff;
            border-color: rgba(244, 93, 72, 0.35);
        }

        .content {
            max-width: 1000px;
            margin: 0 auto;
            padding: 2.5rem 1.25rem 4rem;
        }

        .section {
            background: linear-gradient(180deg, #ffffff 0%, #f8fbfd 100%);
            border-radius: 18px;
            padding: 2rem;
            border: 1px solid rgba(16, 36, 52, 0.06);
            box-shadow: 0 12px 28px rgba(16, 36, 52, 0.08);
            margin-bottom: 1.25rem;
        }

        .content .section:nth-of-type(even):not(#performer):not(.intro) {
            background: linear-gradient(180deg, #fbfdff 0%, #f2f7fb 100%);
        }

        .section-intro {
            font-size: 1.05rem;
            color: rgba(47,47,47,0.85);
            max-width: 760px;
            margin-top: 0;
        }

        .section h2 {
            color: var(--primary-green);
            margin-top: 0;
            margin-bottom: 0.75rem;
            font-size: 1.65rem;
        }

        #features {
            background: linear-gradient(180deg, #fbfdff, #eef5fb);
        }

        #performer {
            background: linear-gradient(150deg, #fff6f0 0%, #fffaf5 55%, #f3fbf9 100%);
            border: 1px solid rgba(244, 93, 72, 0.24);
        }

        #performer h2 {
            color: var(--festival-coral);
        }

        .music-spotlight {
            margin: 1rem 0 1.2rem;
            padding: 1rem 1.1rem;
            border-radius: 16px;
            background:
                linear-gradient(135deg, rgba(244, 93, 72, 0.16), rgba(255, 122, 26, 0.12)),
                #fff;
            border: 1px solid rgba(244, 93, 72, 0.22);
            box-shadow: 0 14px 28px rgba(16, 36, 52, 0.08);
        }

        .music-spotlight-kicker {
            margin: 0 0 0.5rem;
            font-size: 0.82rem;
            font-weight: 800;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: var(--festival-coral);
        }

        .music-spotlight p {
            margin: 0 0 0.85rem;
            font-size: 1.03rem;
            color: rgba(16, 36, 52, 0.92);
            max-width: 76ch;
        }

        .music-chips {
            display: flex;
            flex-wrap: wrap;
            gap: 0.55rem;
        }

        .music-chip {
            display: inline-flex;
            align-items: center;
            gap: 0.45rem;
            padding: 0.45rem 0.7rem;
            border-radius: 999px;
            background: rgba(255, 255, 255, 0.88);
            border: 1px solid rgba(16, 36, 52, 0.12);
            color: var(--night-ink);
            font-weight: 700;
            font-size: 0.9rem;
            text-decoration: none;
        }

        .music-chip:hover,
        .music-chip:focus {
            border-color: rgba(244, 93, 72, 0.38);
            box-shadow: 0 8px 16px rgba(16, 36, 52, 0.08);
            transform: translateY(-1px);
        }

        .section p, .section li {
            font-size: 1rem;
        }

        .intro {
            background: var(--sky-blue);
        }

        .grid {
            display: grid;
            gap: 1rem;
        }

        .two-col {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .card {
            background: var(--cream);
            border: 1px solid rgba(43, 99, 70, 0.12);
            border-radius: 14px;
            padding: 1rem 1.1rem;
        }

        .card h3 {
            margin-top: 0;
            color: var(--dark-blue);
            margin-bottom: 0.5rem;
        }

        .activity-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 1rem;
            margin-top: 1.1rem;
        }

        .activity-card {
            background: linear-gradient(180deg, #ffffff 0%, #f5fbf9 100%);
            border: 1px solid rgba(43, 99, 70, 0.14);
            border-radius: 16px;
            padding: 1rem 1rem 0.9rem;
            box-shadow: 0 10px 20px rgba(16, 36, 52, 0.05);
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            min-height: 150px;
        }

        .activity-card.featured {
            background: linear-gradient(135deg, rgba(244, 93, 72, 0.12), rgba(255, 198, 79, 0.12), rgba(255,255,255,0.92));
            border-color: rgba(244, 93, 72, 0.24);
            box-shadow: 0 12px 22px rgba(244, 93, 72, 0.1);
        }

        .activity-icon {
            display: inline-flex;
            justify-content: center;
            align-items: center;
            width: 52px;
            height: 52px;
            border-radius: 50%;
            background: rgba(20, 156, 149, 0.12);
            font-size: 1.7rem;
            margin-bottom: 0.7rem;
        }

        .activity-card.featured .activity-icon {
            background: rgba(244, 93, 72, 0.14);
        }

        .activity-card h3 {
            margin: 0 0 0.35rem;
            color: var(--dark-blue);
            font-size: 1.05rem;
        }

        .activity-card p {
            margin: 0;
            color: rgba(16, 36, 52, 0.8);
        }

        .kids-closing {
            margin-top: 1rem;
            margin-bottom: 0;
            font-weight: 700;
            color: var(--dark-blue);
        }

        .highlight {
            background: linear-gradient(135deg, #f6fbff, #eef6fd);
            border-left: 4px solid var(--festival-coral);
            padding: 1rem 1.2rem;
            border-radius: 12px;
            margin: 1rem 0;
        }

        .fundraiser-progress {
            margin: 1rem 0 1.2rem;
            padding: 1rem 1.1rem 1.1rem;
            background: linear-gradient(135deg, #fffdfb, #f5faf8);
            border: 1px solid rgba(16, 36, 52, 0.12);
            border-radius: 18px;
            box-shadow: 0 12px 22px rgba(16, 36, 52, 0.08);
        }

        .fundraiser-progress-header {
            display: flex;
            justify-content: space-between;
            align-items: baseline;
            gap: 1rem;
            flex-wrap: wrap;
            margin-bottom: 0.7rem;
        }

        .fundraiser-progress-header strong {
            font-size: 0.96rem;
            color: var(--dark-blue);
            letter-spacing: 0.04em;
            text-transform: uppercase;
        }

        .fundraiser-progress .amount {
            font-weight: 800;
            color: var(--primary-green);
            font-size: 1.04rem;
        }

        .progress-rail {
            width: 100%;
            height: 26px;
            background: rgba(22, 62, 83, 0.08);
            border-radius: 999px;
            overflow: hidden;
            border: 1px solid rgba(22, 62, 83, 0.12);
            position: relative;
            box-shadow: inset 0 2px 6px rgba(16, 36, 52, 0.08);
        }

        .progress-rail::before {
            content: "";
            position: absolute;
            inset: 0;
            background: repeating-linear-gradient(
                to right,
                transparent 0,
                transparent 18px,
                rgba(17, 17, 17, 0.08) 18px,
                rgba(17, 17, 17, 0.08) 19px,
                transparent 19px,
                transparent 36px
            );
            pointer-events: none;
        }

        .progress-fill {
            height: 100%;
            width: 26%;
            min-width: 12px;
            border-radius: inherit;
            background: linear-gradient(90deg, #ef4e4a 0%, #f3a65d 48%, #1ea5a1 100%);
            box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18);
        }

        .disc-golf-box {
            background: linear-gradient(135deg, #f5fbf7, #eef8f1);
            border: 1px solid rgba(20, 156, 149, 0.32);
            border-radius: 14px;
            padding: 1.2rem;
            margin-top: 1rem;
        }

        .disc-golf-box h3 {
            margin-top: 0;
            color: var(--primary-green);
            margin-bottom: 0.6rem;
        }

        .disc-golf-box p,
        .disc-golf-box li {
            margin: 0 0 0.6rem;
        }

        .disc-golf-box strong {
            color: var(--dark-blue);
        }

        .disc-golf-photo {
            margin: 0.9rem 0 0.8rem;
            border: 1px solid rgba(20, 156, 149, 0.25);
            border-radius: 14px;
            overflow: hidden;
            background: #fff;
            box-shadow: 0 10px 20px rgba(16, 36, 52, 0.1);
        }

        .disc-golf-photo .photo-link {
            display: block;
        }

        .disc-golf-photo img {
            width: 100%;
            height: auto;
            display: block;
            max-height: 460px;
            object-fit: cover;
        }

        .disc-golf-photo figcaption {
            padding: 0.65rem 0.85rem;
            font-size: 0.92rem;
            color: rgba(16, 36, 52, 0.82);
            background: linear-gradient(180deg, #ffffff 0%, #f6fbff 100%);
        }

        .sponsor-note {
            font-size: 0.95rem;
            color: rgba(47,47,47,0.6);
            margin-top: 0.6rem;
            font-style: italic;
        }

        .quote {
            font-size: 1.15rem;
            font-weight: 600;
            color: var(--festival-coral);
        }

        .glance-grid {
            display: grid;
            gap: 1rem;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
            margin-top: 1rem;
        }

        .quick-jumps {
            margin-top: 1rem;
            display: flex;
            flex-wrap: wrap;
            gap: 0.5rem;
        }

        .quick-jumps a {
            text-decoration: none;
            font-weight: 700;
            background: rgba(22, 62, 83, 0.08);
            border: 1px solid rgba(22, 62, 83, 0.12);
            color: var(--dark-blue);
            border-radius: 999px;
            padding: 0.42rem 0.75rem;
            font-size: 0.92rem;
        }

        .quick-jumps a:hover,
        .quick-jumps a:focus {
            background: rgba(244, 93, 72, 0.12);
            border-color: rgba(244, 93, 72, 0.35);
        }

        .glance-card {
            background: linear-gradient(180deg, #ffffff 0%, #f4f9fd 100%);
            border: 1px solid rgba(16, 36, 52, 0.14);
            border-radius: 16px;
            padding: 1.1rem 1.2rem;
            box-shadow: 0 10px 24px rgba(16, 36, 52, 0.09);
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }

        .glance-card:hover,
        .glance-card:focus-within {
            transform: translateY(-3px);
            box-shadow: 0 16px 30px rgba(16, 36, 52, 0.14);
            border-color: rgba(244, 93, 72, 0.35);
        }

        .glance-card strong {
            display: block;
            margin-bottom: 0.45rem;
            color: var(--dark-blue);
        }

        .featured-poster {
            width: 100%;
            max-width: 760px;
            margin: 1rem auto 0;
            border-radius: 18px;
            overflow: hidden;
            box-shadow: 0 10px 30px rgba(0,0,0,0.12);
        }

        .featured-poster img {
            width: 100%;
            height: auto;
            display: block;
        }

        .photo-row {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
            gap: 1rem;
            margin-top: 1rem;
        }

        .photo-card {
            background: var(--cream);
            border: 1px solid rgba(43, 99, 70, 0.12);
            border-radius: 14px;
            overflow: hidden;
        }

        #performer .photo-card {
            border-color: rgba(244, 93, 72, 0.26);
            box-shadow: 0 8px 18px rgba(244, 93, 72, 0.1);
        }

        .photo-card a {
            display: block;
            color: inherit;
            text-decoration: none;
        }

        .photo-card img {
            width: 100%;
            height: 220px;
            object-fit: cover;
            display: block;
            transition: transform 0.25s ease;
            cursor: zoom-in;
        }

        .jaggernauts-photo-card img {
            height: 280px;
            object-position: center 20%;
        }

        .photo-card:hover img,
        .photo-card:focus-within img {
            transform: scale(1.03);
        }

        .photo-card p {
            margin: 0.75rem;
            font-size: 0.95rem;
        }

        .park-photo-grid {
            margin-top: 1.3rem;
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 1rem;
        }

        .park-photo-grid figure {
            margin: 0;
        }

        .park-photo-grid .photo-card {
            background: #fff;
        }

        .park-photo-grid .photo-card img {
            height: 320px;
            object-fit: cover;
        }

        .photo-caption {
            margin: 0;
            padding: 0.65rem 0.8rem 0.75rem;
            font-size: 0.92rem;
            color: rgba(16, 36, 52, 0.82);
            background: linear-gradient(180deg, #ffffff 0%, #f6fbff 100%);
        }

        .modal-overlay {
            position: fixed;
            inset: 0;
            display: none;
            align-items: center;
            justify-content: center;
            background: rgba(0, 0, 0, 0.75);
            padding: 1.5rem;
            z-index: 100;
        }

        .modal-overlay.open {
            display: flex;
        }

        .modal-content {
            position: relative;
            max-width: 95vw;
            max-height: 95vh;
            width: auto;
            background: white;
            border-radius: 18px;
            overflow: hidden;
            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
        }

        .modal-content img {
            width: auto;
            max-width: 100%;
            max-height: calc(95vh - 3rem);
            display: block;
            margin: 0 auto;
        }

        .modal-close {
            position: absolute;
            top: 0.75rem;
            right: 0.75rem;
            width: 2.4rem;
            height: 2.4rem;
            border: 0;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.95);
            color: var(--dark-blue);
            font-size: 1.1rem;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }

        .modal-caption {
            padding: 0.85rem 1rem 1rem;
            font-size: 0.95rem;
            color: var(--text);
            background: #faf9f5;
        }

        .help-list {
            display: grid;
            gap: 0.85rem;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            margin-top: 1rem;
        }

        .help-item {
            background: var(--cream);
            border-radius: 12px;
            padding: 1rem;
        }

        .help-item strong {
            display: block;
            color: var(--primary-green);
            margin-bottom: 0.3rem;
        }

        .timeline {
            margin-top: 1rem;
            display: grid;
            gap: 0.8rem;
        }

        .schedule-layout {
            margin-top: 1rem;
            display: grid;
            grid-template-columns: 1.55fr 1fr;
            gap: 1rem;
            align-items: start;
        }

        .timeline-item {
            display: grid;
            grid-template-columns: 120px 1fr;
            gap: 0.85rem;
            align-items: start;
            background: #fff;
            border: 1px solid rgba(22, 62, 83, 0.12);
            border-left: 4px solid var(--festival-teal);
            border-radius: 12px;
            padding: 0.7rem 0.8rem;
        }

        .timeline-time {
            font-weight: 800;
            color: var(--dark-blue);
        }

        .timeline-content strong {
            color: var(--primary-green);
            display: block;
            line-height: 1.2;
        }

        .disc-golf-subschedule {
            background: linear-gradient(145deg, #ffffff 0%, #f2f8fc 100%);
            border: 1px solid rgba(16, 36, 52, 0.12);
            border-left: 4px solid var(--festival-teal);
            border-radius: 12px;
            padding: 0.9rem 1rem;
        }

        .disc-golf-subschedule h3 {
            margin: 0 0 0.55rem;
            color: var(--dark-blue);
            font-size: 1.05rem;
        }

        .disc-golf-subschedule p {
            margin: 0 0 0.65rem;
            font-size: 0.95rem;
        }

        .disc-golf-subschedule ul {
            margin: 0;
            padding-left: 1.1rem;
        }

        .disc-golf-subschedule li {
            margin-bottom: 0.45rem;
            font-size: 0.95rem;
        }

        .logistics-grid {
            margin-top: 1rem;
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 1rem;
        }

        .checklist {
            margin: 0;
            padding-left: 1.1rem;
        }

        .checklist li {
            margin-bottom: 0.35rem;
        }

        .contact-panel {
            background: linear-gradient(145deg, #ffffff 0%, #f2f8fc 100%);
            border: 1px solid rgba(16, 36, 52, 0.12);
            border-radius: 14px;
            padding: 1rem;
            margin-top: 1rem;
        }

        #food-trucks {
            background: linear-gradient(140deg, #fff7ef 0%, #fffdf8 65%, #f6fcff 100%);
            border: 1px solid rgba(255, 122, 26, 0.22);
        }

        #food-trucks h2 {
            color: var(--festival-orange);
        }

        .food-truck-alert {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            margin: 0 0 0.8rem;
            padding: 0.35rem 0.7rem;
            background: rgba(255, 122, 26, 0.12);
            border: 1px solid rgba(255, 122, 26, 0.28);
            border-radius: 999px;
            font-weight: 700;
            color: #8a3b08;
        }

        .food-truck-feature {
            margin-top: 0.8rem;
            border: 1px solid rgba(255, 122, 26, 0.3);
            border-left: 5px solid var(--festival-orange);
            border-radius: 14px;
            background: rgba(255, 255, 255, 0.88);
            padding: 0.9rem 1rem;
        }

        .food-truck-feature h3 {
            margin: 0 0 0.4rem;
            color: var(--night-ink);
        }

        .food-truck-feature-photo {
            margin: 0.9rem 0 0;
        }

        .food-truck-gallery .photo-card,
        .food-truck-feature-photo {
            background: #fff;
        }

        .food-truck-gallery .photo-card img,
        .food-truck-feature-photo img {
            height: 270px;
            object-fit: cover;
        }

        #sponsor > p {
            margin-bottom: 0.9rem;
            max-width: 78ch;
        }

        #sponsor {
            background: linear-gradient(150deg, #fffaf3 0%, #f6fbff 100%);
            border: 1px solid rgba(255, 122, 26, 0.18);
        }

        .sponsor-kicker {
            display: inline-flex;
            align-items: center;
            gap: 0.45rem;
            margin-bottom: 0.55rem;
            padding: 0.3rem 0.65rem;
            border-radius: 999px;
            background: rgba(255, 122, 26, 0.14);
            border: 1px solid rgba(255, 122, 26, 0.3);
            color: #8a3b08;
            font-weight: 700;
            font-size: 0.86rem;
            text-transform: uppercase;
            letter-spacing: 0.04em;
        }

        #sponsor .card {
            padding: 0.95rem 1rem;
            background: linear-gradient(160deg, #ffffff 0%, #f9fcff 100%);
            border: 1px solid rgba(16, 36, 52, 0.1);
            box-shadow: 0 10px 22px rgba(16, 36, 52, 0.08);
        }

        #sponsor .card p {
            margin: 0.45rem 0 0.6rem;
            max-width: 78ch;
        }

        .sponsor-grid {
            margin-top: 0.7rem;
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 0.65rem;
        }

        .sponsor-card {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.7rem;
            text-decoration: none;
            background: #fff;
            border: 1px solid rgba(16, 36, 52, 0.14);
            border-radius: 12px;
            padding: 0.7rem 0.8rem;
            transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
        }

        .sponsor-card:hover,
        .sponsor-card:focus {
            transform: translateY(-1px);
            border-color: rgba(244, 93, 72, 0.42);
            box-shadow: 0 10px 20px rgba(16, 36, 52, 0.12);
        }

        .sponsor-card .name {
            font-weight: 700;
            color: var(--night-ink);
        }

        .sponsor-card .tag {
            font-size: 0.78rem;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            color: rgba(16, 36, 52, 0.68);
        }

        .sponsor-card i {
            color: var(--festival-coral);
        }

        #sponsor .highlight {
            margin-top: 1rem !important;
        }

        .footer-note {
            text-align: center;
            padding: 1rem 0 0;
            color: var(--dark-blue);
            font-weight: 600;
        }

        html {
            scroll-behavior: smooth;
        }

        main section[id] {
            scroll-margin-top: 84px;
        }

        .top-nav {
            position: sticky;
            top: 0;
            z-index: 60;
            background: rgba(241, 247, 251, 0.84);
            border-bottom: 1px solid rgba(16, 36, 52, 0.12);
            backdrop-filter: blur(8px);
            display: flex;
            justify-content: center;
        }

        .top-nav-inner {
            max-width: 1260px;
            width: 100%;
            padding: 0.45rem 1.25rem;
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 0.75rem;
        }

        .nav-toggle {
            display: none;
            background: none;
            border: 0;
            font-size: 1.25rem;
            color: var(--primary-green);
            padding: 0.35rem 0.6rem;
            border-radius: 8px;
            cursor: pointer;
        }

        .top-nav ul {
            list-style: none;
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            gap: 0.6rem;
            align-items: center;
        }

        .top-nav a {
            color: var(--primary-green);
            text-decoration: none;
            padding: 0.42rem 0.56rem;
            border-radius: 999px;
            font-weight: 700;
            font-size: 0.92rem;
            white-space: nowrap;
        }

        .top-nav a.active {
            background: linear-gradient(135deg, rgba(244, 93, 72, 0.18), rgba(255, 122, 26, 0.2));
            color: var(--night-ink);
        }

        .top-nav a.nav-donate {
            background: linear-gradient(135deg, var(--dark-blue), var(--festival-teal));
            color: #fff;
            padding-inline: 0.8rem;
            box-shadow: 0 8px 16px rgba(16, 36, 52, 0.22);
        }

        .top-nav a.nav-donate:hover,
        .top-nav a.nav-donate:focus {
            background: var(--festival-coral);
            color: #fff;
        }

        .top-nav a:hover,
        .top-nav a:focus {
            background: rgba(255, 122, 26, 0.14);
            color: var(--night-ink);
        }

        .nav-more {
            position: relative;
        }

        .nav-more summary {
            list-style: none;
            cursor: pointer;
            color: var(--primary-green);
            text-decoration: none;
            padding: 0.42rem 0.56rem;
            border-radius: 999px;
            font-weight: 700;
            font-size: 0.92rem;
            white-space: nowrap;
            font-family: "Outfit", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
            letter-spacing: 0.01em;
        }

        .nav-more summary::-webkit-details-marker {
            display: none;
        }

        .nav-more summary::after {
            content: " \25BE";
            font-size: 0.78rem;
        }

        .nav-more[open] summary,
        .nav-more summary:hover,
        .nav-more summary:focus {
            background: rgba(255, 122, 26, 0.14);
            color: var(--night-ink);
        }

        .nav-more-menu {
            position: absolute;
            top: calc(100% + 0.4rem);
            right: 0;
            min-width: 180px;
            background: rgba(255,255,255,0.98);
            border: 1px solid rgba(16, 36, 52, 0.1);
            border-radius: 12px;
            box-shadow: 0 10px 24px rgba(16, 36, 52, 0.14);
            padding: 0.35rem;
            display: grid;
            gap: 0.2rem;
            z-index: 80;
        }

        .nav-more-menu a {
            display: block;
            border-radius: 8px;
            padding: 0.4rem 0.55rem;
            font-size: 0.9rem;
        }

        .schedule-placeholder {
            margin-top: 0.6rem;
            background: linear-gradient(140deg, #f7fcff 0%, #eef6fd 100%);
            border: 1px solid rgba(20, 156, 149, 0.28);
            border-left: 5px solid var(--festival-teal);
            border-radius: 14px;
            padding: 1rem 1.1rem;
        }

        .schedule-placeholder p {
            margin: 0 0 0.7rem;
        }

        .action-list {
            display: grid;
            gap: 0.65rem;
            margin-top: 0.75rem;
        }

        .action-link {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.75rem;
            text-decoration: none;
            background: #fff;
            border: 1px solid rgba(16, 36, 52, 0.14);
            border-radius: 12px;
            padding: 0.65rem 0.8rem;
            font-weight: 700;
            color: var(--night-ink);
            transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
        }

        .action-link:hover,
        .action-link:focus {
            border-color: rgba(244, 93, 72, 0.45);
            box-shadow: 0 10px 20px rgba(16, 36, 52, 0.12);
            transform: translateY(-1px);
        }

        .action-link span {
            display: inline-flex;
            align-items: center;
            gap: 0.45rem;
        }

        .action-link i {
            color: var(--festival-coral);
        }

        .help-item i {
            color: var(--festival-teal);
            margin-right: 0.35rem;
        }

        .ecedm-duo-row {
            margin-top: 1rem;
            max-width: 840px;
            margin-left: auto;
            margin-right: auto;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            align-items: start;
        }

        .ecedm-duo-row .photo-card {
            margin: 0;
            max-width: none;
        }

        .ecedm-duo-row .photo-card img {
            height: 300px;
            object-fit: cover;
            border-radius: 0;
        }

        .dj-kalvin-photo-card img {
            object-position: center 34%;
            transform-origin: center center;
        }

        .artist-links-stack {
            margin-top: 0.95rem;
            padding-top: 0.3rem;
        }

        .artist-links-stack p {
            margin: 0.5rem 0;
        }

        .glance-drink-note {
            display: block;
            margin-top: 0.35rem;
            font-size: 0.9rem;
        }

        .schedule-update-link {
            margin-top: 0.9rem;
        }

        .grid-spaced {
            margin-top: 1rem;
        }

        .challenge-title {
            margin-top: 1rem;
            margin-bottom: 0.75rem;
            letter-spacing: 0.04em;
            text-transform: uppercase;
        }

        .challenge-compact {
            margin-bottom: 0.75rem;
        }

        .challenge-copy {
            margin-bottom: 1rem;
        }

        .challenge-quote {
            margin: 0.75rem 0 1rem;
            font-style: italic;
        }

        .challenge-actions {
            display: flex;
            flex-wrap: wrap;
            gap: 0.75rem;
            margin-top: 1rem;
        }

        .hole-sponsor-thanks {
            margin-top: 1.2rem;
            margin-bottom: 0;
            padding: 0.7rem 0.9rem;
            font-size: 0.96rem;
        }

        .hole-sponsor-heading {
            margin: 0;
            font-size: 0.92rem;
        }

        .hole-sponsor-names {
            margin: 0.35rem 0 0;
        }

        .kids-update {
            margin-top: 1rem;
        }

        .beverage-highlight {
            margin: 1rem 0;
            padding: 1.1rem 1.2rem;
            border-left: 5px solid #d66b39;
        }

        .beverage-heading {
            margin: 0 0 0.4rem;
            font-size: 1.05rem;
            font-weight: 800;
        }

        .beverage-copy {
            margin: 0;
            line-height: 1.7;
        }

        .help-callout,
        .sponsor-callout {
            margin-top: 1.5rem;
            padding: 1rem 1.2rem;
        }

        .sponsor-card-panel {
            margin-top: 1rem;
        }

        @media (max-width: 760px) {
            .two-col,
            .media-grid,
            .help-list,
            .logistics-grid,
            .trust-strip,
            .activity-grid {
                grid-template-columns: 1fr;
            }

            .schedule-layout {
                grid-template-columns: 1fr;
            }

            .timeline-item {
                grid-template-columns: 1fr;
                gap: 0.35rem;
            }

            .section {
                padding: 1.4rem;
            }
            .top-nav-inner { padding: 0.35rem 0.9rem; }
            .top-nav a { font-size: 0.9rem; }
            .nav-toggle { display: inline-flex; }
            .top-nav ul { display: none; }
            .top-nav.open ul {
                display: flex;
                position: absolute;
                top: 56px;
                left: 0;
                right: 0;
                margin: 0 auto;
                flex-direction: column;
                gap: 0.4rem;
                background: rgba(255,255,255,0.98);
                padding: 0.6rem 1rem 0.9rem;
                box-shadow: 0 8px 20px rgba(0,0,0,0.08);
                border-bottom-left-radius: 12px;
                border-bottom-right-radius: 12px;
            }
            .top-nav.open { border-bottom-left-radius: 0; }
            .top-nav li { text-align: center; }
            .featured-photo { max-width: 100%; height: auto; }
            .hero { padding: 3.2rem 1rem 2rem; }
            h1 { font-size: 1.9rem; }
            .section { padding: 1rem; }
            .card h3, .section h2 { font-size: 1.15rem; }
            .disc-golf-box { padding: 1rem; }
            .sponsor-note { font-size: 0.85rem; }
            .nav-more {
                width: 100%;
            }
            .nav-more-menu {
                position: static;
                min-width: 0;
                width: 100%;
                margin-top: 0.35rem;
                box-shadow: none;
            }
            .ecedm-duo-row {
                grid-template-columns: 1fr;
            }
            .ecedm-duo-row .photo-card img {
                height: auto;
            }
            .park-photo-grid {
                grid-template-columns: 1fr;
            }
            .park-photo-grid .photo-card img {
                height: auto;
            }
            .food-truck-feature-photo img {
                height: auto;
            }
            .sponsor-grid {
                grid-template-columns: 1fr;
            }
        }
    