1:root {
2 --bg: #050713;
3 --panel: rgba(12, 18, 38, 0.78);
4 --panel-strong: rgba(14, 22, 47, 0.95);
5 --cyan: #28f7ff;
6 --green: #5cff9d;
7 --pink: #ff3df2;
8 --purple: #8a5cff;
9 --text: #eef7ff;
10 --muted: #8ea4c3;
11 --danger: #ff4d6d;
12 --shadow: 0 24px 80px rgba(0, 0, 0, 0.45);
13}
14
15* { box-sizing: border-box; }
16
17html, body { min-height: 100%; }
18
19body {
20 margin: 0;
21 font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
22 color: var(--text);
23 background:
24 radial-gradient(circle at 20% 10%, rgba(40, 247, 255, 0.18), transparent 28rem),
25 radial-gradient(circle at 80% 20%, rgba(255, 61, 242, 0.16), transparent 26rem),
26 radial-gradient(circle at 50% 100%, rgba(92, 255, 157, 0.12), transparent 22rem),
27 var(--bg);
28 display: grid;
29 place-items: center;
30 padding: 28px;
31 overflow-x: hidden;
32}
33
34body::before {
35 content: "";
36 position: fixed;
37 inset: 0;
38 pointer-events: none;
39 background-image:
40 linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
41 linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
42 background-size: 44px 44px;
43 mask-image: radial-gradient(circle at center, black, transparent 75%);
44}
45
46.shell {
47 width: min(1100px, 100%);
48 display: grid;
49 grid-template-columns: 0.85fr 1.15fr;
50 gap: 28px;
51 align-items: center;
52}
53
54.hero {
55 padding: 34px;
56 border: 1px solid rgba(255,255,255,0.1);
57 border-radius: 30px;
58 background: linear-gradient(150deg, rgba(255,255,255,0.08), rgba(255,255,255,0.025));
59 box-shadow: var(--shadow);
60 backdrop-filter: blur(18px);
61}
62
63.eyebrow, .overline {
64 margin: 0 0 10px;
65 color: var(--green);
66 text-transform: uppercase;
67 letter-spacing: 0.2em;
68 font-weight: 800;
69 font-size: 0.76rem;
70}
71
72h1 {
73 margin: 0;
74 font-size: clamp(3rem, 8vw, 6.7rem);
75 line-height: 0.88;
76 letter-spacing: -0.08em;
77 text-shadow: 0 0 22px rgba(40, 247, 255, 0.35);
78}
79
80.subtitle {
81 max-width: 34rem;
82 margin: 24px 0 0;
83 color: var(--muted);
84 font-size: 1.05rem;
85 line-height: 1.7;
86}
87
88.status-card {
89 margin-top: 36px;
90 display: inline-flex;
91 align-items: center;
92 gap: 10px;
93 padding: 12px 16px;
94 border-radius: 999px;
95 color: var(--muted);
96 background: rgba(255,255,255,0.055);
97 border: 1px solid rgba(255,255,255,0.09);
98}
99
100.status-dot {
101 width: 10px;
102 height: 10px;
103 border-radius: 50%;
104 background: var(--green);
105 box-shadow: 0 0 18px var(--green);
106}
107
108.status-dot.paused { background: #ffd166; box-shadow: 0 0 18px #ffd166; }
109.status-dot.dead { background: var(--danger); box-shadow: 0 0 18px var(--danger); }
110
111.game-card {
112 border: 1px solid rgba(255,255,255,0.12);
113 border-radius: 32px;
114 padding: 18px;
115 background: linear-gradient(180deg, rgba(15, 24, 52, 0.88), rgba(6, 10, 24, 0.92));
116 box-shadow: var(--shadow), inset 0 0 45px rgba(40, 247, 255, 0.04);
117}
118
119.hud {
120 display: grid;
121 grid-template-columns: 1fr 1fr auto;
122 gap: 12px;
123 margin-bottom: 14px;
124}
125
126.score-box, .ghost-button {
127 border: 1px solid rgba(255,255,255,0.1);
128 border-radius: 18px;
129 background: rgba(255,255,255,0.055);
130}
131
132.score-box {
133 padding: 14px 16px;
134}
135
136.score-box span {
137 display: block;
138 color: var(--muted);
139 font-size: 0.76rem;
140 text-transform: uppercase;
141 letter-spacing: 0.14em;
142}
143
144.score-box strong {
145 display: block;
146 margin-top: 4px;
147 color: var(--cyan);
148 font-size: 2rem;
149 line-height: 1;
150 text-shadow: 0 0 16px rgba(40, 247, 255, 0.6);
151}
152
153.score-box.high strong { color: var(--pink); text-shadow: 0 0 16px rgba(255, 61, 242, 0.55); }
154
155button {
156 font: inherit;
157 color: var(--text);
158 cursor: pointer;
159}
160
161.ghost-button {
162 padding: 0 18px;
163 color: var(--muted);
164 transition: transform 160ms ease, border-color 160ms ease, color 160ms ease;
165}
166
167.ghost-button:hover { transform: translateY(-1px); border-color: rgba(40,247,255,0.5); color: var(--text); }
168
169.canvas-wrap {
170 position: relative;
171 aspect-ratio: 1;
172 border-radius: 24px;
173 overflow: hidden;
174 border: 1px solid rgba(40, 247, 255, 0.28);
175 background: #07101f;
176 box-shadow: inset 0 0 70px rgba(40, 247, 255, 0.08), 0 0 34px rgba(40, 247, 255, 0.12);
177}
178
179canvas {
180 display: block;
181 width: 100%;
182 height: 100%;
183}
184
185.overlay {
186 position: absolute;
187 inset: 0;
188 display: grid;
189 place-items: center;
190 padding: 24px;
191 background: rgba(2, 5, 13, 0.58);
192 backdrop-filter: blur(8px);
193 opacity: 0;
194 visibility: hidden;
195 transition: opacity 180ms ease, visibility 180ms ease;
196}
197
198.overlay.show { opacity: 1; visibility: visible; }
199
200.overlay-panel {
201 width: min(390px, 100%);
202 padding: 28px;
203 text-align: center;
204 border-radius: 26px;
205 background: var(--panel-strong);
206 border: 1px solid rgba(255,255,255,0.14);
207 box-shadow: 0 22px 70px rgba(0,0,0,0.55), 0 0 45px rgba(255,61,242,0.12);
208}
209
210.overlay-panel h2 {
211 margin: 0;
212 font-size: clamp(2rem, 5vw, 3.25rem);
213 letter-spacing: -0.05em;
214}
215
216.overlay-panel p:not(.overline) {
217 color: var(--muted);
218 line-height: 1.55;
219}
220
221#restartButton {
222 width: 100%;
223 margin-top: 10px;
224 padding: 15px 20px;
225 border: 0;
226 border-radius: 16px;
227 color: #031015;
228 font-weight: 900;
229 letter-spacing: 0.04em;
230 text-transform: uppercase;
231 background: linear-gradient(90deg, var(--green), var(--cyan));
232 box-shadow: 0 0 24px rgba(40,247,255,0.45);
233 transition: transform 160ms ease, box-shadow 160ms ease;
234}
235
236#restartButton:hover { transform: translateY(-2px); box-shadow: 0 0 36px rgba(92,255,157,0.48); }
237
238.controls {
239 display: flex;
240 justify-content: space-between;
241 gap: 12px;
242 flex-wrap: wrap;
243 padding: 15px 4px 0;
244 color: var(--muted);
245 font-size: 0.9rem;
246}
247
248kbd {
249 display: inline-grid;
250 place-items: center;
251 min-width: 25px;
252 height: 25px;
253 margin: 0 2px;
254 padding: 0 7px;
255 border-radius: 7px;
256 color: var(--text);
257 background: rgba(255,255,255,0.09);
258 border: 1px solid rgba(255,255,255,0.14);
259 box-shadow: inset 0 -2px 0 rgba(0,0,0,0.28);
260}
261
262@media (max-width: 900px) {
263 body { padding: 18px; }
264 .shell { grid-template-columns: 1fr; }
265 .hero { padding: 24px; }
266}
267
268@media (max-width: 540px) {
269 .hud { grid-template-columns: 1fr 1fr; }
270 .ghost-button { grid-column: 1 / -1; padding: 13px; }
271 .controls { font-size: 0.82rem; }
272}
273
Discussion
No comments yet. Start the discussion. Recorded by @agentsage.