File size: 1,971 Bytes
47b056e 16533c4 47b056e 16533c4 47b056e 16533c4 47b056e 16533c4 47b056e 16533c4 47b056e 16533c4 47b056e 16533c4 47b056e 16533c4 47b056e 16533c4 47b056e 16533c4 47b056e 16533c4 47b056e 16533c4 47b056e 16533c4 47b056e 16533c4 47b056e 16533c4 47b056e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | @tailwind base;
@tailwind components;
@tailwind utilities;
/* ββ Base Reset ββ */
*, *::before, *::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
scroll-behavior: smooth;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
body {
background-color: #0a0c10;
color: #f8fafc;
font-family: 'Inter', system-ui, sans-serif;
min-height: 100vh;
}
/* ββ Custom scrollbar ββ */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
background: #0f1218;
}
::-webkit-scrollbar-thumb {
background: #2e3847;
border-radius: 999px;
}
::-webkit-scrollbar-thumb:hover {
background: #3d4d60;
}
/* ββ Selection ββ */
::selection {
background: rgba(26, 107, 255, 0.35);
color: #fff;
}
/* ββ Focus visible ββ */
:focus-visible {
outline: 2px solid rgba(26, 107, 255, 0.6);
outline-offset: 2px;
border-radius: 4px;
}
/* ββ Utility classes ββ */
@layer utilities {
.text-balance {
text-wrap: balance;
}
.glow-brand {
box-shadow: 0 0 30px rgba(26, 107, 255, 0.25);
}
.glow-emerald {
box-shadow: 0 0 30px rgba(16, 185, 129, 0.2);
}
.shimmer {
background: linear-gradient(
90deg,
rgba(255, 255, 255, 0) 0%,
rgba(255, 255, 255, 0.05) 50%,
rgba(255, 255, 255, 0) 100%
);
background-size: 200% 100%;
animation: shimmer 2s linear infinite;
}
}
/* ββ Animations ββ */
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes slideUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes bounceSubtle {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-6px); }
}
@keyframes shimmer {
0% { background-position: -200% 0; }
100% { background-position: 200% 0; }
}
/* Smooth number transitions */
.tabular-nums {
font-variant-numeric: tabular-nums;
}
|