@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutDown{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(30px)}}@keyframes slideInLeft{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}@keyframes zoomIn{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.reveal{animation:fadeInUp 0.7s cubic-bezier(0.23,1,0.320,1) both}.reveal-stagger > *{animation:fadeInUp 0.7s cubic-bezier(0.23,1,0.320,1) both}.reveal-stagger > *:nth-child(1){animation-delay:0.1s}.reveal-stagger > *:nth-child(2){animation-delay:0.2s}.reveal-stagger > *:nth-child(3){animation-delay:0.3s}.reveal-stagger > *:nth-child(4){animation-delay:0.4s}.reveal-stagger > *:nth-child(5){animation-delay:0.5s}.reveal-stagger > *:nth-child(n+6){animation-delay:0.6s}.slide-in-left{animation:slideInLeft 0.6s ease-out}.slide-in-right{animation:slideInRight 0.6s ease-out}.btn-pulse{animation:pulse 2s cubic-bezier(0.4,0,0.6,1) infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.7}}.fade-on-hover{transition:opacity 0.3s ease}.fade-on-hover:hover{opacity:0.8}.scale-hover{transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1)}.scale-hover:hover{transform:scale(1.05)}.underline-animate{position:relative;overflow:hidden}.underline-animate::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform 0.3s ease}.underline-animate:hover::after{transform:scaleX(1);transform-origin:left}.color-transition{transition:color 0.25s ease,background-color 0.25s ease,border-color 0.25s ease}.smooth-all{transition:all 0.25s cubic-bezier(0.4,0,0.2,1)}button:active{transform:scale(0.98);transition:transform 0.1s}a:active{opacity:0.8}input:focus,textarea:focus{box-shadow:0 0 0 3px var(--hover-bg-lighter);transition:box-shadow 0.2s ease}.spinner{display:inline-block;width:20px;height:20px;border:3px solid var(--hover-bg-lighter);border-radius:50%;border-top-color:var(--white);animation:spin 0.8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient( 90deg,var(--hover-bg-lighter) 0%,var(--hover-bg-strong) 50%,var(--hover-bg-lighter) 100% );background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.loading-fade{animation:fadeInOut 1.5s ease-in-out infinite}@keyframes fadeInOut{0%,100%{opacity:0.5}50%{opacity:1}}.modal-backdrop{animation:fadeIn 0.3s ease}.modal-content{animation:zoomIn 0.35s cubic-bezier(0.34,1.56,0.64,1)}.modal-slide-up{animation:slideUp 0.4s cubic-bezier(0.34,1.56,0.64,1)}@keyframes slideUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.modal-slide-down{animation:slideDown 0.3s ease forwards}@keyframes slideDown{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(40px)}}.toast{animation:slideInUp 0.4s cubic-bezier(0.34,1.56,0.64,1)}.toast.exit{animation:slideOutDown 0.3s ease forwards}@keyframes slideOutDown{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100px)}}.toast-success{border-left:4px solid var(--success)}.toast-error{border-left:4px solid var(--error)}.toast-warning{border-left:4px solid var(--warning)}.toast-info{border-left:4px solid var(--info)}.form-group{transition:transform 0.2s ease,opacity 0.2s ease}.form-group:focus-within{transform:translateY(-2px)}.form-group.error input,.form-group.error textarea{animation:shake 0.4s ease}@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}.form-input-border{position:relative}.form-input-border::before{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--white);transform:scaleX(0);transform-origin:left;transition:transform 0.3s ease}.form-input-border:focus-within::before{transform:scaleX(1)}.list-animate{display:flex;flex-direction:column;gap:1rem}.list-animate > li,.list-animate > div,.list-animate > article{animation:fadeInUp 0.6s cubic-bezier(0.23,1,0.320,1) both}.list-animate > li:nth-child(1){animation-delay:0s}.list-animate > li:nth-child(2){animation-delay:0.1s}.list-animate > li:nth-child(3){animation-delay:0.2s}.list-animate > li:nth-child(4){animation-delay:0.3s}.list-animate > li:nth-child(5){animation-delay:0.4s}.list-animate > li:nth-child(n+6){animation-delay:0.5s}.parallax{background-attachment:fixed;background-position:center;background-repeat:no-repeat;background-size:cover}html{scroll-behavior:smooth}.fade-on-scroll{opacity:1;transition:opacity 0.6s ease}.fade-on-scroll.fade-out{opacity:0.3}.slide-on-scroll{transform:translateX(0);transition:transform 0.6s cubic-bezier(0.34,1.56,0.64,1)}.slide-on-scroll.slide-left{transform:translateX(-40px)}.slide-on-scroll.slide-right{transform:translateX(40px)}@keyframes float{0%,100%{transform:translateY(0px)}50%{transform:translateY(-10px)}}.float{animation:float 3s ease-in-out infinite}.float:nth-child(2){animation-delay:0.2s}.float:nth-child(3){animation-delay:0.4s}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.gradient-animate{background-size:200% 200%;animation:gradientShift 3s ease infinite}.smooth-hide{opacity:1;visibility:visible;transition:opacity 0.3s ease,visibility 0.3s ease}.smooth-hide.hidden{opacity:0;visibility:hidden}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}.bounce{animation:bounce 0.5s ease-out}@keyframes heartbeat{0%,100%{transform:scale(1)}25%{transform:scale(1.1)}50%{transform:scale(1)}}.heartbeat{animation:heartbeat 1.2s ease-in-out infinite}.focus-ring{outline:2px solid transparent;outline-offset:2px;transition:outline-color 0.25s ease}.focus-ring:focus-visible{outline:2px solid var(--white);outline-offset:4px}.reveal-hidden{opacity:0;transform:translateY(20px);transition:opacity 0.6s ease,transform 0.6s ease}.reveal-hidden.in-view{opacity:1;transform:translateY(0)}