html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@keyframes gradient-shift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.gradient-text{background:linear-gradient(90deg,#10b981,#3b82f6,#8b5cf6,#ec4899,#10b981);background-size:200% 200%;animation:gradient-shift 8s ease infinite}.gradient-text-fast{animation:gradient-shift 4s ease infinite}.card-hover{transition:all .3s cubic-bezier(.4,0,.2,1)}.card-hover:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.card-hover-subtle{transition:all .3s ease}.card-hover-subtle:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1)}.shimmer{animation:shimmer 2s infinite;background:linear-gradient(90deg,#f0f0f0 0,#e0e0e0 20%,#f0f0f0 40%,#f0f0f0);background-size:1000px 100%}.dark .shimmer{background:linear-gradient(90deg,#374151 0,#4b5563 20%,#374151 40%,#374151)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.fade-in{animation:fadeIn .6s ease-out forwards}.fade-in-delay-1{animation:fadeIn .6s ease-out .1s forwards;opacity:0}.fade-in-delay-2{animation:fadeIn .6s ease-out .2s forwards;opacity:0}.fade-in-delay-3{animation:fadeIn .6s ease-out .3s forwards;opacity:0}::-webkit-scrollbar-track{background:#f1f5f9}.dark ::-webkit-scrollbar-track{background:#1e293b}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#10b981,#059669);border:2px solid #f1f5f9}.dark ::-webkit-scrollbar-thumb{border-color:#1e293b}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#059669,#047857)}*{scrollbar-width:thin;scrollbar-color:#10b981 #f1f5f9}.dark *{scrollbar-color:#10b981 #1e293b}:focus-visible{outline:2px solid #10b981;outline-offset:2px;border-radius:4px}a:focus-visible,button:focus-visible{outline:2px solid #10b981;outline-offset:3px}.glass{background:hsla(0,0%,100%,.7);border:1px solid hsla(0,0%,100%,.3)}.dark .glass{background:rgba(30,41,59,.7)}.glow-green{box-shadow:0 0 20px rgba(16,185,129,.3)}.glow-blue{box-shadow:0 0 20px rgba(59,130,246,.3)}.glow-purple{box-shadow:0 0 20px rgba(139,92,246,.3)}.float-slow{animation:float 6s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.bounce{animation:bounce 1s ease-in-out infinite}.spin{animation:spin 1s linear infinite}.spin-slow{animation:spin 3s linear infinite}::selection{background-color:#10b981;color:#fff}::-moz-selection{background-color:#10b981;color:#fff}.button-glow{position:relative;overflow:hidden}.button-glow:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:hsla(0,0%,100%,.3);transform:translate(-50%,-50%);transition:width .6s,height .6s}.button-glow:hover:before{width:300px;height:300px}@keyframes gradient-border{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.gradient-border{background-image:linear-gradient(#fff,#fff),linear-gradient(90deg,#10b981,#3b82f6,#8b5cf6,#ec4899);background-origin:border-box;background-clip:padding-box,border-box;background-size:200% 200%;animation:gradient-border 3s ease infinite}.dark .gradient-border{background-image:linear-gradient(#1e293b,#1e293b),linear-gradient(90deg,#10b981,#3b82f6,#8b5cf6,#ec4899)}@media print{.badge,.floating-action-button,.no-print,button,footer,nav{display:none!important}.page-break{page-break-after:always}*{color:#000!important;background:#fff!important}a[href]:after{content:" (" attr(href) ")"}}.text-gradient-green{background:linear-gradient(90deg,#10b981,#059669);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-gradient-blue{background:linear-gradient(90deg,#3b82f6,#2563eb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-gradient-purple{background:linear-gradient(90deg,#8b5cf6,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.backdrop-blur-sm{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.backdrop-blur-md{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.backdrop-blur-lg{backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.smooth-transition{transition:all .3s cubic-bezier(.4,0,.2,1)}.gpu-accelerated{transform:translateZ(0);-webkit-transform:translateZ(0);will-change:transform}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.dark{color-scheme:dark}.dark img{opacity:.9}.dark img:hover{opacity:1}.gradient-text{background:linear-gradient(135deg,#10b981,#059669);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text-animated{background:linear-gradient(270deg,#10b981,#059669,#0d9488);background-size:600% 600%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientShift 3s ease infinite}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.glow{box-shadow:0 0 20px rgba(16,185,129,.3);transition:box-shadow .3s ease}.glow-strong,.glow:hover{box-shadow:0 0 30px rgba(16,185,129,.5)}.glow-pulse{animation:glowPulse 2s ease-in-out infinite}@keyframes glowPulse{0%,to{box-shadow:0 0 20px rgba(16,185,129,.3)}50%{box-shadow:0 0 40px rgba(16,185,129,.6)}}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.dark ::-webkit-scrollbar-track{background:#1f2937}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#10b981,#059669);border-radius:10px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#059669,#047857);background-clip:padding-box}.smooth-transition{transition:all .3s ease-in-out}.smooth-transition-fast{transition:all .15s ease-in-out}.smooth-transition-slow{transition:all .5s ease-in-out}.ripple-effect{position:relative;overflow:hidden}.ripple-effect .ripple{position:absolute;border-radius:50%;background:hsla(0,0%,100%,.6);transform:scale(0);animation:rippleAnimation .6s ease-out;pointer-events:none}@keyframes rippleAnimation{to{transform:scale(4);opacity:0}}.card-lift{transition:transform .3s ease,box-shadow .3s ease}.card-lift:hover{transform:translateY(-8px);box-shadow:0 20px 40px rgba(0,0,0,.1)}.card-glow{transition:all .3s ease}.card-glow:hover{box-shadow:0 0 30px rgba(16,185,129,.3)}.link-underline{position:relative;display:inline-block}.link-underline:after{content:"";position:absolute;width:100%;height:2px;background:currentColor;left:0;bottom:-2px;transform:scaleX(0);transform-origin:right;transition:transform .3s ease}.link-underline:hover:after{transform:scaleX(1);transform-origin:left}.shimmer{position:relative;overflow:hidden;background:linear-gradient(90deg,#f0f0f0,#f8f8f8 50%,#f0f0f0);background-size:200% 100%;animation:shimmer 1.5s infinite}.dark .shimmer{background:linear-gradient(90deg,#1f2937,#374151 50%,#1f2937);background-size:200% 100%}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.hover-scale{transition:transform .2s ease}.hover-scale:hover{transform:scale(1.05)}.hover-scale-sm:hover{transform:scale(1.02)}.hover-scale-lg:hover{transform:scale(1.1)}.hover-brightness{transition:filter .2s ease}.hover-brightness:hover{filter:brightness(1.1)}.bounce-subtle{animation:bounceSubtle 2s ease-in-out infinite}@keyframes bounceSubtle{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.fade-in{animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.slide-in-up{animation:slideInUp .5s ease-out}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.slide-in-down{animation:slideInDown .5s ease-out}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.slide-in-left{animation:slideInLeft .5s ease-out}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.slide-in-right{animation:slideInRight .5s ease-out}@keyframes slideInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.rotate-slow{animation:rotateSlow 20s linear infinite}@keyframes rotateSlow{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.pulse-subtle{animation:pulseSubtle 2s ease-in-out infinite}@keyframes pulseSubtle{0%,to{opacity:1}50%{opacity:.8}}.float{animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.focus-ring:focus-visible{outline:2px solid #10b981;outline-offset:2px;border-radius:4px}.glass{background:hsla(0,0%,100%,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid hsla(0,0%,100%,.2)}.dark .glass{background:rgba(0,0,0,.2);border:1px solid hsla(0,0%,100%,.1)}.gradient-border{position:relative;border:2px solid transparent;background-clip:padding-box}.gradient-border:before{content:"";position:absolute;inset:0;padding:2px;background:linear-gradient(135deg,#10b981,#059669);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;border-radius:inherit}.text-shadow{text-shadow:0 2px 4px rgba(0,0,0,.1)}.text-shadow-strong{text-shadow:0 4px 8px rgba(0,0,0,.2)}.text-glow{text-shadow:0 0 10px rgba(16,185,129,.5)}.interactive{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .2s ease}.interactive:active{transform:scale(.98)}.spinner{border-radius:50%;border:3px solid rgba(16,185,129,.1);border-top-color:#10b981;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#f8f8f8 50%,#f0f0f0 75%);background-size:200% 100%;animation:skeleton 1.5s infinite}.dark .skeleton{background:linear-gradient(90deg,#1f2937 25%,#374151 50%,#1f2937 75%);background-size:200% 100%}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}@media print{.no-print{display:none!important}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}