/* HEC Fankurve: Klasse hec-fan-button an einen bestehenden Link oder Button setzen. */
.hec-fan-button{position:relative;isolation:isolate;overflow:visible!important;--hec-blue:#104f88;--hec-red:#ed0024;--hec-white:#fff}
.hec-fan-button .hec-face{position:absolute;inset:0;background:var(--hec-blue);border:2px solid var(--hec-white);z-index:-1;pointer-events:none;transition:background .25s,box-shadow .25s}
.hec-fan-button:is(:hover,:focus-visible,.hec-preview) .hec-face{background:#1564a7;box-shadow:0 0 28px #5dd6ff55}
.hec-crowd{position:absolute;left:0;bottom:calc(100% - 2px);width:100%;height:auto;aspect-ratio:420/136;overflow:visible;pointer-events:none;z-index:-2}
.hec-person{opacity:0;transform:translateY(72px);transition:transform .46s cubic-bezier(.2,.8,.3,1),opacity .2s;transition-delay:0s}
.hec-fan-button:is(:hover,:focus-visible,.hec-preview) .hec-person{opacity:1;transform:translateY(0);transition-delay:var(--enter)}
.hec-jump,.hec-arm,.hec-sign,.hec-smoke,.hec-flame{animation-play-state:paused!important}
.hec-fan-button:is(:hover,:focus-visible,.hec-preview) :is(.hec-jump,.hec-arm,.hec-sign,.hec-smoke,.hec-flame){animation-play-state:running!important}
.hec-jump{animation:hec-jump var(--tempo) ease-in-out infinite alternate;animation-delay:var(--phase);transform-box:fill-box;transform-origin:center bottom}
.hec-arm{animation:hec-wave .65s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center bottom}
.hec-sign{animation:hec-sign 1.1s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center bottom}
.hec-smoke{opacity:0;animation:hec-smoke 3.2s ease-out infinite;animation-delay:var(--smoke-delay)}
.hec-flame{animation:hec-flame .24s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}
@keyframes hec-jump{to{transform:translateY(-6px) rotate(3deg)}}
@keyframes hec-wave{from{transform:rotate(-9deg)}to{transform:rotate(12deg)}}
@keyframes hec-sign{from{transform:rotate(-7deg)}to{transform:rotate(6deg)}}
@keyframes hec-smoke{0%{opacity:0;transform:translate(0,0) scale(.55)}20%{opacity:.28}100%{opacity:0;transform:translate(28px,-64px) scale(2.4)}}
@keyframes hec-flame{to{transform:scale(.78);opacity:.65}}
@media(prefers-reduced-motion:reduce){.hec-fan-button *{animation:none!important;transition:none!important}.hec-smoke{display:none}.hec-person{transform:translateY(0)}}

/* UIkit/YOOtheme: vorhandene Button-Typografie und Größe bleiben erhalten. */
a.uk-button.hec-fan-button,button.uk-button.hec-fan-button{overflow:visible!important}

/* Touch-Geräte: Fankurve dauerhaft sichtbar, Ticket-Link bleibt direkt nutzbar. */
@media (hover: none) and (pointer: coarse){
 .hec-fan-button .hec-person{opacity:1;transform:translateY(0);transition-delay:0s}
 .hec-fan-button :is(.hec-jump,.hec-arm,.hec-sign,.hec-smoke,.hec-flame){animation-play-state:running!important}
}
/* Bewegungspräferenz gilt auch für die dauerhaft sichtbare mobile Fankurve. */
@media(prefers-reduced-motion:reduce){
 .hec-fan-button :is(.hec-jump,.hec-arm,.hec-sign,.hec-smoke,.hec-flame){animation:none!important}
 .hec-fan-button .hec-smoke{display:none}
}

/* Schulen, Eislaufen, IceKids: gemeinsame Bewegungssprache. */
.hec-travel,.hec-step,.hec-tumble,.hec-leg-a,.hec-leg-b,.hec-small-arm,.hec-puck{animation-play-state:paused!important}
.hec-fan-button:is(:hover,:focus-visible,.hec-preview) :is(.hec-travel,.hec-step,.hec-tumble,.hec-leg-a,.hec-leg-b,.hec-small-arm,.hec-puck){animation-play-state:running!important}
.hec-travel{animation:hec-stroll var(--duration,8s) ease-in-out infinite alternate;animation-delay:var(--offset,0s)}
.hec-skate-travel{animation-name:hec-glide}
.hec-kids-travel{animation-name:hec-rookie}
.hec-step{animation:hec-step .55s ease-in-out infinite alternate;animation-delay:var(--offset,0s)}
.hec-skate-button .hec-step{animation:hec-lean 2s ease-in-out infinite alternate}
.hec-leg-a,.hec-leg-b,.hec-small-arm{transform-box:fill-box;transform-origin:top center;animation:hec-stride .55s ease-in-out infinite alternate}
.hec-leg-b{animation-direction:alternate-reverse}
.hec-small-arm{animation-duration:.7s}
.hec-skate-button .hec-leg-a,.hec-skate-button .hec-leg-b{animation-duration:1.3s}
.hec-tumble{animation:hec-tumble 7s ease-in-out infinite;transform-origin:0 23px}
.hec-puck{animation:hec-puck 4.8s ease-in-out infinite alternate}
@keyframes hec-stroll{from{transform:translateX(-14px)}to{transform:translateX(14px)}}
@keyframes hec-glide{0%{transform:translateX(-18px) skewX(-4deg)}50%{transform:translateX(12px) skewX(2deg)}100%{transform:translateX(-8px) skewX(-3deg)}}
@keyframes hec-rookie{0%,100%{transform:translateX(-8px)}50%{transform:translateX(9px)}}
@keyframes hec-step{to{transform:translateY(-2px)}}
@keyframes hec-stride{from{transform:rotate(-13deg)}to{transform:rotate(13deg)}}
@keyframes hec-lean{to{transform:rotate(5deg) translateY(-2px)}}
@keyframes hec-tumble{0%,24%,86%,100%{transform:rotate(0) translateY(0)}33%,59%{transform:translateY(4px) rotate(-62deg)}70%{transform:translateY(2px) rotate(-25deg)}}
@keyframes hec-puck{0%{transform:translateX(-70px)}55%{transform:translateX(24px)}100%{transform:translateX(100px)}}
@media(hover:none) and (pointer:coarse){.hec-fan-button :is(.hec-travel,.hec-step,.hec-tumble,.hec-leg-a,.hec-leg-b,.hec-small-arm,.hec-puck){animation-play-state:running!important}}
@media(prefers-reduced-motion:reduce){.hec-fan-button *{animation:none!important;transition:none!important}}
