@keyframes slideInBounce{0%{opacity:0;transform:translateY(-30px) scale(.8)}60%{opacity:.8;transform:translateY(5px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideOutFade{0%{opacity:1;transform:translateY(0) scale(1)}50%{opacity:.3;transform:translateY(-15px) scale(.95)}to{opacity:0;transform:translateY(-30px) scale(.8)}}@keyframes expandLine{0%{transform:scaleX(0);opacity:0}50%{opacity:.5}to{transform:scaleX(1);opacity:1}}@keyframes collapseLine{0%{transform:scaleX(1);opacity:1}50%{opacity:.5}to{transform:scaleX(0);opacity:0}}@keyframes moveUpSmooth{0%{transform:translateY(0)}50%{transform:translateY(-30px) scale(1.1)}to{transform:translateY(-25px) scale(1)}}@keyframes moveDownSmooth{0%{transform:translateY(-25px)}50%{transform:translateY(5px) scale(1.05)}to{transform:translateY(0) scale(1)}}@keyframes rotateSwitchButton{0%{transform:rotate(0deg) scale(1)}25%{transform:rotate(90deg) scale(1.1)}50%{transform:rotate(180deg) scale(1.15)}75%{transform:rotate(270deg) scale(1.1)}to{transform:rotate(1turn) scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.5)}50%{opacity:.7;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(1.05)}to{opacity:0;transform:scale(.5)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes menu-dropdown-enter{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes menu-dropdown-exit{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-8px) scale(.96)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes draw{50%{fill:rgba(0,0,0,0)}to{fill:#02967b;stroke-dashoffset:0}}@keyframes draw-back{0%{fill:#02967b;stroke-dashoffset:0}10%{fill:rgba(0,0,0,0)}to{fill:none;stroke-dashoffset:2000}}@keyframes hide{to{display:none}}@keyframes fadeInOut{0%{opacity:0;transform:translateY(4px)}20%{opacity:1;transform:translateY(0)}80%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@keyframes pulse{0%{opacity:.8;transform:scale(1)}25%{opacity:1;transform:scale(1.05)}75%{opacity:.8;transform:scale(.95)}to{opacity:.8;transform:scale(1)}}@keyframes flyAway{0%{opacity:0;offset-distance:0;transform:scale(.8) rotate(0deg)}10%{opacity:1;transform:scale(1) rotate(-10deg)}to{opacity:0;offset-distance:100%;transform:scale(.7) rotate(10deg)}}.mobile-side-modal-backdrop{pointer-events:auto;touch-action:none;position:fixed;top:0;inset:0;background:rgba(0,0,0,.18);z-index:50;width:100vw;height:100dvh;display:flex;max-height:100dvh;overflow:hidden;justify-content:flex-end;align-items:stretch}.mobile-side-modal{width:100vw;top:96px;height:calc(100dvh - 96px);background:#f3f3f3;box-shadow:-2px 0 16px rgba(0,0,0,.08);position:relative;border-radius:0;display:flex;flex-direction:column;touch-action:pan-y;max-height:100dvh;overflow-y:auto}