Spaces:
Sleeping
Sleeping
| @tailwind base; | |
| @tailwind components; | |
| @tailwind utilities; | |
| * { margin: 0; padding: 0; box-sizing: border-box; } | |
| body { | |
| font-family: 'Inter', system-ui, -apple-system, sans-serif; | |
| -webkit-font-smoothing: antialiased; | |
| -moz-osx-font-smoothing: grayscale; | |
| background: #0F172A; | |
| color: #F8FAFC; | |
| /* GPU acceleration for smooth scrolling */ | |
| -webkit-overflow-scrolling: touch; | |
| } | |
| /* βββ Performance: GPU-accelerated transforms βββββββββββββββββββββββββββββ */ | |
| .glass, | |
| .card, | |
| [class*="animate-"] { | |
| will-change: transform, opacity; | |
| transform: translateZ(0); | |
| backface-visibility: hidden; | |
| } | |
| /* βββ MapLibre popup overrides β dark premium theme ββββββββββββββββββββββββ */ | |
| .maplibregl-popup-content { | |
| padding: 0 ; | |
| border-radius: 16px ; | |
| box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(51, 65, 85, 0.4) ; | |
| overflow: hidden; | |
| max-width: 360px ; | |
| background: #1E293B ; | |
| border: 1px solid #334155 ; | |
| } | |
| .maplibregl-popup-close-button { | |
| font-size: 18px; | |
| padding: 4px 8px; | |
| color: #94A3B8; | |
| z-index: 10; | |
| right: 4px ; | |
| top: 4px ; | |
| transition: all 0.15s ease; | |
| } | |
| .maplibregl-popup-close-button:hover { | |
| color: #F8FAFC; | |
| background: #334155; | |
| border-radius: 6px; | |
| } | |
| .maplibregl-popup-tip { display: none; } | |
| .maplibregl-ctrl-group { | |
| background: #1E293B ; | |
| border: 1px solid #334155 ; | |
| border-radius: 12px ; | |
| overflow: hidden; | |
| box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) ; | |
| } | |
| .maplibregl-ctrl-group button { | |
| background: #1E293B ; | |
| border-color: #334155 ; | |
| transition: background 0.15s ease; | |
| } | |
| .maplibregl-ctrl-group button:hover { | |
| background: #334155 ; | |
| } | |
| .maplibregl-ctrl-group button .maplibregl-ctrl-icon { | |
| filter: invert(1); | |
| } | |
| /* βββ Custom scrollbar β thin & subtle βββββββββββββββββββββββββββββββββββββ */ | |
| ::-webkit-scrollbar { width: 4px; } | |
| ::-webkit-scrollbar-track { background: transparent; } | |
| ::-webkit-scrollbar-thumb { background: #475569; border-radius: 4px; } | |
| ::-webkit-scrollbar-thumb:hover { background: #64748B; } | |
| .scrollbar-thin::-webkit-scrollbar { width: 3px; } | |
| /* βββ Animations β 60fps GPU-accelerated βββββββββββββββββββββββββββββββββββ */ | |
| @keyframes slideInLeft { | |
| from { transform: translate3d(-100%, 0, 0); opacity: 0; } | |
| to { transform: translate3d(0, 0, 0); opacity: 1; } | |
| } | |
| @keyframes slideInRight { | |
| from { transform: translate3d(100%, 0, 0); opacity: 0; } | |
| to { transform: translate3d(0, 0, 0); opacity: 1; } | |
| } | |
| @keyframes fadeIn { | |
| from { opacity: 0; transform: translate3d(0, 8px, 0); } | |
| to { opacity: 1; transform: translate3d(0, 0, 0); } | |
| } | |
| @keyframes slideUp { | |
| from { transform: translate3d(0, 100%, 0); opacity: 0; } | |
| to { transform: translate3d(0, 0, 0); opacity: 1; } | |
| } | |
| @keyframes scaleIn { | |
| from { transform: scale(0.95); opacity: 0; } | |
| to { transform: scale(1); opacity: 1; } | |
| } | |
| @keyframes shimmer { | |
| 0% { background-position: -200% 0; } | |
| 100% { background-position: 200% 0; } | |
| } | |
| .animate-slide-in-left { animation: slideInLeft 0.25s cubic-bezier(0.16, 1, 0.3, 1); } | |
| .animate-slide-in-right { animation: slideInRight 0.25s cubic-bezier(0.16, 1, 0.3, 1); } | |
| .animate-fade-in { animation: fadeIn 0.2s ease-out; } | |
| .animate-slide-up { animation: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1); } | |
| .animate-scale-in { animation: scaleIn 0.2s cubic-bezier(0.16, 1, 0.3, 1); } | |
| /* βββ Glass panel β premium flat dark ββββββββββββββββββββββββββββββββββββββ */ | |
| .glass { | |
| background: rgba(30, 41, 59, 0.95); | |
| border: 1px solid rgba(51, 65, 85, 0.6); | |
| backdrop-filter: none; /* No blur = no lag */ | |
| } | |
| /* βββ Interactive micro-effects ββββββββββββββββββββββββββββββββββββββββββββ */ | |
| button { | |
| transition: transform 0.1s ease, background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease; | |
| } | |
| button:active:not(:disabled) { | |
| transform: scale(0.97); | |
| } | |
| /* Hover lift for cards */ | |
| .card-hover { | |
| transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s ease; | |
| } | |
| .card-hover:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 8px 25px -5px rgba(0, 0, 0, 0.3); | |
| } | |
| /* βββ Brand colors βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .gradient-text { | |
| color: #F97316; | |
| } | |
| .unicorn-badge { | |
| color: #F97316; | |
| font-weight: 700; | |
| } | |
| /* βββ Utility classes ββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .line-clamp-2 { | |
| display: -webkit-box; | |
| -webkit-line-clamp: 2; | |
| -webkit-box-orient: vertical; | |
| overflow: hidden; | |
| } | |
| .line-clamp-3 { | |
| display: -webkit-box; | |
| -webkit-line-clamp: 3; | |
| -webkit-box-orient: vertical; | |
| overflow: hidden; | |
| } | |
| /* βββ Skeleton loading βββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .skeleton { | |
| background: linear-gradient(90deg, #1E293B 25%, #334155 50%, #1E293B 75%); | |
| background-size: 200% 100%; | |
| animation: shimmer 1.5s infinite; | |
| border-radius: 8px; | |
| } | |
| /* βββ Focus ring for accessibility βββββββββββββββββββββββββββββββββββββββββ */ | |
| :focus-visible { | |
| outline: 2px solid #F97316; | |
| outline-offset: 2px; | |
| border-radius: 4px; | |
| } | |
| /* βββ Reduce motion for accessibility ββββββββββββββββββββββββββββββββββββββ */ | |
| @media (prefers-reduced-motion: reduce) { | |
| *, *::before, *::after { | |
| animation-duration: 0.01ms ; | |
| animation-iteration-count: 1 ; | |
| transition-duration: 0.01ms ; | |
| } | |
| } | |