@keyframes rotate-gradient{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner{position:relative;width:80px;height:80px}.loading-spinner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;padding:3px;background:linear-gradient(45deg,#10b981,#3b82f6,#f59e0b,#10b981);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:rotate-gradient 2s linear infinite}.loading-spinner:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border-radius:50%;background:#0f172ab3}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px #10b9814d}50%{box-shadow:0 0 40px #10b98199}}.glow-excellent{animation:pulse-glow 2s ease-in-out infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-shimmer{position:relative;overflow:hidden}.progress-shimmer:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:shimmer 2s infinite}@keyframes fps-transition-excellent{0%,to{background-color:#10b98133}50%{background-color:#10b9814d}}@keyframes fps-transition-good{0%,to{background-color:#3b82f633}50%{background-color:#3b82f64d}}@keyframes fps-transition-fair{0%,to{background-color:#f59e0b33}50%{background-color:#f59e0b4d}}@keyframes fps-transition-poor{0%,to{background-color:#ef444433}50%{background-color:#ef44444d}}.fps-excellent{animation:fps-transition-excellent 2s ease-in-out infinite}.fps-good{animation:fps-transition-good 2s ease-in-out infinite}.fps-fair{animation:fps-transition-fair 2s ease-in-out infinite}.fps-poor{animation:fps-transition-poor 2s ease-in-out infinite}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(360deg);opacity:0}}.confetti{position:absolute;width:10px;height:10px;background:#10b981;animation:confetti-fall 3s linear}.glass-card{background:#0f172ab3;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0000004d;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.glass-card:hover{background:#0f172acc;box-shadow:0 12px 48px #0006}.button-glow{position:relative;overflow:hidden}.button-glow:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.button-glow:hover:before{width:300px;height:300px}.gradient-text{background:linear-gradient(135deg,#10b981,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.progress-gradient-excellent{background:linear-gradient(90deg,#10b981,#059669)}.progress-gradient-good{background:linear-gradient(90deg,#3b82f6,#2563eb)}.progress-gradient-fair{background:linear-gradient(90deg,#f59e0b,#d97706)}.progress-gradient-poor{background:linear-gradient(90deg,#ef4444,#dc2626)}.graph-gradient{fill:url(#fps-gradient)}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#ffffff4d}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-contrast:high){.glass-card{border:2px solid rgba(255,255,255,.3)}.gradient-text{-webkit-text-fill-color:#10b981}}@media(max-width:768px){.loading-spinner{width:60px;height:60px}.glass-card{padding:24px}}@media(max-width:640px){.loading-spinner{width:48px;height:48px}.glass-card{padding:16px}}
