.custom-scrollbar{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) rgba(255,255,255,.05)}.custom-scrollbar::-webkit-scrollbar{width:8px;height:8px}.custom-scrollbar::-webkit-scrollbar-track{background:#ffffff0d;border-radius:4px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.custom-scrollbar::-webkit-scrollbar-corner{background:transparent}.glass{background:linear-gradient(135deg,#2c2c2ecc,#1c1c1ee6);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1)}.glass-light{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.15)}.glass-dark{background:linear-gradient(135deg,#0009,#000c);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.08)}.spring-transition{transition-timing-function:cubic-bezier(.32,.72,0,1)}.btn-hover{transition:all .3s cubic-bezier(.32,.72,0,1)}.btn-hover:hover{transform:scale(1.05)}.btn-hover:active{transform:scale(.95)}.focus-ring:focus{outline:none;box-shadow:0 0 0 2px #0a84ff80}.gradient-text{background:linear-gradient(135deg,#0a84ff,#30d158);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glow-blue{box-shadow:0 0 20px #0a84ff4d}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}.glow-green{box-shadow:0 0 20px #30d1584d}.glow-orange{box-shadow:0 0 20px #ff9f0a4d}.card-hover{transition:all .3s cubic-bezier(.32,.72,0,1)}.card-hover:hover{transform:translateY(-2px);box-shadow:0 10px 40px -10px #00000080}.input-glass{background:#0000004d;border:1px solid rgba(255,255,255,.08);transition:all .3s cubic-bezier(.32,.72,0,1)}.input-glass:focus{border-color:#0a84ff80;box-shadow:0 0 0 3px #0a84ff1a}.modal-backdrop{background:#000000b3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.tooltip{opacity:0;transform:translate(-4px) translateY(-50%);transition:all .3s cubic-bezier(.32,.72,0,1);pointer-events:none}.group:hover .tooltip{opacity:1;transform:translate(0) translateY(-50%)}.spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .3s cubic-bezier(.32,.72,0,1)}@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.slide-in-left{animation:slideInFromLeft .5s cubic-bezier(.32,.72,0,1)}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.scale-in{animation:scaleIn .3s cubic-bezier(.32,.72,0,1)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer{background:linear-gradient(90deg,#fff0,#ffffff1a,#fff0);background-size:200% 100%;animation:shimmer 2s infinite}@keyframes blink{0%,90%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}.animate-blink{animation:blink 3s infinite}@keyframes write{0%,to{transform:rotate(12deg) translateY(0)}50%{transform:rotate(15deg) translateY(-2px)}}.animate-write{animation:write .5s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.animate-float{animation:float 2s ease-in-out infinite}@keyframes think{0%,to{opacity:0;transform:translateY(5px)}50%{opacity:1;transform:translateY(0)}}.animate-think{animation:think 2s ease-in-out infinite}@keyframes selectionBorderFlow{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.animate-marquee{animation:marquee 30s linear infinite}.animate-marquee:hover{animation-play-state:paused}@keyframes pulseGlow{0%{opacity:.3;transform:scale(1)}50%{opacity:.7;transform:scale(1.02)}to{opacity:.3;transform:scale(1)}}@keyframes pulseRing{0%{transform:scale(.8);opacity:.6}to{transform:scale(1.4);opacity:0}}@keyframes pulseSweep{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulseFade{0%{opacity:.15}50%{opacity:.4}to{opacity:.15}}
