|
|
@import "tailwindcss"; |
|
|
|
|
|
:root { |
|
|
|
|
|
--color-primary-start: #3b82f6; |
|
|
--color-primary-end: #06b6d4; |
|
|
--color-secondary-start: #fb923c; |
|
|
--color-secondary-end: #ec4899; |
|
|
--color-success: #10b981; |
|
|
--color-warning: #f59e0b; |
|
|
--color-error: #ef4444; |
|
|
|
|
|
|
|
|
--background: linear-gradient(135deg, #f9fafb 0%, #f3f4f6 100%); |
|
|
--foreground: #111827; |
|
|
|
|
|
|
|
|
--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); |
|
|
|
|
|
|
|
|
--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-xs: 0.25rem; |
|
|
--spacing-sm: 0.5rem; |
|
|
--spacing-md: 1rem; |
|
|
--spacing-lg: 1.5rem; |
|
|
--spacing-xl: 2rem; |
|
|
--spacing-2xl: 3rem; |
|
|
--spacing-3xl: 4rem; |
|
|
|
|
|
|
|
|
--radius-sm: 0.5rem; |
|
|
--radius-md: 0.75rem; |
|
|
--radius-lg: 1rem; |
|
|
--radius-xl: 1.5rem; |
|
|
|
|
|
|
|
|
--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; |
|
|
} |
|
|
|
|
|
|
|
|
@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; |
|
|
} |
|
|
|
|
|
|
|
|
.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); |
|
|
} |
|
|
|
|
|
|
|
|
@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-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 { |
|
|
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; |
|
|
} |
|
|
|
|
|
|
|
|
::-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 { |
|
|
background: rgba(59, 130, 246, 0.3); |
|
|
color: inherit; |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes shimmer { |
|
|
0% { |
|
|
background-position: -200% 0; |
|
|
} |
|
|
100% { |
|
|
background-position: 200% 0; |
|
|
} |
|
|
} |
|
|
|
|
|
.animate-shimmer { |
|
|
animation: shimmer 2s linear infinite; |
|
|
} |
|
|
|
|
|
|
|
|
.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; |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes spin-slow { |
|
|
from { |
|
|
transform: rotate(0deg); |
|
|
} |
|
|
to { |
|
|
transform: rotate(360deg); |
|
|
} |
|
|
} |
|
|
|
|
|
.animate-spin-slow { |
|
|
animation: spin-slow 3s linear infinite; |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes gradient-shift { |
|
|
0%, 100% { |
|
|
background-position: 0% 50%; |
|
|
} |
|
|
50% { |
|
|
background-position: 100% 50%; |
|
|
} |
|
|
} |
|
|
|