File size: 4,443 Bytes
b2eef7c
 
 
 
 
 
 
5748a9d
d1cde70
a65851a
 
d4c6e81
 
b2eef7c
 
5748a9d
b2eef7c
 
d1cde70
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d4c6e81
 
d1cde70
d4c6e81
d1cde70
d4c6e81
 
d1cde70
b2eef7c
 
d4c6e81
d1cde70
 
b2eef7c
 
d4c6e81
d1cde70
b2eef7c
 
d4c6e81
 
b2eef7c
 
d1cde70
d4c6e81
d1cde70
 
 
b2eef7c
 
d1cde70
 
 
 
 
 
 
 
 
 
 
b2eef7c
 
d1cde70
 
d4c6e81
d1cde70
 
 
 
 
 
 
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  width: 100%;
  background: #0f1117;
  background-image: radial-gradient(rgba(255,255,255,0.028) 1px, transparent 1px);
  background-size: 28px 28px;
  color: #f0eeff;
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

/* ── Animations ────────────────────────────────────────── */

@keyframes viewEnter {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 20px rgba(29,78,216,0.3); }
  50%       { box-shadow: 0 0 40px rgba(29,78,216,0.6); }
}

@keyframes shimmer {
  from { background-position: -200% center; }
  to   { background-position: 200% center; }
}

@keyframes blobDrift1 {
  0%   { transform: translate(0,    0)    scale(1);    }
  30%  { transform: translate(40px, -30px) scale(1.06); }
  65%  { transform: translate(-20px, 25px) scale(0.96); }
  100% { transform: translate(25px,  15px) scale(1.03); }
}

@keyframes blobDrift2 {
  0%   { transform: translate(0,    0)    scale(1);    }
  30%  { transform: translate(-35px, 40px) scale(1.04); }
  65%  { transform: translate(25px, -20px) scale(0.97); }
  100% { transform: translate(-15px, 30px) scale(1.05); }
}

/* ── View transitions ──────────────────────────────────── */

.view-enter {
  animation: viewEnter 0.35s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.fade-in {
  animation: fadeIn 0.2s ease forwards;
}

/* ── Cards ─────────────────────────────────────────────── */

.card {
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
  will-change: transform;
}

.card:hover {
  transform: translateY(-4px);
  border-color: #2e3464 !important;
  box-shadow: 0 16px 48px rgba(0,0,0,0.6), 0 0 0 1px rgba(29,78,216,0.15) !important;
}

/* ── Buttons ────────────────────────────────────────────── */

.btn-grad {
  transition: transform 0.15s ease, box-shadow 0.2s ease;
  cursor: pointer;
}

.btn-grad:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 32px rgba(29,78,216,0.45) !important;
}

.btn-grad:active {
  transform: scale(0.97) !important;
}

.btn-ghost {
  transition: color 0.15s ease, background 0.15s ease;
}

.btn-ghost:hover {
  color: #c4c2d8 !important;
}

/* ── Inputs ─────────────────────────────────────────────── */

input, textarea, select {
  font-family: inherit;
  background: #0e1320;
  color: #f0eeff;
  border: 1px solid #1e2438;
  border-radius: 8px;
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
}

input:focus, textarea:focus, select:focus {
  border-color: #1d4ed8;
  box-shadow: 0 0 0 3px rgba(29,78,216,0.15);
}

input::placeholder, textarea::placeholder {
  color: #2e3a52;
}

button {
  font-family: inherit;
}

/* ── Nav tab indicator ──────────────────────────────────── */

.nav-tab {
  position: relative;
  transition: color 0.18s ease;
}

.nav-tab::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 2px;
  border-radius: 2px 2px 0 0;
  background: linear-gradient(90deg, #1d4ed8, #0891b2);
  transform: scaleX(0);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.nav-tab.active::after {
  transform: scaleX(1);
}

/* ── Scrollbar ──────────────────────────────────────────── */

::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: #0f1117; }
::-webkit-scrollbar-thumb { background: #1e2438; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #2e3464; }