.page-transition-enter{opacity:0;transform:translateY(20px)}.page-transition-enter-active{opacity:1;transform:translateY(0);transition:opacity .3s ease,transform .3s ease}.page-transition-exit{opacity:1;transform:translateY(0)}.page-transition-exit-active{opacity:0;transform:translateY(-20px);transition:opacity .3s ease,transform .3s ease}.focus-indicator{position:relative}.focus-indicator:focus:before{content:"";position:absolute;inset:-3px;border:2px solid var(--accent-primary);border-radius:6px;pointer-events:none;animation:focus-pulse 1.5s ease-in-out infinite}@keyframes focus-pulse{0%,to{opacity:1}50%{opacity:.5}}.hover-lift{transition:transform .3s cubic-bezier(.4,0,.2,1)}.hover-lift:hover{transform:translateY(-8px)}.hover-scale{transition:transform .3s cubic-bezier(.4,0,.2,1)}.hover-scale:hover{transform:scale(1.05)}.loading-dots{display:inline-flex;align-items:center;gap:.25rem}.loading-dots:after{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent-primary);animation:loading-dots 1.4s infinite ease-in-out both}.loading-dots:before{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:var(--accent-primary);animation:loading-dots 1.4s infinite ease-in-out both .2s}.loading-dots span{width:6px;height:6px;border-radius:50%;background:var(--accent-primary);animation:loading-dots 1.4s infinite ease-in-out both .4s}@keyframes loading-dots{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.scroll-progress{position:fixed;top:0;left:0;width:0%;height:3px;background:var(--gradient-primary);z-index:9999;transition:width .1s ease-out}.notification{position:fixed;top:20px;right:20px;background:var(--bg-primary);border:2px solid var(--accent-primary);border-radius:12px;padding:1rem 1.5rem;box-shadow:var(--shadow-xl);z-index:10000;max-width:300px;animation:slide-in .3s ease-out}.notification.success{border-color:var(--accent-success)}.notification.warning{border-color:var(--accent-warning)}.notification.error{border-color:var(--accent-danger)}@keyframes slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slide-out{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.achievement-unlock{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-primary);border:3px solid var(--accent-primary);border-radius:20px;padding:2rem;box-shadow:var(--shadow-2xl);z-index:10001;text-align:center;min-width:350px;animation:achievement-pop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes achievement-pop{0%{transform:translate(-50%,-50%) scale(0) rotate(-10deg);opacity:0}50%{transform:translate(-50%,-50%) scale(1.1) rotate(5deg)}to{transform:translate(-50%,-50%) scale(1) rotate(0);opacity:1}}.btn-feedback{position:relative;overflow:hidden}.btn-feedback:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff4d;border-radius:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn-feedback:active:after{width:300px;height:300px}.data-visualization{position:relative;overflow:hidden;border-radius:12px}.data-visualization:before{content:"";position:absolute;inset:-2px;background:var(--gradient-primary);border-radius:14px;z-index:-1;opacity:.1}.custom-checkbox{position:relative;display:inline-block;width:20px;height:20px;margin-right:.5rem}.custom-checkbox input{opacity:0;width:0;height:0}.custom-checkbox .checkmark{position:absolute;top:0;left:0;height:20px;width:20px;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:4px;transition:all .3s ease}.custom-checkbox input:checked~.checkmark{background:var(--accent-primary);border-color:var(--accent-primary)}.custom-checkbox .checkmark:after{content:"";position:absolute;display:none;left:6px;top:2px;width:6px;height:12px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);transition:all .3s ease}.custom-checkbox input:checked~.checkmark:after{display:block}.lazy-image{filter:blur(5px);transition:filter .3s ease}.lazy-image.loaded{filter:blur(0)}.form-control.error{border-color:var(--accent-danger);box-shadow:0 0 0 3px #ef44441a}.form-control.success{border-color:var(--accent-success);box-shadow:0 0 0 3px #10b9811a}.visually-hidden-focusable:focus{position:static;width:auto;height:auto;clip:auto}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
