/* First-version layout + restrained motion. No layout dimensions are changed. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
/* Pending states only exist while the JS observer is successfully watching. */
html.soft-motion .soft-pending{opacity:0;translate:0 14px}
html.soft-motion .soft-pending:focus-within{opacity:1;translate:none}
.ambient-loop{animation:ives-breathe 10s ease-in-out infinite;animation-play-state:paused}
.hero-wire{animation-duration:130s}
.band-wire{animation-duration:145s}
.loop,.marquee-track{animation-play-state:paused}
.soft-inview .loop,.soft-inview .marquee-track,.soft-inview .ambient-loop{animation-play-state:running}
.marquee-track{animation-duration:45s}
.volunteer-card .ambient-loop{animation-duration:12s;animation-delay:-4s}
@keyframes ives-breathe{0%,100%{translate:0 0}50%{translate:0 -5px}}
@media(hover:hover) and (pointer:fine){
 .battle-card,.pass-card{transition:translate .28s var(--motion-ease),box-shadow .28s ease}
 .battle-card:hover,.pass-card:hover{translate:0 -3px;box-shadow:0 9px 20px -12px #2522463a}
 .day{transition:border-color .25s,background .25s,box-shadow .25s}
 .day:hover{border-color:var(--blue);box-shadow:0 6px 18px -14px #4c40ff66}
 .primary-btn,.volunteer-cta,.waitlist-open,.wait-success-cta{transition:background .22s,transform .28s var(--motion-ease),box-shadow .28s}
 .primary-btn:hover,.volunteer-cta:hover,.waitlist-open:hover,.wait-success-cta:hover{transform:translateY(-2px);box-shadow:0 7px 16px -10px #4c40ff80}
 .btn-arrow{transition:translate .28s var(--motion-ease)}
 a:hover>.btn-arrow{translate:2px -1px}
 .pass-link>span:last-child,.text-link>span[aria-hidden]{transition:translate .28s var(--motion-ease)}
 .pass-link:hover>span:last-child{translate:2px -2px}
 .text-link:hover>span[aria-hidden]{translate:0 2px}
 .role-item summary>span{transition:transform .25s var(--motion-ease)}
}
.waitlist-form input,.waitlist-form select{transition:border-color .2s,box-shadow .2s}
.waitlist-form input:focus,.waitlist-form select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #4c40ff0a}
.motion-paused .ambient-loop,.tab-hidden .ambient-loop{animation-play-state:paused!important}
.motion-paused .soft-pending{opacity:1!important;translate:none!important}
.motion-paused .battle-card,.motion-paused .pass-card,.motion-paused .btn-arrow,.motion-paused .text-link>span[aria-hidden],.motion-paused .pass-link>span:last-child{translate:none!important;transition:none!important}
@media(max-width:700px){.ambient-loop{animation-name:none}html.soft-motion .soft-pending{translate:0 9px}}
@media(prefers-reduced-motion:reduce){.soft-pending{opacity:1!important;translate:none!important}.ambient-loop,.loop,.marquee-track{animation:none!important}.battle-card,.pass-card,.btn-arrow{translate:none!important;transition:none!important}}
@media print{.soft-pending{opacity:1!important;translate:none!important}.ambient-loop{animation:none!important}}
