@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-shimmer{animation:shimmer 1.5s linear infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 rgba(139,92,246,.4)}50%{box-shadow:0 0 0 10px rgba(139,92,246,0)}}.animate-pulse-glow{animation:pulse-glow 2s infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:float 3s ease-in-out infinite}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}.animate-shake{animation:shake .5s ease-in-out}@keyframes checkmark{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.animate-checkmark{stroke-dasharray:100;animation:checkmark .5s ease-out forwards}@keyframes slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.animate-slide-up{animation:slide-up .3s ease-out}@keyframes slide-down{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.animate-slide-down{animation:slide-down .3s ease-out}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fade-in-scale{animation:fade-in-scale .2s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fade-in .2s ease-out}@keyframes pop-in{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.animate-pop-in{animation:pop-in .3s ease-out}@keyframes bounce-subtle{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.animate-bounce-subtle{animation:bounce-subtle .6s ease-in-out}@keyframes wiggle{0%,to{transform:rotate(0deg)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.animate-wiggle{animation:wiggle .3s ease-in-out}@keyframes heartbeat{0%,to{transform:scale(1)}25%{transform:scale(1.1)}50%{transform:scale(1)}75%{transform:scale(1.1)}}.animate-heartbeat{animation:heartbeat .8s ease-in-out}@keyframes spin-slow{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-spin-slow{animation:spin-slow 3s linear infinite}@keyframes progress{0%{width:0}to{width:100%}}.animate-progress{animation:progress 1s ease-out forwards}@keyframes gradient-shift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.animate-gradient{background-size:200% 200%;animation:gradient-shift 3s ease infinite}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(4);opacity:0}}.animate-ripple{animation:ripple .6s linear}@keyframes confetti-fall{0%{transform:translateY(-100%) rotate(0deg);opacity:1}to{transform:translateY(100vh) rotate(2turn);opacity:0}}.animate-confetti{animation:confetti-fall 3s ease-in-out forwards}.transition-fast{transition-duration:.15s}.transition-normal{transition-duration:.25s}.transition-slow{transition-duration:.4s}.ease-spring{transition-timing-function:cubic-bezier(.34,1.56,.64,1)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.focus-visible:focus{outline:2px solid hsl(var(--primary));outline-offset:2px}:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px}:focus:not(:focus-visible){outline:none}.skip-link{position:absolute;top:-40px;left:0;background:hsl(var(--primary));color:hsl(var(--primary-foreground));padding:8px 16px;z-index:100;transition:top .2s}.skip-link:focus{top:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.touch-target{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}@media (prefers-contrast:high){:root{--border:0 0% 100%}a,button,input,select,textarea{border:2px solid}}.status-success{color:hsl(var(--success))}.status-error{color:hsl(var(--error))}.status-warning{color:hsl(var(--warning))}.readable-text{letter-spacing:.12em;word-spacing:.16em;line-height:1.5}.pb-safe{padding-bottom:env(safe-area-inset-bottom)}.pt-safe{padding-top:env(safe-area-inset-top)}.px-safe{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}[role=button],a,button{cursor:pointer}[aria-disabled=true],[disabled]{cursor:not-allowed;opacity:.5}[aria-invalid=true]{border-color:hsl(var(--error))}[aria-required=true]:after{content:" *";color:hsl(var(--error))}[aria-busy=true]{cursor:wait}.js-focus-visible :focus:not(.focus-visible){outline:none}.js-focus-visible .focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px}body.reduced-motion *,body.reduced-motion :after,body.reduced-motion :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}body.high-contrast{--border:0 0% 80%}body.high-contrast a,body.high-contrast button,body.high-contrast input,body.high-contrast select,body.high-contrast textarea{border-width:2px}body.high-contrast .text-muted-foreground,body.high-contrast .text-slate-400,body.high-contrast .text-slate-500{color:#b3b3b3!important}body.large-text{font-size:18px}body.large-text h1{font-size:2rem}body.large-text h2{font-size:1.75rem}body.large-text h3{font-size:1.5rem}body.large-text div,body.large-text p,body.large-text span{line-height:1.6}