File size: 2,398 Bytes
f86ef5b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
@import url('https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;600&family=Geist:wght@400;500;600;700&display=swap');

@import 'leaflet/dist/leaflet.css';

@import "tailwindcss";

:root {
  font-family: 'Geist', system-ui, sans-serif;
  --glass-bg: rgba(9, 9, 11, 0.6);
  --glass-border: rgba(255, 255, 255, 0.05);
}

body {
  background-color: #050505;
  background-image: 
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    radial-gradient(circle at 15% 50%, rgba(59, 130, 246, 0.15), transparent 40%),
    radial-gradient(circle at 85% 30%, rgba(220, 38, 38, 0.12), transparent 40%);
  background-size: 32px 32px, 32px 32px, 100% 100%, 100% 100%;
  background-position: center center;
  background-attachment: fixed;
  color: #fafafa;
  margin: 0;
  min-height: 100vh;
}

#root {
  min-height: 100vh;
}

.mono {
  font-family: 'Geist Mono', monospace;
}

.zone-pulse {
  animation: pulse-ring 0.8s ease-out infinite;
}

@keyframes pulse-ring {
  0%   { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.8); }
  100% { box-shadow: 0 0 0 16px rgba(239, 68, 68, 0); }
}

.zone-pulse-green {
  animation: pulse-ring-green 1s ease-out infinite;
}

@keyframes pulse-ring-green {
  0%   { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.6); }
  100% { box-shadow: 0 0 0 14px rgba(34, 197, 94, 0); }
}

.step-fade-in {
  animation: fadeIn 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(6px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

.score-bar-fill {
  transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.glass-panel {
  background: rgba(9, 9, 11, 0.4);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.5), inset 0 1px 0 0 rgba(255, 255, 255, 0.05);
}

.neon-border-red {
  box-shadow: 0 0 10px rgba(220, 38, 38, 0.4), inset 0 0 10px rgba(220, 38, 38, 0.4);
  border-color: rgba(239, 68, 68, 0.6);
}

.neon-border-green {
  box-shadow: 0 0 10px rgba(34, 197, 94, 0.2), inset 0 0 10px rgba(34, 197, 94, 0.1);
  border-color: rgba(34, 197, 94, 0.4);
}

.neon-border-purple {
  box-shadow: 0 0 15px rgba(168, 85, 247, 0.5), inset 0 0 15px rgba(168, 85, 247, 0.3);
  border-color: rgba(192, 132, 252, 0.8);
}