.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.video-hero{min-height:760px;touch-action:pan-y}.video-slide{position:absolute;inset:0;opacity:0;transition:opacity .6s ease;pointer-events:none}.video-slide.is-active{opacity:1}.video-slide .hero-photo{object-position:center}.video-hero .hero-content{width:70%;padding-top:60px;padding-bottom:170px}.video-hero h1{font-size:clamp(58px,6.8vw,102px)}.hero-tagline{font-size:17px;line-height:1.7;margin-top:25px}.selected-event{margin-top:28px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}.selected-event>span{font-size:14px;font-weight:700;letter-spacing:.03em}.selected-event .button{font-size:14px;max-width:100%}.video-story{position:absolute;z-index:3;right:4.7%;top:170px;width:330px;color:white}.video-kicker{font-size:14px;letter-spacing:.14em;color:var(--green);font-weight:700;margin-bottom:20px}.video-story h2{font:700 clamp(25px,2.3vw,35px) var(--display);letter-spacing:-.045em;line-height:1.3}.video-story>p:not(.video-kicker){font-size:14px;line-height:1.8;margin-top:20px}.video-watch{display:inline-flex;align-items:center;gap:12px;border:1px solid #ffffff80;background:#191b1b80;color:white;font-size:14px;font-weight:700;padding:16px 18px;margin-top:25px;min-height:54px}.video-watch:hover{background:var(--green);color:var(--ink);border-color:var(--green)}.video-watch>span{font-size:17px}.video-story .video-cover-note{font-size:14px;line-height:1.7;color:#ccd3c6;max-width:315px;margin-top:12px;min-height:31px}.carousel-controls{display:flex;align-items:center;gap:12px;margin-top:25px}.carousel-controls button{height:42px;min-width:42px;background:transparent;color:white;border:1px solid #ffffff55;font-size:18px}.carousel-controls button:hover{border-color:var(--green);color:var(--green)}.carousel-controls #slide-count{font-size:14px;font-weight:700;min-width:45px;text-align:center}.carousel-controls .carousel-pause{border:0;font-size:14px;letter-spacing:.01em;padding:0 4px;min-width:82px}.carousel-controls button:disabled{opacity:.75;cursor:default}.event-tabs{position:absolute;z-index:4;bottom:0;left:4.7%;right:4.7%;display:grid;grid-template-columns:1fr 1fr;scroll-margin-top:100px}.event-tabs button{display:grid;grid-template-columns:1fr auto 20px;align-items:center;gap:18px;min-height:96px;padding:25px 30px;background:#191b1bea;color:white;border:1px solid #ffffff30;text-align:left}.event-tabs button>span:first-child{font:700 22px var(--display);letter-spacing:-.04em}.event-tabs time{font-size:14px;font-weight:700}.event-tabs button[aria-selected=true]{background:var(--green);color:var(--ink);border-color:var(--green)}.event-tabs button[aria-selected=false]:hover{background:#333c34}.event-tabs button:focus-visible{outline-offset:-6px;outline-color:white}.event-tabs button[aria-selected=true]:focus-visible{outline-color:var(--ink)}#city-panel{overflow-anchor:none}#city-panel .city-info .section-heading p{max-width:415px}#city-panel .info-grid h3{min-height:50px}#city-panel .info-grid .text-link{font-size:14px;gap:15px;margin-top:17px}#city-panel .city-program{gap:60px}#city-panel .city-program figure img{width:100%;height:390px}#city-panel .city-program p{max-width:490px}#city-panel .city-program .eyebrow{color:var(--green)}.city-local{background:#e7eae2}.local-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.local-info-grid article{border-top:1px solid #b5beae;padding-top:25px}.local-info-grid article>span{font-size:14px;font-weight:700;letter-spacing:.1em}.local-info-grid h3{margin-top:20px;font-size:23px}.local-info-grid p{font-size:14px;line-height:1.9;max-width:500px;margin-top:17px;min-height:70px}.local-info-grid .text-link{font-size:14px;gap:15px;margin-top:17px}.video-dialog{border:0;background:var(--ink);color:white;padding:35px 30px 25px;width:min(920px,calc(100% - 30px));max-height:92vh;overflow:auto}.video-dialog::backdrop{background:#0a100bdd;backdrop-filter:blur(5px)}.video-dialog .eyebrow{color:var(--green);margin-bottom:12px}.video-dialog h2{font-size:25px;margin-bottom:20px}.video-dialog video{display:block;width:100%;max-height:65vh;aspect-ratio:640/350;background:black}.video-dialog>p:last-child{font-size:14px;line-height:1.8;color:#b8c2b1;margin-top:15px}.video-dialog .dialog-close{color:white}
@media(max-width:1100px) and (min-width:761px){.video-hero{min-height:770px}.video-hero .hero-content{width:66%;padding-top:70px}.video-hero h1{font-size:clamp(49px,6.6vw,76px)}.video-story{width:270px;top:210px}.video-story h2{font-size:24px}.video-story>p:not(.video-kicker){font-size:14px}.event-tabs button{padding:24px 20px;gap:12px}.event-tabs button>span:first-child{font-size:18px}.event-tabs time{font-size:14px}}
@media(max-width:760px){.video-hero{min-height:0}.video-hero .hero-content{width:100%;padding:37px 6% 0}.video-hero h1{font-size:clamp(40px,10.6vw,67px)}.video-hero .eyebrow{font-size:14px;gap:10px;margin-bottom:28px}.hero-tagline{font-size:14px;margin-top:21px}.selected-event{margin-top:22px;gap:10px}.selected-event>span{font-size:14px}.selected-event .button{font-size:14px;width:100%;padding:14px 16px;gap:12px}.video-story{position:relative;right:auto;top:auto;width:auto;margin:30px 6% 28px;padding-top:20px;border-top:1px solid #ffffff35}.video-kicker{font-size:14px;margin-bottom:12px}.video-story h2{font-size:24px}.video-story>p:not(.video-kicker){font-size:14px;margin-top:13px}.video-watch{margin-top:17px;font-size:14px;padding:13px 15px;min-height:47px}.video-story .video-cover-note{font-size:14px;min-height:0}.carousel-controls{margin-top:17px;gap:9px}.carousel-controls .carousel-pause{font-size:14px;min-width:95px}.event-tabs{position:relative;left:auto;right:auto;margin:0 6%;scroll-margin-top:88px}.event-tabs button{display:block;padding:17px 13px;min-height:99px;position:relative}.event-tabs button>span:first-child{font-size:17px;display:block}.event-tabs time{font-size:14px;display:block;margin-top:10px}.event-tabs button>span:last-child{position:absolute;top:8px;right:8px;font-size:14px}.video-hero .hero-shade{background:linear-gradient(90deg,#0b100fec,#121715a0),linear-gradient(0deg,#0d130fe8,transparent 70%)}#city-panel .info-grid h3{min-height:0}#city-panel .city-program{gap:30px}#city-panel .city-program figure img{height:265px}.local-info-grid{grid-template-columns:1fr;gap:32px}.local-info-grid h3{font-size:22px}.local-info-grid p{font-size:14px;min-height:0}.local-info-grid .text-link{font-size:14px}.home-page .footer{padding-bottom:95px}.mobile-ticket button>span:first-child{font-size:14px;max-width:210px}.video-dialog{padding:45px 17px 20px}.video-dialog h2{font-size:21px}.video-dialog>p:last-child{font-size:14px}}
@media(prefers-reduced-motion:reduce){.video-slide{transition:none}}
@media(max-width:760px){.video-hero .hero-content .event-tabs{margin:22px 0 0}.video-hero .hero-content .event-tabs button{min-height:84px;padding-block:15px}.video-story{margin-top:22px;padding-top:15px}.video-kicker{margin-bottom:9px}.video-story h2{font-size:22px}.video-story>p:not(.video-kicker){margin-top:10px}.video-watch{margin-top:13px;padding-block:11px;min-height:44px}.video-story .video-cover-note{margin-top:8px}.carousel-controls{margin-top:15px}}

/* Event and video text follow the shared readable scale. */
.hero-tagline,.video-story>p:not(.video-kicker),.local-info-grid p{font-size:18px;line-height:1.65}
.selected-event>span,.selected-event .button,.video-watch,.event-tabs time,#city-panel .info-grid .text-link,.local-info-grid .text-link{font-size:16px}
.video-story .video-cover-note,.video-dialog>p:last-child{font-size:14px;line-height:1.65}
.video-hero{min-height:840px}.video-story{width:320px;top:145px}.video-hero .hero-content{width:68%}
.carousel-controls{flex-wrap:wrap}.carousel-controls .carousel-pause{min-height:44px;height:auto}
@media(max-width:1100px) and (min-width:761px){.video-hero .hero-content{width:62%}.video-story{width:29%;top:150px}.video-hero{min-height:880px}.event-tabs button{gap:10px;padding-inline:18px}}
@media(max-width:760px){
.video-hero{min-height:0}.video-hero .hero-content{width:100%}
.hero-tagline,.video-story>p:not(.video-kicker),.local-info-grid p{font-size:16px}
.video-story{width:auto;top:auto}.video-hero .eyebrow{flex-wrap:wrap;letter-spacing:.06em}
.event-tabs button{padding-inline:12px}.event-tabs time{font-size:16px;line-height:1.5}
.selected-event .button{font-size:16px}.mobile-ticket button>span:first-child{font-size:14px;max-width:60%}
.video-hero .hero-content .event-tabs button{min-height:115px}
}

.video-story>p.video-cover-note{font-size:14px;line-height:1.65}

/* A festival day beyond the automobile exhibition. */
.festival-format{background:var(--paper)}
.festival-format .section-heading>p{max-width:440px}
.festival-format-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 35px}
.festival-format-grid article{border-top:1px solid #a6afa3;padding-top:24px}
.festival-format-grid .eyebrow{display:block;color:#62705e;margin-bottom:20px}
.festival-format-grid h3{font-size:25px;line-height:1.25;margin-bottom:16px}
.festival-format-grid p{font-size:18px;line-height:1.65;color:#535e4e}
.festival-format-note{border-top:1px solid var(--line);padding-top:24px;margin-top:38px;font-size:14px;color:#535e4e;max-width:100%}
@media(max-width:1100px){.festival-format-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.festival-format-grid{grid-template-columns:1fr;gap:30px}.festival-format-grid p{font-size:16px}.festival-format-grid h3{font-size:23px}}

@media(min-width:761px){.video-hero .hero-shade{background:linear-gradient(270deg,#0b100fb3,transparent 45%),linear-gradient(90deg,#0b100feb 0%,#1217158c 48%,#161b1620 100%),linear-gradient(0deg,#0d130fe0,transparent 38%)}}

/* Six small scenes: motion stays inside each card. */
.festival-format-grid{gap:20px}
.festival-format-grid .festival-card{--card-color:#b4f59b;position:relative;isolation:isolate;border:1px solid #cdd3c7;background:#e8ebe2;padding:26px;overflow:hidden;transition:background-color .3s,border-color .3s,box-shadow .3s;outline-offset:4px}
.festival-card-2{--card-color:#ffb69b!important}.festival-card-3{--card-color:#c5b7ff!important}.festival-card-4{--card-color:#ffe58a!important}.festival-card-5{--card-color:#ffd0a6!important}.festival-card-6{--card-color:#aae0f5!important}
.festival-format-grid .festival-card:is(:hover,:focus-visible){background:var(--card-color);border-color:#191b1b;box-shadow:0 8px 22px #191b1b12}
.festival-card:focus-visible{outline:3px solid var(--ink)}
.festival-format-grid .festival-card .eyebrow{color:#43513e;margin-bottom:0}
.festival-format-grid .festival-card p{color:#354030}
.festival-illustration{height:145px;display:flex;align-items:center;justify-content:center;margin:14px 0 20px;color:var(--ink)}
.festival-illustration svg{width:240px;max-width:100%;height:120px;overflow:visible}
.festival-illustration svg g{transform-box:fill-box;transform-origin:center}
.scene-speed{opacity:.35}.scene-flash{opacity:.4}.scene-beam{opacity:.7}
@media(hover:hover){
.festival-card:is(:hover,:focus-visible) .scene-car{animation:festival-cruise 1.4s ease-in-out infinite}
.festival-card:is(:hover,:focus-visible) .scene-wheel{animation:festival-wheel 1.4s linear infinite}
.festival-card:is(:hover,:focus-visible) .scene-speed{animation:festival-speed 1.2s ease-in-out infinite}
.festival-card:is(:hover,:focus-visible) .scene-bike{animation:festival-hop 1.8s ease-in-out infinite}
.festival-card:is(:hover,:focus-visible) .scene-bars path{animation:festival-beat 1.3s ease-in-out infinite;transform-box:fill-box;transform-origin:bottom}
.scene-bars path:nth-child(2){animation-delay:-.2s!important}.scene-bars path:nth-child(3){animation-delay:-.5s!important}.scene-bars path:nth-child(4){animation-delay:-.8s!important}.scene-bars path:nth-child(5){animation-delay:-.35s!important}
.festival-card:is(:hover,:focus-visible) .scene-beam{animation:festival-light 2s ease-in-out infinite}
.festival-card:is(:hover,:focus-visible) .scene-balloon{animation:festival-float 2.4s ease-in-out infinite}.festival-card:is(:hover,:focus-visible) .balloon-two{animation-delay:-1.2s}
.festival-card:is(:hover,:focus-visible) .scene-star{animation:festival-turn 3s ease-in-out infinite}
.festival-card:is(:hover,:focus-visible) .scene-steam{animation:festival-steam 2.2s ease-in-out infinite}
.festival-card:is(:hover,:focus-visible) .scene-snack{animation:festival-float 2.8s ease-in-out infinite}
.festival-card:is(:hover,:focus-visible) .scene-camera{animation:festival-camera 2.5s ease-in-out infinite}
.festival-card:is(:hover,:focus-visible) .scene-print{animation:festival-print 2.5s ease-in-out infinite}
.festival-card:is(:hover,:focus-visible) .scene-flash{animation:festival-light 2.5s ease-in-out infinite}
}
@keyframes festival-cruise{0%,100%{transform:translateX(-5px)}50%{transform:translateX(6px) translateY(-1px)}}
@keyframes festival-wheel{to{transform:rotate(360deg)}}
@keyframes festival-speed{0%,100%{opacity:.25;transform:translateX(0)}50%{opacity:.8;transform:translateX(-6px)}}
@keyframes festival-hop{0%,100%{transform:translateY(0) rotate(0)}45%{transform:translateY(-9px) rotate(-5deg)}}
@keyframes festival-beat{0%,100%{transform:scaleY(.55)}50%{transform:scaleY(1)}}
@keyframes festival-light{0%,100%{opacity:.3}50%{opacity:1}}
@keyframes festival-float{0%,100%{transform:translateY(3px) rotate(-3deg)}50%{transform:translateY(-5px) rotate(3deg)}}
@keyframes festival-turn{0%,100%{transform:rotate(-12deg) scale(.95)}50%{transform:rotate(12deg) scale(1.05)}}
@keyframes festival-steam{0%{transform:translateY(4px);opacity:.2}50%{opacity:.9}100%{transform:translateY(-6px);opacity:.2}}
@keyframes festival-camera{0%,100%{transform:rotate(0)}40%{transform:rotate(-3deg)}60%{transform:rotate(2deg)}}
@keyframes festival-print{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(5px) rotate(5deg)}}
@media(hover:none){.festival-format-grid .festival-card{background:color-mix(in srgb,var(--card-color) 35%,var(--paper))}}
@media(max-width:760px){.festival-format-grid .festival-card{padding:24px}.festival-illustration{height:120px;margin:10px 0 18px}}
@media(prefers-reduced-motion:reduce){.festival-format-grid .festival-card,.festival-illustration *{animation:none!important;transition:none!important}}

/* Brand palette supplied by the user. */
.festival-format-grid .festival-card-1{--card-color:#0cc638}
.festival-format-grid .festival-card-2{--card-color:#ff7439!important}
.festival-format-grid .festival-card-3{--card-color:#1acbee!important}
.festival-format-grid .festival-card-4{--card-color:#e0ff57!important}
.festival-format-grid .festival-card-5{--card-color:#ffffff!important}
.festival-format-grid .festival-card-6{--card-color:#00872b!important}
.festival-format-grid .festival-card{background:#fff;border-color:#cdd3c7}
.festival-card-6 .festival-illustration{--card-color:#0cc638}
.festival-format-grid .festival-card-6:is(:hover,:focus-visible){color:#fff}
.festival-format-grid .festival-card-6:is(:hover,:focus-visible) .eyebrow,.festival-format-grid .festival-card-6:is(:hover,:focus-visible) p,.festival-card-6:is(:hover,:focus-visible) .festival-illustration{color:#fff}
.festival-card-5:is(:hover,:focus-visible){box-shadow:inset 0 0 0 2px var(--ink),0 8px 22px #191b1b12}
.scene-heart{transform-origin:50% 55%!important}
.scene-heart-rays{opacity:.4}
@media(hover:hover){.festival-card:is(:hover,:focus-visible) .scene-heart{animation:festival-heart 1.8s ease-in-out infinite}.festival-card:is(:hover,:focus-visible) .scene-heart-rays{animation:festival-light 1.8s ease-in-out infinite}}
@keyframes festival-heart{0%,30%,60%,100%{transform:scale(1)}15%{transform:scale(1.065)}45%{transform:scale(1.04)}}
@media(hover:none){.festival-format-grid .festival-card{border-top:5px solid var(--card-color)}.festival-format-grid .festival-card-5{border-top-color:var(--ink)}}
@media(prefers-reduced-motion:reduce){.festival-illustration *{animation:none!important}}

.home-final-hero .hero-history-link{color:#fff;font-size:16px;gap:22px;margin-top:24px}.home-final-hero .hero-history-link:hover{color:var(--green)}
.home-final-hero .video-cover-note{font-size:14px;line-height:1.65}

/* Responsive final-video card: reserve real space for text and a round play button. */
.home-final-hero .video-story{box-sizing:border-box;width:clamp(360px,31vw,480px);right:4.7%;top:130px;padding:28px}
.home-final-hero .hero-content{width:58%}
.home-final-hero .video-story h2{font-size:clamp(25px,2.1vw,34px);line-height:1.25}
.home-final-hero .video-watch{display:flex;width:100%;box-sizing:border-box;font-size:16px;padding:16px;gap:14px;line-height:1.5}
.home-final-hero .video-watch>span{flex:0 0 52px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:20px}
.home-final-hero .video-story .video-kicker{font-size:13px;letter-spacing:.09em}
@media(min-width:761px) and (max-width:1199px){.home-final-hero .video-story{position:relative;top:auto;right:auto;width:min(600px,90.6%);margin:0 4.7% 150px}.home-final-hero .hero-content{width:100%;padding-bottom:32px}.home-final-hero{height:auto;min-height:0}.home-final-hero .video-story h2{font-size:30px}.home-final-hero .video-story h2 br{display:none}}
@media(max-width:760px){.home-final-hero .hero-content{width:100%}.home-final-hero .video-story{position:relative;top:auto;right:auto;width:auto;margin:20px 4.7% 0;padding:20px}.home-final-hero .video-story h2{font-size:25px}.home-final-hero .video-watch{font-size:15px;gap:12px;padding:14px}.home-final-hero .video-watch>span{flex-basis:44px;width:44px;height:44px}}

/* City choice remains next to the event, inside the first screen. */
.home-final-hero .hero-content .event-tabs{position:relative;left:auto;right:auto;bottom:auto;width:100%;max-width:660px;margin-top:24px;scroll-margin-top:100px}
.home-final-hero .hero-content .event-tabs button{grid-template-columns:1fr;gap:8px;padding:18px 24px;min-height:94px}
.home-final-hero .hero-content .event-tabs time{font-size:14px}
.home-final-hero .hero-content{padding-bottom:48px}
@media(min-width:1200px){.home-final-hero{min-height:calc(100svh - 96px)}.home-final-hero .hero-content{padding-top:38px}.home-final-hero .video-story{top:60px}.home-final-hero h1{font-size:clamp(58px,6.2vw,94px)}}
@media(min-width:761px) and (max-width:1199px){.home-final-hero .hero-content{padding-top:32px;padding-bottom:32px}.home-final-hero .video-story{margin-bottom:40px}.home-final-hero h1{font-size:clamp(52px,6.2vw,74px)}}
@media(min-width:761px) and (max-height:800px){.home-final-hero .hero-content{padding-top:26px}.home-final-hero h1{font-size:clamp(48px,5.4vw,78px)}.home-final-hero .hero-tagline{margin-top:16px}.home-final-hero .hero-content .event-tabs{margin-top:16px}.home-final-hero .selected-event{margin-top:16px}}
@media(max-width:760px){.home-final-hero .hero-content .event-tabs{margin-top:24px}.home-final-hero .hero-content .event-tabs button{padding:22px 16px;min-height:100px}.home-final-hero .hero-content{padding-bottom:0}}
