* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body { margin: 0; background: var(--home-background, rgba(26,115,232,.2)); color: #202124; font-family: system-ui, sans-serif; line-height: 1.6; }
a { color: inherit; }
img { display: block; max-width: 100%; }
button { font: inherit; cursor: pointer; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--color-secondary, #fbbc04); outline-offset: 4px; }
.skip-link { position: fixed; top: -10rem; left: 1rem; z-index: 20; padding: 1rem; background: var(--color-background, #fff); }
.skip-link:focus { top: 1rem; }
.hero { position: relative; display: grid; place-items: center; min-height: 100vh; min-height: 100svh; padding: 3rem 1rem; background: var(--color-primary, #1a73e8); color: #fff; isolation: isolate; overflow: hidden; }
.hero-media, .hero-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-media { object-fit: cover; z-index: -2; }
video.hero-media { z-index: 0; }
.hero-overlay { z-index: -1; background: var(--color-hero-overlay, rgba(0,0,0,0.4)); pointer-events: none; }
video.hero-media ~ .hero-overlay { z-index: 1; }
.hero-content { position: relative; z-index: 2; max-width: 60rem; text-align: center; pointer-events: none; }
.hero-logo { width: 80px; height: auto; max-height: 80px; margin: 0 auto 1.5rem; object-fit: contain; }
h1 { margin: 0; font-size: clamp(2.2rem, 7vw, 5rem); line-height: 1.12; overflow-wrap: anywhere; }
.hero-content p { font-size: clamp(1.1rem, 3vw, 1.75rem); }
.hero-content .hero-dates { margin: 0 0 8px; font-size: 13px; font-weight: 400; color: inherit; }
.hero-cta { display: inline-block; margin-top: 1rem; padding: .875rem 2rem; border-radius: .5rem; background: #ffffff; color: #000000; font-weight: 700; text-decoration: none; pointer-events: auto; overflow-wrap: anywhere; max-width: 100%; }
.section { max-width: 75rem; margin: 0 auto; padding: 2.5rem 1rem; }
h2 { color: var(--color-primary, #1a73e8); font-size: 1.75rem; margin: 0 0 1.5rem; }
.sponsor-list { list-style: none; padding: 0; margin: 0; gap: 1rem; }
.sponsors, .program { text-align: center; }
.sponsors-main .sponsor-list { display: flex; flex-wrap: wrap; justify-content: center; }
.sponsors-minor .sponsor-list { display: grid; width: min(100%, 216px); margin-inline: auto; grid-template-columns: repeat(auto-fit, 100px); justify-content: center; }
.sponsor-card { width: 160px; height: 120px; background: #fff; border-radius: 16px; box-shadow: 0 10px 30px rgba(0,0,0,.15), 0 2px 8px rgba(0,0,0,.1); display: flex; flex-direction: column; justify-content: center; align-items: center; min-width: 0; overflow-wrap: anywhere; padding: 8px; }
.sponsor-card a { display: flex; width: 100%; height: 100%; flex-direction: column; justify-content: center; align-items: center; text-decoration: none; }
.sponsor-card img { width: auto; height: auto; max-width: 80%; max-height: 80%; object-fit: contain; }
.sponsor-card span { font-size: .75rem; line-height: 1.2; max-width: 100%; overflow: hidden; }
.sponsors-minor .sponsor-card { width: 100px; height: 70px; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.day-selector { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin-bottom: 1.5rem; }
.day-button { border: 1px solid #ddd; border-radius: 999px; padding: 6px 14px; background: #fff; color: #202124; font-size: 14px; box-shadow: 0 1px 4px rgba(0,0,0,.1); }
.day-button[aria-expanded="true"] { background: var(--color-primary, #1a73e8); border-color: var(--color-primary, #1a73e8); color: #fff; }
.day-panel { max-width: 800px; margin: 0 auto; background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 2px 12px rgba(0,0,0,.1); text-align: left; }
.day-panel h3 { margin: 0; padding: 16px 16px 0; overflow-wrap: anywhere; }
.day-panel > p { padding: 16px; }
.program-image { width: 100%; height: 150px; object-fit: cover; }
.program-placeholder { display: grid; place-items: center; background: #e0e0e0; color: #555; }
.program-list { list-style: none; padding: 0; margin: 0; }
.program-list li { border-bottom: 1px solid #ddd; }
.program-row { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: .5rem; padding: 16px; text-decoration: none; overflow-wrap: anywhere; }
.program-row.no-time { grid-template-columns: 1fr; }
.program-time { font-weight: 700; color: var(--color-primary, #1a73e8); }
.program-list h4, .program-list p { margin: 0 0 .5rem; }
.footer { padding: 2rem 1rem; text-align: center; background: var(--color-footer-bg, #202124); color: var(--color-footer-text, #fff); }
.footer p { margin: 0; }
.footer .legal-links { margin-bottom: 8px; color: var(--color-footer-text, #fff); }
@media (min-width: 768px) {
    .hero-content .hero-dates { margin-bottom: 12px; font-size: 14px; }
    .section { padding: 4rem 2rem; }
    .hero-logo { width: 120px; max-height: 120px; }
    .sponsors-main .sponsor-card { width: 280px; height: 180px; }
    .sponsors-minor .sponsor-list { width: min(100%, 452px); grid-template-columns: repeat(auto-fit, 140px); }
    .sponsors-minor .sponsor-card { width: 140px; height: 90px; }
    .program-image { height: 200px; }
}
@media (min-width: 1024px) {
    .section { padding-block: 5rem; }
    .sponsors-minor .sponsor-list { width: min(100%, 608px); }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}
