/* Gradient text */
.gradient-text{background:linear-gradient(135deg,#34d399,#059669);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

/* Ticker */
.ticker-wrap{overflow:hidden;width:100%;}
.ticker{display:flex;animation:ticker 30s linear infinite;width:max-content;}
.ticker:hover{animation-play-state:paused;}
@keyframes ticker{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

/* Hero glow */
.hero-glow{position:absolute;width:600px;height:600px;background:radial-gradient(circle,rgba(52,211,153,0.08) 0%,transparent 70%);border-radius:50%;pointer-events:none;}

/* Grid pattern */
.grid-pattern{background-image:linear-gradient(rgba(255,255,255,0.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.02) 1px,transparent 1px);background-size:60px 60px;}

/* Scrollbar */
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:#374151;border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:#4b5563;}

/* Live pulse */
.live-pulse{animation:livePulse 2s ease-in-out infinite;}
@keyframes livePulse{0%,100%{opacity:1;}50%{opacity:0.5;}}

/* Loading dots */
.loading-dots span{animation:dotBlink 1.4s infinite both;}
.loading-dots span:nth-child(2){animation-delay:0.2s;}
.loading-dots span:nth-child(3){animation-delay:0.4s;}
@keyframes dotBlink{0%,80%,100%{opacity:0.2;}40%{opacity:1;}}

/* Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(4px);z-index:100;display:none;align-items:center;justify-content:center;}
.modal-overlay.active{display:flex;}

/* Bottom nav spacer */
@media(max-width:767px){.pb-safe{padding-bottom:5rem;}}

/* Stat bars */
.stat-bar{transition:width 0.8s ease-out;}

/* Card hover */
.card-hover{transition:all 0.2s ease;}
.card-hover:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(0,0,0,0.3);}

/* Confidence badge animations */
.conf-badge{transition:all 0.3s ease;}

/* Prediction card glow */
.pred-glow-high{box-shadow:0 0 20px rgba(52,211,153,0.1);}
.pred-glow-mid{box-shadow:0 0 20px rgba(245,158,11,0.1);}

/* Blurred content for free users */
.blur-content{filter:blur(6px);pointer-events:none;user-select:none;}

/* Sidebar nav */
.sidebar-link{transition:all 0.15s ease;}
.sidebar-link.active{background:rgba(52,211,153,0.1);color:#34d399;border-color:#34d399;}
