.fade-out{pointer-events:none;transition:opacity .3s;opacity:0!important}.loading-fade-in{animation:.3s ease-in-out fadeIn}.loading-pulse{animation:1.5s ease-in-out infinite pulse}.loading-slide-down{animation:.4s ease-out slideDown}.project-item-enter{animation:.3s ease-out projectItemEnter}.loading-shimmer{background:linear-gradient(90deg,#0000,#fff3,#0000) 0 0/200% 100%;animation:1.5s infinite shimmer}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes slideDown{0%{opacity:0;transform:translateY(-15px)}to{opacity:1;transform:translateY(0)}}@keyframes projectItemEnter{0%{opacity:0;transform:translate(-10px)scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.project-hover-effect{transition:all .2s ease-in-out}.project-hover-effect:hover{background-color:hsl(var(--accent));transform:translate(2px)}.loading-state-transition{transition:all .3s cubic-bezier(.4,0,.2,1)}.deleting-border{background-color:#ef44441a;animation:.5s ease-in-out deleteShake;position:relative}.deleting-border:before{content:"";pointer-events:none;filter:blur(6px);border:3px solid #ef444480;border-radius:8px;animation:.6s ease-in-out infinite deleteGlowPulse;position:absolute;inset:-4px}.deleting-border:after{content:"";pointer-events:none;border:2px solid #ef4444;border-radius:6px;animation:1s ease-in-out infinite deleteSnakeBorder;position:absolute;inset:0;box-shadow:0 0 15px #ef4444b3,0 0 25px #ef444480,inset 0 0 15px #ef444433}@keyframes deleteShake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-2px)}20%,40%,60%,80%{transform:translate(2px)}}@keyframes deleteGlowPulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}@keyframes deleteSnakeBorder{0%{clip-path:inset(0 100% 100% 0)}25%{clip-path:inset(0 0 100%)}50%{clip-path:inset(0)}75%{clip-path:inset(0 0 0 100%)}to{clip-path:inset(100% 0 0 100%)}}
.fade-slide-enter{opacity:0;transform:translate(-32px)}.fade-slide-enter-active{opacity:1;transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);transform:translate(0)}.fade-slide-exit{opacity:1;transform:translate(0)}.fade-slide-exit-active{opacity:0;transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);transform:translate(32px)}.fade-slide-stagger{transition-delay:var(--stagger-delay,0s);transition-property:opacity,transform}