@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-shimmer{background:linear-gradient(90deg,#fff0 0%,#fff3 20%,#ffffff80 60%,#fff0) 0 0/200% 100%;animation:2s infinite shimmer}.animate-fadeIn{animation:.3s ease-out fadeIn}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:contain}.cv-auto{content-visibility:auto;contain-intrinsic-size:auto 400px}.cv-auto-sm{content-visibility:auto;contain-intrinsic-size:auto 200px}.cv-auto-lg{content-visibility:auto;contain-intrinsic-size:auto 600px}.contain-item{contain:layout style paint}.gpu-scroll{-webkit-overflow-scrolling:touch;will-change:scroll-position;transform:translateZ(0)}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.custom-scrollbar::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar::-webkit-scrollbar-track{background:0 0}.custom-scrollbar::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#0000004d}.glass{-webkit-backdrop-filter:blur(10px);background:#fffc}.tap-feedback{transition:transform .1s}.tap-feedback:active{transform:scale(.95)}.skeleton{background:linear-gradient(90deg,#f0f0f0 0%,#e0e0e0 50%,#f0f0f0 100%) 0 0/200% 100%;animation:1.5s infinite shimmer}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:3s ease-in-out infinite float}@keyframes ripple{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(4)}}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";background:#ffffff80;border-radius:50%;width:0;height:0;animation:.6s ease-out ripple;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (hover:none){.card-hover:hover{transform:none}.tap-feedback:active{transform:scale(.93)}}.no-select{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}@supports (padding:max(0px)){.safe-top{padding-top:max(env(safe-area-inset-top),1rem)}.safe-bottom{padding-bottom:max(env(safe-area-inset-bottom),1rem)}.safe-left{padding-left:max(env(safe-area-inset-left),1rem)}.safe-right{padding-right:max(env(safe-area-inset-right),1rem)}}.page-transition{animation:.3s ease-out fadeIn}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin-slow{animation:3s linear infinite spin}@keyframes progress{0%{transform:translate(-100%)}to{transform:translate(100%)}}.animate-progress{animation:1.5s ease-in-out infinite progress}@keyframes followBounce{0%{transform:scale(1)}25%{transform:scale(.9)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes bookmarkBounce{0%{transform:scale(1)}15%{transform:scale(1.3)}40%{transform:scale(.85)}65%{transform:scale(1.08)}to{transform:scale(1.05)}}@keyframes imageFadeIn{0%{opacity:0}to{opacity:1}}.animate-image-fade-in{animation:.3s ease-out forwards imageFadeIn}
