/* Athletic typography, a physical ticket, and ambient cloth/water motion. */
.hero-ticket picture{display:block;transform-origin:54% 55%}
.hero-foundation-link{font-size:15px;gap:26px;min-height:46px;position:relative}
.hero-foundation-link span{display:inline-block;mask-image:radial-gradient(circle,#000 .75px,#0005 1px);mask-size:2px 2px;transition:transform .18s ease,color .18s ease}
.hero-foundation-link:hover span,.hero-foundation-link:focus-visible span{transform:translate(3px,-3px);color:#e6fcff}
.hero.hero-intro .hero-copy .eyebrow{animation:hero-announcement .65s steps(14,end) both}
.hero.hero-intro .hero-copy h1>span:first-child{animation:hero-rivalry .8s cubic-bezier(.16,1,.3,1) .12s both}
.hero.hero-intro .hero-copy h1>span:nth-child(2){animation:hero-for .65s cubic-bezier(.16,1,.3,1) .32s both}
.hero.hero-intro .hero-copy h1 em{display:inline-block;animation:hero-good .8s cubic-bezier(.2,.8,.2,1) .52s both}
.hero.hero-intro .hero-ticket picture{animation:hero-ticket-settle 1.25s cubic-bezier(.16,1,.3,1) .35s both}
.hero.hero-intro .hero-details p{animation:hero-invitation .65s ease-out .9s both}
.hero.hero-intro .hero-foundation-link{animation:hero-invitation .5s ease-out 1.15s both}
.hero.hero-intro .hero-foundation-link::after{content:'';position:absolute;bottom:-2px;left:0;width:100%;height:2px;background:#d9fbff;transform-origin:left;animation:hero-link-light .8s ease-out 1.4s both;pointer-events:none}
.hero-waves path{transform-box:fill-box;transform-origin:center bottom;animation:hero-ribbon-drift 12s ease-in-out infinite alternate}
.hero-waves path:nth-of-type(2){animation-duration:15s;animation-delay:-6s;animation-direction:alternate-reverse}
.hero-waves path:nth-of-type(3){animation-duration:19s;animation-delay:-11s}
.hero-waves path:nth-of-type(4){animation-duration:16s;animation-delay:-4s;animation-direction:alternate-reverse}
.hero.is-offscreen .hero-waves path{animation-play-state:paused}
@keyframes hero-announcement{from{clip-path:inset(0 100% 0 0);opacity:.2}to{clip-path:inset(0);opacity:1}}
@keyframes hero-rivalry{from{translate:0 35px;clip-path:inset(0 0 100% 0);opacity:0}to{translate:0 0;clip-path:inset(0);opacity:1}}
@keyframes hero-for{from{translate:-20px 0;opacity:0}to{translate:0 0;opacity:1}}
@keyframes hero-good{0%{transform:translateY(12px) scale(.96);filter:brightness(.7)}65%{transform:translateY(-2px) scale(1.015);filter:brightness(1.25)}100%{transform:none;filter:brightness(1)}}
@keyframes hero-ticket-settle{0%{transform:translate(28px,18px) rotate(4deg);opacity:0}65%{transform:translate(-2px,-3px) rotate(-.7deg);opacity:1}100%{transform:none;opacity:1}}
@keyframes hero-invitation{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes hero-link-light{0%{transform:scaleX(0);opacity:1}70%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}
@keyframes hero-ribbon-drift{from{transform:translateY(3px) scaleX(1.015)}to{transform:translateY(-6px) scaleX(1.045)}}
@media(max-width:680px){
 .hero-foundation-link{font-size:14px;min-height:46px}
 .hero.hero-intro .hero-ticket picture{animation-delay:.65s}
 .hero.hero-intro .hero-details p{animation-delay:1.05s}
 .hero.hero-intro .hero-foundation-link{animation-delay:1.25s}
}
@media(prefers-reduced-motion:reduce){.hero.hero-intro *, .hero.hero-intro *::after,.hero-waves path{animation:none!important;transition:none!important}}
.motion-off .hero.hero-intro *, .motion-off .hero.hero-intro *::after,.motion-off .hero-waves path{animation:none!important;transition:none!important}
