@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px);max-height:0}to{opacity:1;transform:translateY(0);max-height:1000px}}@keyframes pulse-gentle{0%,to{opacity:.8}50%{opacity:1}}@keyframes zoom-in-95{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes float-up{0%{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes expandIn{0%{opacity:0;transform:scaleY(.8);transform-origin:top}to{opacity:1;transform:scaleY(1)}}.animate-fadeIn{animation:fadeIn .3s ease-out}.animate-slideDown{animation:slideDown .3s ease-out}.animate-pulse-gentle{animation:pulse-gentle 2s infinite}.animate-in{animation-fill-mode:both}.zoom-in-95{animation:zoom-in-95 .3s ease-out}.float-up{animation:float-up .4s ease-out}.animate-slideUp{animation:slideUp .4s ease-out}.animate-expandIn{animation:expandIn .5s ease-out;animation-fill-mode:both}.duration-300{animation-duration:.3s}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-2,.line-clamp-3{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3}.glass{background:hsla(0,0%,100%,.8);border:1px solid hsla(0,0%,100%,.2)}.glass,.glass-dark{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.glass-dark{background:rgba(0,0,0,.1);border:1px solid hsla(0,0%,100%,.1)}.btn-hover-lift{transition:all .2s ease}.btn-hover-lift:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.card-hover{transition:all .3s ease}.card-hover:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.12)}.menu-item{position:relative;transition:all .2s ease}.menu-item:before{content:"";position:absolute;left:0;top:0;height:100%;width:0;background:linear-gradient(90deg,rgba(99,102,241,.1),transparent);transition:width .3s ease}.menu-item:hover:before{width:100%}.spinner{width:20px;height:20px;border:2px solid #f3f3f3;border-top-color:#6366f1;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.safe-area-top{padding-top:env(safe-area-inset-top)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}.safe-area-left{padding-left:env(safe-area-inset-left)}.safe-area-right{padding-right:env(safe-area-inset-right)}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.3) transparent}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background-color:rgba(156,163,175,.3);border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:rgba(156,163,175,.5)}.focus-ring{outline:none;transition:all .2s ease}.focus-ring:focus{box-shadow:0 0 0 3px rgba(99,102,241,.1);border-color:#6366f1}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.touch-feedback{-webkit-tap-highlight-color:rgba(99,102,241,.1)}.touch-feedback:active{transform:scale(.98)}.gradient-text{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.badge-pulse{animation:pulse 2s infinite}.badge-bounce{animation:bounce 1s infinite}.writing-mode-vertical{writing-mode:vertical-rl;text-orientation:mixed}@keyframes bounce{0%,20%,53%,80%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)}40%,43%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-8px,0)}70%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-4px,0)}90%{transform:translate3d(0,-2px,0)}}