@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.animate-shimmer{animation:shimmer 2s infinite}.scrollbar-thin::-webkit-scrollbar{width:4px;height:4px}.scrollbar-thumb-slate-700::-webkit-scrollbar-thumb{background:#334155;border-radius:2px}.scrollbar-track-transparent::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar{width:4px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#06b6d440;border-radius:2px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.recharts-tooltip-wrapper{transition:all .15s ease-out}.focus-ring:focus{outline:none;ring:2px;ring-color:rgba(6,182,212,.5)}.text-gradient{background:linear-gradient(135deg,#06b6d4,#10b981);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@keyframes scrollRevealUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes scrollRevealBlur{0%{opacity:0;filter:blur(12px)}to{opacity:1;filter:blur(0)}}@keyframes heroStagger{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.scroll-reveal{opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.scroll-reveal.revealed{opacity:1;transform:translateY(0)}.scroll-reveal-blur{opacity:0;filter:blur(12px);transition:opacity .9s cubic-bezier(.16,1,.3,1),filter .9s cubic-bezier(.16,1,.3,1)}.scroll-reveal-blur.revealed{opacity:1;filter:blur(0)}.hero-stagger{opacity:0;animation:heroStagger .8s cubic-bezier(.16,1,.3,1) forwards}.hero-stagger-1{animation-delay:0ms}.hero-stagger-2{animation-delay:.2s}.hero-stagger-3{animation-delay:.4s}.hero-stagger-4{animation-delay:.6s}.hero-stagger-5{animation-delay:.8s}.font-display{font-family:var(--font-display)}.font-body{font-family:var(--font-body)}.font-voice{font-family:var(--font-voice)}.text-gradient-warm{background:linear-gradient(135deg,var(--coral) 0%,#FF8E53 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
