File size: 3,570 Bytes
fd8bcfa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;700&family=Syne:wght@700;800&display=swap');

:root {
  --bg0:        #0c0c10;
  --bg1:        #111116;
  --bg2:        #17171e;
  --bg3:        #1e1e28;
  --bg4:        #252532;
  --border:     rgba(255,255,255,0.07);
  --border-hi:  rgba(255,255,255,0.14);
  --accent:     #4f8eff;
  --accent2:    #7c3aed;
  --accent3:    #06d6a0;
  --warn:       #f59e0b;
  --danger:     #ef4444;
  --text0:      #f0f0f8;
  --text1:      #a0a0b8;
  --text2:      #606078;
  --text3:      #383848;
  --radius-sm:  4px;
  --radius:     8px;
  --radius-lg:  12px;
  --font-ui:    'Inter', system-ui, sans-serif;
  --font-mono:  'JetBrains Mono', monospace;
  --font-brand: 'Syne', sans-serif;
  --shadow-sm:  0 1px 3px rgba(0,0,0,0.4);
  --shadow:     0 4px 16px rgba(0,0,0,0.5);
  --shadow-lg:  0 8px 32px rgba(0,0,0,0.7);
  --glow:       0 0 20px rgba(79,142,255,0.25);
  --glow-green: 0 0 20px rgba(6,214,160,0.25);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html, body, #root {
  width: 100%; height: 100%;
  overflow: hidden;
  background: var(--bg0);
  color: var(--text0);
  font-family: var(--font-ui);
  font-size: 13px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ── Scrollbar ─────────────────────────────────────────────────────── */
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--bg4); border-radius: 2px; }
::-webkit-scrollbar-thumb:hover { background: var(--text3); }

/* ── Global inputs ─────────────────────────────────────────────────── */
input[type=range] {
  -webkit-appearance: none;
  height: 3px;
  background: var(--bg4);
  border-radius: 2px;
  cursor: pointer;
  width: 100%;
}
input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 13px; height: 13px;
  background: var(--accent);
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(79,142,255,0.2);
  transition: transform 0.15s;
}
input[type=range]::-webkit-slider-thumb:hover { transform: scale(1.2); }
input[type=range]:focus { outline: none; }

input[type=number], input[type=text], select, textarea {
  background: var(--bg1);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text0);
  font-family: var(--font-mono);
  font-size: 11px;
  padding: 5px 7px;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
  width: 100%;
}
input[type=number]:focus,
input[type=text]:focus,
select:focus { border-color: var(--accent); box-shadow: 0 0 0 2px rgba(79,142,255,0.15); }

button { font-family: var(--font-ui); cursor: pointer; outline: none; border: none; }

* { -webkit-tap-highlight-color: transparent; }

/* ── Animations ────────────────────────────────────────────────────── */
@keyframes spin     { to { transform: rotate(360deg); } }
@keyframes pulse    { 0%,100%{opacity:1} 50%{opacity:.4} }
@keyframes fadeUp   { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }
@keyframes shimmer  {
  0%   { background-position: -200% 0; }
  100% { background-position:  200% 0; }
}