|
1 | | -@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Sora:wght@500;600;700;800&display=swap'); |
| 1 | +@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Sora:wght@500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap'); |
2 | 2 |
|
3 | 3 | @tailwind base; |
4 | 4 | @tailwind components; |
|
90 | 90 | box-shadow: var(--shadow-card-hover); |
91 | 91 | } |
92 | 92 |
|
| 93 | + .shadow-float { |
| 94 | + box-shadow: |
| 95 | + 0 4px 12px -8px hsl(0 0% 0% / 0.45), |
| 96 | + 0 18px 36px -20px hsl(232 95% 66% / 0.25), |
| 97 | + 0 36px 60px -30px hsl(196 89% 62% / 0.2); |
| 98 | + } |
| 99 | + |
| 100 | + .squircle { |
| 101 | + border-radius: 28px; |
| 102 | + } |
| 103 | + |
93 | 104 | .glass-crystal { |
94 | 105 | background: |
95 | | - linear-gradient(135deg, hsl(var(--card) / 0.7), hsl(var(--card) / 0.45)), |
| 106 | + linear-gradient(135deg, hsl(var(--card) / 0.55), hsl(var(--card) / 0.35)), |
96 | 107 | radial-gradient(120% 140% at 0% 0%, hsl(var(--primary) / 0.2), transparent 45%), |
97 | 108 | radial-gradient(120% 140% at 100% 100%, hsl(var(--accent) / 0.18), transparent 50%); |
98 | | - backdrop-filter: blur(20px) saturate(135%); |
99 | | - -webkit-backdrop-filter: blur(20px) saturate(135%); |
100 | | - border: 1px solid hsl(var(--border) / 0.7); |
| 109 | + backdrop-filter: blur(22px) saturate(140%); |
| 110 | + -webkit-backdrop-filter: blur(22px) saturate(140%); |
| 111 | + border: 1px solid hsl(var(--border) / 0.65); |
101 | 112 | box-shadow: |
102 | 113 | inset 0 1px 0 hsl(0 0% 100% / 0.12), |
103 | 114 | 0 18px 40px -24px hsl(var(--primary) / 0.45); |
104 | 115 | } |
105 | 116 |
|
106 | 117 | .crystal-shell { |
107 | 118 | background: |
108 | | - linear-gradient(145deg, hsl(var(--card) / 0.82), hsl(var(--card) / 0.6)), |
| 119 | + linear-gradient(145deg, hsl(var(--card) / 0.7), hsl(var(--card) / 0.45)), |
109 | 120 | radial-gradient(160% 120% at 0% 0%, hsl(var(--primary) / 0.16), transparent 48%), |
110 | 121 | radial-gradient(160% 120% at 100% 100%, hsl(var(--accent) / 0.12), transparent 54%); |
111 | 122 | backdrop-filter: blur(22px) saturate(140%); |
112 | 123 | -webkit-backdrop-filter: blur(22px) saturate(140%); |
113 | | - border: 1px solid hsl(var(--border) / 0.72); |
| 124 | + border: 1px solid hsl(var(--border) / 0.7); |
114 | 125 | box-shadow: |
115 | 126 | inset 0 1px 0 hsl(0 0% 100% / 0.1), |
116 | 127 | 0 22px 46px -26px hsl(var(--primary) / 0.4); |
117 | 128 | } |
118 | 129 |
|
119 | 130 | .crystal-item { |
120 | | - @apply rounded-2xl border border-white/10 bg-white/5 backdrop-blur-xl transition-all duration-300; |
| 131 | + @apply border border-white/10 bg-white/5 backdrop-blur-xl transition-all duration-200; |
121 | 132 | box-shadow: inset 0 1px 0 hsl(0 0% 100% / 0.08); |
122 | 133 | } |
123 | 134 |
|
|
126 | 137 | box-shadow: |
127 | 138 | inset 0 1px 0 hsl(0 0% 100% / 0.14), |
128 | 139 | 0 18px 44px -26px hsl(var(--primary) / 0.42); |
| 140 | + transform: translateY(-2px); |
129 | 141 | } |
130 | 142 |
|
131 | 143 | .glass-input { |
132 | | - @apply w-full rounded-xl border border-white/10 bg-white/5 px-4 py-3 text-sm text-white/90 outline-none transition; |
| 144 | + @apply w-full rounded-xl border border-white/10 bg-white/5 px-4 py-3 text-sm text-white/90 outline-none transition duration-150; |
133 | 145 | } |
134 | 146 |
|
135 | 147 | .glass-input:focus { |
136 | 148 | @apply border-cyan-400/60 ring-1 ring-cyan-400/30; |
| 149 | + box-shadow: 0 0 0 3px hsl(var(--accent) / 0.18); |
137 | 150 | } |
138 | 151 |
|
139 | 152 | .glass-btn { |
140 | | - @apply inline-flex items-center justify-center gap-2 rounded-xl border border-white/10 bg-white/10 px-4 py-3 text-sm font-semibold text-white/80 transition; |
| 153 | + @apply inline-flex items-center justify-center gap-2 rounded-xl border border-white/10 bg-white/10 px-4 py-3 text-sm font-semibold text-white/80 transition duration-150; |
141 | 154 | } |
142 | 155 |
|
143 | 156 | .glass-btn:hover { |
144 | 157 | @apply border-cyan-400/60 text-white; |
| 158 | + transform: translateY(-1px); |
| 159 | + } |
| 160 | + |
| 161 | + .glass-btn:active { |
| 162 | + transform: translateY(0); |
145 | 163 | } |
146 | 164 |
|
147 | 165 | .glass-chip { |
|
152 | 170 | @apply inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/10 px-3 py-1 text-xs font-semibold text-white/70; |
153 | 171 | } |
154 | 172 |
|
| 173 | + .window-controls { |
| 174 | + @apply rounded-2xl border border-white/10 bg-white/10 p-2; |
| 175 | + box-shadow: inset 0 1px 0 hsl(0 0% 100% / 0.08), 0 10px 24px -18px hsl(0 0% 0% / 0.5); |
| 176 | + } |
| 177 | + |
| 178 | + .window-btn { |
| 179 | + @apply flex h-9 w-9 items-center justify-center rounded-xl border border-white/15 bg-white/10 text-white/70 transition duration-150; |
| 180 | + } |
| 181 | + |
| 182 | + .window-btn:hover { |
| 183 | + @apply border-cyan-400/60 text-white; |
| 184 | + box-shadow: 0 6px 18px -12px hsl(var(--accent) / 0.6); |
| 185 | + } |
| 186 | + |
| 187 | + .window-btn:active { |
| 188 | + transform: translateY(0); |
| 189 | + } |
| 190 | + |
| 191 | + .window-btn-close:hover { |
| 192 | + @apply border-rose-400/70 text-rose-200; |
| 193 | + box-shadow: 0 6px 18px -12px hsl(0 84% 60% / 0.5); |
| 194 | + } |
| 195 | + |
155 | 196 | .accent-gradient { |
156 | 197 | background: var(--gradient-primary); |
157 | 198 | } |
158 | 199 |
|
159 | | - .fade-in { |
160 | | - animation: fadeIn 0.6s ease both; |
| 200 | + .focus-glow:focus-visible { |
| 201 | + box-shadow: 0 0 0 3px hsl(var(--accent) / 0.25); |
161 | 202 | } |
162 | 203 |
|
163 | | - .float-slow { |
164 | | - animation: floatSlow 6s ease-in-out infinite; |
| 204 | + .drop-magnet { |
| 205 | + border-style: dashed; |
| 206 | + border-color: hsl(var(--accent) / 0.6); |
| 207 | + box-shadow: 0 0 30px hsl(var(--accent) / 0.25); |
| 208 | + transform: scale(1.02); |
165 | 209 | } |
166 | 210 |
|
167 | | - @keyframes fadeIn { |
168 | | - from { |
169 | | - opacity: 0; |
170 | | - transform: translateY(8px); |
171 | | - } |
172 | | - to { |
173 | | - opacity: 1; |
174 | | - transform: translateY(0); |
175 | | - } |
| 211 | + .gradient-ring { |
| 212 | + position: relative; |
| 213 | + isolation: isolate; |
176 | 214 | } |
177 | 215 |
|
178 | | - @keyframes floatSlow { |
179 | | - 0%, |
180 | | - 100% { |
181 | | - transform: translateY(0px); |
| 216 | + .gradient-ring::before { |
| 217 | + content: ''; |
| 218 | + position: absolute; |
| 219 | + inset: -1px; |
| 220 | + border-radius: inherit; |
| 221 | + padding: 1px; |
| 222 | + background: linear-gradient(120deg, rgba(56, 189, 248, 0.7), rgba(139, 92, 246, 0.7), rgba(56, 189, 248, 0.7)); |
| 223 | + background-size: 200% 200%; |
| 224 | + animation: ringFlow 6s linear infinite; |
| 225 | + -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); |
| 226 | + -webkit-mask-composite: xor; |
| 227 | + mask-composite: exclude; |
| 228 | + z-index: -1; |
| 229 | + } |
| 230 | + |
| 231 | + @keyframes ringFlow { |
| 232 | + 0% { |
| 233 | + background-position: 0% 50%; |
182 | 234 | } |
183 | | - 50% { |
184 | | - transform: translateY(-10px); |
| 235 | + 100% { |
| 236 | + background-position: 200% 50%; |
185 | 237 | } |
186 | 238 | } |
| 239 | + |
| 240 | + .terminal-surface { |
| 241 | + position: relative; |
| 242 | + background: linear-gradient(180deg, rgba(7, 12, 24, 0.9), rgba(4, 8, 18, 0.95)); |
| 243 | + border: 1px solid rgba(56, 189, 248, 0.2); |
| 244 | + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03), 0 18px 40px -30px rgba(56, 189, 248, 0.5); |
| 245 | + } |
| 246 | + |
| 247 | + .terminal-surface::after { |
| 248 | + content: ''; |
| 249 | + position: absolute; |
| 250 | + inset: 0; |
| 251 | + background: repeating-linear-gradient( |
| 252 | + 0deg, |
| 253 | + rgba(255, 255, 255, 0.03) 0px, |
| 254 | + rgba(255, 255, 255, 0.03) 1px, |
| 255 | + transparent 1px, |
| 256 | + transparent 3px |
| 257 | + ); |
| 258 | + opacity: 0.2; |
| 259 | + pointer-events: none; |
| 260 | + } |
| 261 | + |
| 262 | + .terminal-text { |
| 263 | + font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace; |
| 264 | + font-variant-ligatures: contextual; |
| 265 | + } |
| 266 | + |
| 267 | + .log-success { |
| 268 | + color: #7ee787; |
| 269 | + } |
| 270 | + |
| 271 | + .log-skip { |
| 272 | + color: rgba(255, 255, 255, 0.45); |
| 273 | + } |
| 274 | + |
| 275 | + .log-error { |
| 276 | + color: #ff7b72; |
| 277 | + } |
| 278 | + |
| 279 | + .log-folder { |
| 280 | + color: #79c0ff; |
| 281 | + } |
187 | 282 | } |
0 commit comments