@keyframes toast-enter{0%{opacity:0;transform:translate(20%) scale(.9) skew(2deg)}60%{opacity:1;transform:translate(-5px) scale(1.02) skew(0)}80%{transform:translate(2px) scale(.99)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes toast-exit{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(100%) scale(.9)}}@keyframes toast-enter-rtl{0%{opacity:0;transform:translate(-20%) scale(.9) skew(-2deg)}60%{opacity:1;transform:translate(5px) scale(1.02) skew(0)}80%{transform:translate(-2px) scale(.99)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes toast-exit-rtl{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(-100%) scale(.9)}}@keyframes mobile-toast-enter{0%{opacity:0;transform:translateY(-40px) scale(.85)}60%{opacity:1;transform:translateY(5px) scale(1.02)}80%{transform:translateY(-2px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes mobile-toast-exit{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-30px) scale(.9)}}@keyframes toast-shrink{0%{width:100%}to{width:0%}}@keyframes icon-success-draw{0%{transform:scale(.5) rotate(-10deg);opacity:0}50%{transform:scale(1.2) rotate(5deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes icon-error-shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-2px)}20%,40%,60%,80%{transform:translate(2px)}}@keyframes icon-warning-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}@keyframes icon-info-bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-3px)}60%{transform:translateY(-1px)}}.toast-enter{animation:toast-enter .5s cubic-bezier(.2,.8,.2,1) forwards}.toast-exit{animation:toast-exit .3s cubic-bezier(.4,0,.2,1) forwards}.toast-enter-rtl{animation:toast-enter-rtl .5s cubic-bezier(.2,.8,.2,1) forwards}.toast-exit-rtl{animation:toast-exit-rtl .3s cubic-bezier(.4,0,.2,1) forwards}.mobile-toast-enter{animation:mobile-toast-enter .5s cubic-bezier(.2,.8,.2,1) forwards}.mobile-toast-exit{animation:mobile-toast-exit .25s cubic-bezier(.4,0,.2,1) forwards}.toast-icon-success{animation:icon-success-draw .5s cubic-bezier(.16,1,.3,1) .1s forwards}.toast-icon-error{animation:icon-error-shake .5s ease-in-out}.toast-icon-warning{animation:icon-warning-pulse 1s ease-in-out infinite}.toast-icon-info{animation:icon-info-bounce .6s cubic-bezier(.16,1,.3,1)}@keyframes bounce-in{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1);opacity:1}}.animate-bounce-in{animation:bounce-in .5s cubic-bezier(.16,1,.3,1) forwards}@keyframes slide-in-top{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-slide-in-top{animation:slide-in-top .4s cubic-bezier(.16,1,.3,1) forwards}@keyframes slide-up{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-slide-up{animation:slide-up .35s cubic-bezier(.16,1,.3,1) forwards}.bg-noise{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat}.animate-shine{animation:shine 4s ease-in-out infinite}@keyframes shine{0%,80%{transform:translate(-100%) rotate(45deg)}to{transform:translate(200%) rotate(45deg)}}@keyframes ts-footer-enter{0%{opacity:0;transform:translateY(100%) scale(.97);filter:blur(6px)}50%{opacity:1;transform:translateY(-4px) scale(1.005);filter:blur(0)}70%{transform:translateY(2px) scale(.998)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.ts-footer{animation:ts-footer-enter .5s cubic-bezier(.22,1,.36,1) forwards;box-shadow:inset 0 1px #ffffff0f,0 -12px 48px -12px #0009,0 -2px 8px -2px hsla(var(--primary) / .05)}.ts-footer:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;opacity:.02;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.ts-desktop-toolbar{position:relative;box-shadow:inset 0 1px #ffffff0d,inset 0 -1px #00000026,0 4px 20px -6px #00000059}.ts-desktop-toolbar:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;opacity:.02;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.ts-desktop-toolbar:after{content:"";position:absolute;bottom:0;left:12%;right:12%;height:1px;border-radius:1px;pointer-events:none;z-index:1;background:linear-gradient(90deg,transparent,hsla(var(--primary) / .2),hsla(280,70%,65%,.12),transparent)}@media(hover:hover)and (pointer:fine){.ts-tool-btn{position:relative;transition:color .2s ease,box-shadow .2s ease,background-color .2s ease}.ts-tool-btn:after{content:"";position:absolute;inset:-1px;border-radius:inherit;background:transparent;transition:box-shadow .25s ease;pointer-events:none;z-index:-1}.ts-tool-btn:hover:after{box-shadow:0 0 12px -2px hsla(var(--primary) / .2)}}.ts-mobile-header{position:relative;box-shadow:inset 0 -1px #ffffff0a,0 4px 24px -8px #0006}.ts-mobile-header:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;opacity:.02;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.ts-tools-dock{position:relative;box-shadow:inset 0 1px #ffffff08,0 2px 12px -4px #00000040}.ts-dock-btn{transition:background-color .15s ease,transform .15s ease}.ts-dock-btn:active{transform:scale(.92)}@keyframes ts-feedback-enter{0%{opacity:0;transform:translateY(12px) scale(.95)}60%{opacity:1;transform:translateY(-2px) scale(1.01)}to{opacity:1;transform:translateY(0) scale(1)}}.ts-feedback-panel{animation:ts-feedback-enter .4s cubic-bezier(.22,1,.36,1) forwards}.ts-feedback-correct{box-shadow:inset 0 0 0 1px #26d96833,0 4px 20px -6px #26d96826}.ts-feedback-incorrect{box-shadow:inset 0 0 0 1px #ef434333,0 4px 20px -6px #ef434326}@keyframes ts-drawer-enter{0%{opacity:0;transform:translateY(100%)}55%{opacity:1;transform:translateY(-2%)}75%{transform:translateY(.8%)}to{opacity:1;transform:translateY(0)}}@keyframes ts-backdrop-enter{0%{opacity:0}to{opacity:1}}.ts-drawer-backdrop{animation:ts-backdrop-enter .25s ease forwards}.ts-drawer-sheet{animation:ts-drawer-enter .45s cubic-bezier(.22,1,.36,1) forwards;box-shadow:inset 0 1px #ffffff0f,0 -16px 48px -12px #0009}.ts-drawer-sheet:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;opacity:.02;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.ts-drag-handle{display:flex;justify-content:center;padding:10px 0 4px}.ts-drag-handle span{width:40px;height:4px;border-radius:4px;background:#ffffff26}@media(hover:hover)and (pointer:fine){.ts-grid-item{transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease}.ts-grid-item:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 6px 16px -4px #0006}}@keyframes ts-grid-item-enter{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.ts-grid-item{opacity:0;animation:ts-grid-item-enter .3s cubic-bezier(.22,1,.36,1) forwards;animation-delay:calc(var(--i, 0) * 25ms + .1s)}@keyframes ts-hint-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ts-hint-card{animation:ts-hint-enter .4s cubic-bezier(.22,1,.36,1) forwards;animation-delay:calc(var(--i, 0) * 80ms)}.ts-solution-card{position:relative;animation:ts-hint-enter .5s cubic-bezier(.22,1,.36,1) forwards;animation-delay:.1s;box-shadow:inset 0 1px #ffffff0a,0 8px 32px -8px #0006}.ts-step-dot{transition:box-shadow .3s ease,transform .2s ease}.ts-step-dot:hover{box-shadow:0 0 10px 2px hsla(var(--primary) / .3)}@keyframes ts-modal-enter{0%{opacity:0;transform:scale(.88) translateY(20px);filter:blur(4px)}60%{opacity:1;transform:scale(1.02) translateY(-4px);filter:blur(0)}80%{transform:scale(.995) translateY(1px)}to{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}@keyframes ts-modal-backdrop{0%{opacity:0;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}}.ts-modal-backdrop{animation:ts-modal-backdrop .4s ease forwards}.ts-completion-modal{animation:ts-modal-enter .5s cubic-bezier(.22,1,.36,1) forwards;box-shadow:inset 0 1px #ffffff0f,0 24px 64px -16px #0009,0 0 0 1px #ffffff0f}@keyframes ts-success-pulse{0%,to{box-shadow:0 0 #26d9684d}50%{box-shadow:0 0 0 10px #26d96800}}.ts-success-icon{animation:ts-success-pulse 2s ease-in-out infinite}@keyframes ts-milestone-enter{0%{opacity:0;transform:translate(-50%,-30px) scale(.85);filter:blur(4px)}50%{opacity:1;transform:translate(-50%,5px) scale(1.03);filter:blur(0)}70%{transform:translate(-50%,-2px) scale(.99)}to{opacity:1;transform:translate(-50%) scale(1);filter:blur(0)}}@keyframes ts-milestone-glow{0%,to{box-shadow:0 10px 40px #ef44444d,0 0 #f9731633}50%{box-shadow:0 10px 40px #ef444473,0 0 0 8px #f9731600}}.ts-milestone{animation:ts-milestone-enter .6s cubic-bezier(.22,1,.36,1) forwards,ts-milestone-glow 2s ease-in-out .6s infinite}@keyframes ts-content-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ts-content-area{animation:ts-content-enter .4s cubic-bezier(.22,1,.36,1) forwards}@keyframes ts-btn-shine{0%{transform:translate(-100%) skew(-15deg)}to{transform:translate(200%) skew(-15deg)}}.ts-btn-shine:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.15),transparent);transform:translate(-100%) skew(-15deg);animation:ts-btn-shine 3s ease-in-out infinite;pointer-events:none}@keyframes ts-nav-pulse{0%,to{border-color:#ffffff1a}50%{border-color:hsla(var(--primary) / .25)}}.ts-navigator{animation:ts-nav-pulse 3s ease-in-out infinite}.ts-progress-bar-wrapper{position:relative;box-shadow:inset 0 1px #ffffff08,0 2px 8px -2px #0003}.ts-drawer-scroll::-webkit-scrollbar{width:4px}.ts-drawer-scroll::-webkit-scrollbar-track{background:transparent}.ts-drawer-scroll::-webkit-scrollbar-thumb{background:hsla(var(--border) / .5);border-radius:4px}.ts-drawer-scroll::-webkit-scrollbar-thumb:hover{background:hsla(var(--text-tertiary) / .5)}
