@import "tailwindcss"; :root { /* Color System - Vibrant Gradients */ --color-primary-start: #3b82f6; /* blue-500 */ --color-primary-end: #06b6d4; /* cyan-500 */ --color-secondary-start: #fb923c; /* orange-400 */ --color-secondary-end: #ec4899; /* pink-500 */ --color-success: #10b981; --color-warning: #f59e0b; --color-error: #ef4444; /* Background */ --background: linear-gradient(135deg, #f9fafb 0%, #f3f4f6 100%); --foreground: #111827; /* Glassmorphism */ --glass-bg: rgba(255, 255, 255, 0.7); --glass-border: rgba(255, 255, 255, 0.18); --glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); /* Shadows */ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); --shadow-glow: 0 0 20px rgba(59, 130, 246, 0.3); /* Spacing */ --spacing-xs: 0.25rem; /* 4px */ --spacing-sm: 0.5rem; /* 8px */ --spacing-md: 1rem; /* 16px */ --spacing-lg: 1.5rem; /* 24px */ --spacing-xl: 2rem; /* 32px */ --spacing-2xl: 3rem; /* 48px */ --spacing-3xl: 4rem; /* 64px */ /* Border Radius */ --radius-sm: 0.5rem; /* 8px */ --radius-md: 0.75rem; /* 12px */ --radius-lg: 1rem; /* 16px */ --radius-xl: 1.5rem; /* 24px */ /* Transitions */ --transition-fast: 150ms ease-out; --transition-base: 250ms ease-out; --transition-slow: 350ms ease-out; } body { background: var(--background); background-attachment: fixed; color: var(--foreground); font-family: var(--font-inter), system-ui, -apple-system, sans-serif; min-height: 100vh; } /* Gradient Background Animation */ @keyframes gradient-shift { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } } .gradient-bg { background: linear-gradient(-45deg, #3b82f6, #06b6d4, #fb923c, #ec4899); background-size: 400% 400%; animation: gradient-shift 15s ease infinite; } /* Glassmorphism Effect */ .glass { background: var(--glass-bg); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid var(--glass-border); box-shadow: var(--glass-shadow); } /* Smooth Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } @keyframes slideIn { from { opacity: 0; transform: translateX(-20px); } to { opacity: 1; transform: translateX(0); } } @keyframes scaleIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } @keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 20px rgba(59, 130, 246, 0.3); } 50% { box-shadow: 0 0 30px rgba(59, 130, 246, 0.5); } } .animate-fade-in { animation: fadeIn 0.5s ease-out; } .animate-slide-in { animation: slideIn 0.4s ease-out; } .animate-scale-in { animation: scaleIn 0.3s ease-out; } @keyframes infoTooltipEnter { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } } .info-tooltip-enter { animation: infoTooltipEnter 0.15s ease-out; } .animate-pulse-glow { animation: pulse-glow 2s ease-in-out infinite; } /* Hover Effects */ .hover-lift { transition: transform var(--transition-base), box-shadow var(--transition-base); } .hover-lift:hover { transform: translateY(-4px); box-shadow: var(--shadow-xl); } .hover-glow { transition: box-shadow var(--transition-base); } .hover-glow:hover { box-shadow: var(--shadow-glow); } /* Gradient Text */ .gradient-text { background: linear-gradient(135deg, var(--color-primary-start), var(--color-primary-end)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .gradient-text-secondary { background: linear-gradient(135deg, var(--color-secondary-start), var(--color-secondary-end)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Scrollbar Styling */ ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 10px; } ::-webkit-scrollbar-thumb { background: linear-gradient(135deg, var(--color-primary-start), var(--color-primary-end)); border-radius: 10px; } ::-webkit-scrollbar-thumb:hover { background: linear-gradient(135deg, var(--color-primary-end), var(--color-primary-start)); } /* Selection */ ::selection { background: rgba(59, 130, 246, 0.3); color: inherit; } /* Shimmer animation for skeleton loaders */ @keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } } .animate-shimmer { animation: shimmer 2s linear infinite; } /* Grid pattern background */ .bg-grid-pattern { background-image: linear-gradient(to right, rgba(0,0,0,0.1) 1px, transparent 1px), linear-gradient(to bottom, rgba(0,0,0,0.1) 1px, transparent 1px); background-size: 20px 20px; } /* Slow spin animation for icons */ @keyframes spin-slow { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .animate-spin-slow { animation: spin-slow 3s linear infinite; } /* Enhanced gradient shift for progress bar */ @keyframes gradient-shift { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }