@keyframes pulseUrgency{0%{transform:scale(1)}50%{transform:scale(1.025)}to{transform:scale(1)}}@keyframes fadeExercise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes popMessage{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes arrowFlash{0%{opacity:0;transform:translateY(0) scale(.96)}20%{opacity:.92;transform:translateY(-2px) scale(1)}to{opacity:0;transform:translateY(-11px) scale(1.02)}}@keyframes timerTenVibrate{0%{transform:translateZ(0) rotate(0)}15%{transform:translate3d(-1px,0,0) rotate(-.6deg)}30%{transform:translate3d(2px,0,0) rotate(.9deg)}45%{transform:translate3d(-2px,0,0) rotate(-.9deg)}60%{transform:translate3d(2px,0,0) rotate(.8deg)}75%{transform:translate3d(-1px,0,0) rotate(-.5deg)}to{transform:translateZ(0) rotate(0)}}@keyframes timerThirtyFlash{0%,to{opacity:1;filter:brightness(1)}50%{opacity:.18;filter:brightness(1.8)}}.timer-shell.is-urgent{animation:pulseUrgency .85s ease-in-out infinite}.exercise-panel.is-changing{animation:fadeExercise .32s ease}.status-message.is-visible{animation:popMessage .36s ease}.arrow-deco.is-active{animation:arrowFlash 1.3s ease-out}.timer-wrap.is-ten-vibrate{animation:timerTenVibrate .45s ease-out}.timer-wrap.is-thirty-flash .timer-shell,.timer-wrap.is-thirty-flash .timer-value,.timer-wrap.is-thirty-flash .ring-progress{animation:timerThirtyFlash .3s linear 10}@media (prefers-reduced-motion: reduce){.timer-shell.is-urgent,.exercise-panel.is-changing,.status-message.is-visible,.arrow-deco.is-active,.timer-wrap.is-ten-vibrate,.timer-wrap.is-thirty-flash .timer-shell,.timer-wrap.is-thirty-flash .timer-value,.timer-wrap.is-thirty-flash .ring-progress{animation:none!important}}
