:root{--neon-red: #FF004C;--reveal-duration: .26s;--reveal-ease: cubic-bezier(.2,.9,.2,1)}@keyframes draw-line{0%{height:0}to{height:100%}}@keyframes svg-stroke{0%{stroke-dashoffset:1000}to{stroke-dashoffset:0}}@keyframes bob{0%{transform:translateY(0)}50%{transform:translateY(-4px)}to{transform:translateY(0)}}@keyframes pulse-marker{0%{box-shadow:0 0 #ff004c00}50%{box-shadow:0 0 6px #ff004c2e}to{box-shadow:0 0 #ff004c00}}.line-draw{position:relative;overflow:visible}.line-draw:after{content:"";position:absolute;left:0;top:0;width:100%;height:0%;background:linear-gradient(180deg,#ff004c2e,#ff004c0f);animation:draw-line .5s ease forwards}.svg-line path,.svg-line line{stroke:#ff044cf2;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1000;stroke-dashoffset:1000;animation:svg-stroke .5s ease forwards}.marker-pulse{animation:pulse-marker 1.8s infinite ease-in-out}.img-bob{animation:bob 2.5s ease-in-out infinite}.card-tilt{transition:transform .22s ease,box-shadow .22s ease;transform-origin:center}.card-tilt:hover,.card-tilt:focus-within{transform:translateY(-4px) rotate(-.8deg) scale(1.02);box-shadow:0 6px 30px #00000059}.sponsor-reveal{opacity:0;transform:translateY(10px) scale(.995)}.sponsor-reveal.visible{opacity:1;transform:translateY(0) scale(1)}.logo-pop{transition:transform .22s var(--reveal-ease),filter .22s var(--reveal-ease)}.logo-pop:hover,.logo-pop:focus{transform:scale(1.08)}.sponsor-ghost{mix-blend-mode:screen;opacity:.06}.schedule-fade{transition:transform var(--reveal-duration) var(--reveal-ease),opacity var(--reveal-duration) var(--reveal-ease),filter var(--reveal-duration) var(--reveal-ease)}.focus-ring:focus{outline:2px solid rgba(255,0,76,.16);outline-offset:3px}.blur-init{filter:blur(2px)}.blur-clear{filter:blur(0)}@keyframes shimmer{0%{background-position:-150% 0}to{background-position:150% 0}}.shimmer{background-image:linear-gradient(90deg,#fff0,#ffffff24,#fff0);background-size:200% 100%;background-repeat:no-repeat;animation:shimmer 1.6s linear infinite;mix-blend-mode:overlay}.width-anim{will-change:width,opacity}
