ProjectGenesis commited on
Commit
01c0a69
·
verified ·
1 Parent(s): 80e9b16

Create a cinematic animation concept for Nioplay’s horizontal loot-box RNG slider — inspired by Stake.com’s mystery box mechanic.

Browse files

Do NOT generate a full webpage or desktop mockup. Only produce the animation module.
Overall Direction:
Design a motion graphic sequence that shows how the loot box system behaves from start to finish.
Use a premium black + neon orange/gold casino theme with glowing accents, soft glassmorphism layers, backlit amber lighting, and particle effects.
Animation Sequence to Depict (Frame-by-Frame Concept):
Idle State
A long horizontal carousel with 10–14 loot boxes evenly spaced.
Boxes glow subtly:
Common = green
Rare = blue
Epic = purple
Legendary = bright gold/orange
All boxes float slightly above a glossy black track with soft reflections.
Player Action
A large glowing “ROLL” button pulses beneath the carousel.
When pressed, show a charged energy burst under the button.
High-Speed Sliding Phase
The entire horizontal row of boxes moves at high velocity left-to-right.
Use motion blur, neon streaks, light trails, and radial highlights.
Background stays dark — the only lighting comes from the passing boxes.
Deceleration Phase
The carousel slows down with rhythmic pulses of light.
Camera slightly zooms in for tension.
Add subtle sparks, floating particles, and lens reflections.
Final Settle & Selection
The motion stops precisely on one loot box.
The selected box should:
Enlarge 10–15%
Glow intensely with neon orange/gold rim-light
Emit heatwave distortion
Cast light onto the track
Loot Box Opening Reveal
The lid pops open with a cinematic light explosion
Streams of particles, fog glow, and golden dust burst outward
SC coins with ·SC· engraved spin upward
Show the prize hovering above the open box with a radiant outline
End State
Dim surrounding boxes
Keep the selected box glowing
Prize hover slowly with gentle rotation
Visual Requirements:
Style: Futuristic casino luxury — metallic, glassy, realistic
Colors: Black, deep charcoal, neon orange (#FF8C00), gold, amber
Lighting: Backlit glow, rim lighting, volumetric fog beams
No characters, no people, no mascots
No browser UI, device frame, or page layout
Final render should clearly read as an animation storyboard or motion concept, not a static page.
Aspect ratio: 16:9 widescreen.
Background: Black-to-warm gradient with subtle spark particles.

Files changed (4) hide show
  1. README.md +8 -5
  2. index.html +48 -19
  3. script.js +267 -0
  4. style.css +136 -19
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Lootbox Cinematics Royale
3
- emoji: 📈
4
- colorFrom: green
5
- colorTo: gray
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: LootBox Cinematics Royale 🎰
3
+ colorFrom: pink
4
+ colorTo: green
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://huggingface.co/deepsite).
index.html CHANGED
@@ -1,19 +1,48 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>LootBox Animation Concept</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/gsap.min.js"></script>
9
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/ScrollTrigger.min.js"></script>
10
+ <style>
11
+ @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&display=swap');
12
+ </style>
13
+ <link rel="stylesheet" href="style.css">
14
+ </head>
15
+ <body class="bg-black overflow-hidden font-['Orbitron']">
16
+ <div class="relative w-full h-screen flex items-center justify-center">
17
+ <!-- Background Elements -->
18
+ <div class="absolute inset-0 bg-gradient-to-b from-black to-gray-900 opacity-90 z-0"></div>
19
+ <div class="particles absolute inset-0 z-10"></div>
20
+
21
+ <!-- Main Animation Container -->
22
+ <div id="animation-container" class="relative w-full max-w-4xl h-80 z-20">
23
+ <!-- Track -->
24
+ <div class="absolute bottom-0 left-0 right-0 h-2 bg-gradient-to-r from-transparent via-amber-500/50 to-transparent rounded-full blur-sm"></div>
25
+ <div class="absolute bottom-0 left-0 right-0 h-1.5 bg-gradient-to-r from-transparent via-amber-500/20 to-transparent rounded-full"></div>
26
+
27
+ <!-- Loot Boxes -->
28
+ <div id="loot-boxes" class="absolute bottom-10 left-0 flex space-x-8 transition-transform duration-1000">
29
+ <!-- Boxes will be generated via JS -->
30
+ </div>
31
+
32
+ <!-- ROLL Button -->
33
+ <div id="roll-button" class="absolute -bottom-16 left-1/2 transform -translate-x-1/2 px-10 py-3 bg-gradient-to-br from-amber-500 to-orange-600 rounded-full cursor-pointer shadow-lg shadow-amber-500/30 hover:shadow-amber-500/50 transition-all duration-300 group">
34
+ <span class="text-lg font-bold text-white tracking-widest">ROLL</span>
35
+ <div class="absolute inset-0 rounded-full border-2 border-amber-300/50 opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
36
+ <div class="absolute -inset-1 rounded-full bg-amber-500 blur opacity-0 group-hover:opacity-50 transition-opacity duration-300"></div>
37
+ </div>
38
+
39
+ <!-- Light Effects -->
40
+ <div class="light-beam absolute w-40 h-40 bg-amber-500/10 rounded-full blur-3xl -z-10"></div>
41
+ <div class="light-beam-2 absolute w-60 h-60 bg-orange-500/5 rounded-full blur-3xl -z-10"></div>
42
+ </div>
43
+ </div>
44
+
45
+ <script src="script.js"></script>
46
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
47
+ </body>
48
+ </html>
script.js ADDED
@@ -0,0 +1,267 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ document.addEventListener('DOMContentLoaded', () => {
2
+ // Initialize scene
3
+ const container = document.getElementById('animation-container');
4
+ const lootBoxesContainer = document.getElementById('loot-boxes');
5
+ const rollButton = document.getElementById('roll-button');
6
+
7
+ // Box types and colors
8
+ const boxTypes = [
9
+ { name: 'Common', class: 'common', chance: 60 },
10
+ { name: 'Rare', class: 'rare', chance: 25 },
11
+ { name: 'Epic', class: 'epic', chance: 10 },
12
+ { name: 'Legendary', class: 'legendary', chance: 5 }
13
+ ];
14
+
15
+ // Generate loot boxes
16
+ const totalBoxes = 12;
17
+ const boxes = [];
18
+
19
+ for (let i = 0; i < totalBoxes; i++) {
20
+ const box = document.createElement('div');
21
+ box.className = 'loot-box';
22
+
23
+ // Determine box type based on chance
24
+ const random = Math.random() * 100;
25
+ let cumulativeChance = 0;
26
+ let boxType;
27
+
28
+ for (const type of boxTypes) {
29
+ cumulativeChance += type.chance;
30
+ if (random <= cumulativeChance) {
31
+ boxType = type;
32
+ break;
33
+ }
34
+ }
35
+
36
+ box.innerHTML = `
37
+ <div class="loot-box-inner">
38
+ <div class="loot-box-front ${boxType.class}">
39
+ <div class="loot-box-lid ${boxType.class}"></div>
40
+ <span class="text-xs opacity-70">${boxType.name}</span>
41
+ </div>
42
+ <div class="loot-box-back"></div>
43
+ </div>
44
+ `;
45
+
46
+ boxes.push(box);
47
+ lootBoxesContainer.appendChild(box);
48
+ }
49
+
50
+ // Add event listener to roll button
51
+ rollButton.addEventListener('click', () => {
52
+ if (lootBoxesContainer.classList.contains('rolling')) return;
53
+
54
+ startRollAnimation();
55
+ });
56
+
57
+ function startRollAnimation() {
58
+ // Disable button during animation
59
+ lootBoxesContainer.classList.add('rolling');
60
+ rollButton.classList.add('opacity-50', 'pointer-events-none');
61
+
62
+ // Clear previous selection
63
+ document.querySelectorAll('.loot-box.selected').forEach(box => {
64
+ box.classList.remove('selected');
65
+ });
66
+
67
+ // Add motion blur
68
+ lootBoxesContainer.classList.add('motion-blur');
69
+
70
+ // Create speed lines
71
+ const speedLines = document.createElement('div');
72
+ speedLines.className = 'speed-lines';
73
+ container.appendChild(speedLines);
74
+
75
+ // Energy burst effect
76
+ const energyBurst = document.createElement('div');
77
+ energyBurst.className = 'energy-burst';
78
+ energyBurst.style.width = '200px';
79
+ energyBurst.style.height = '200px';
80
+ energyBurst.style.left = rollButton.offsetLeft + rollButton.offsetWidth / 2 - 100 + 'px';
81
+ energyBurst.style.top = rollButton.offsetTop + rollButton.offsetHeight / 2 - 100 + 'px';
82
+ container.appendChild(energyBurst);
83
+
84
+ // Animate energy burst
85
+ gsap.to(energyBurst, {
86
+ scale: 1.5,
87
+ opacity: 0.8,
88
+ duration: 0.3,
89
+ ease: 'power2.out',
90
+ onComplete: () => {
91
+ gsap.to(energyBurst, {
92
+ scale: 3,
93
+ opacity: 0,
94
+ duration: 0.5,
95
+ onComplete: () => {
96
+ energyBurst.remove();
97
+ }
98
+ });
99
+ }
100
+ });
101
+
102
+ // High-speed sliding phase
103
+ const slideDistance = Math.random() * 5000 + 3000;
104
+
105
+ gsap.to(lootBoxesContainer, {
106
+ x: `-=${slideDistance}`,
107
+ duration: 3,
108
+ ease: 'power2.inOut',
109
+ onUpdate: () => {
110
+ // Add speed lines effect
111
+ gsap.to(speedLines, {
112
+ opacity: 0.5,
113
+ duration: 0.1
114
+ });
115
+ },
116
+ onComplete: () => {
117
+ // Remove speed lines
118
+ gsap.to(speedLines, {
119
+ opacity: 0,
120
+ duration: 0.5,
121
+ onComplete: () => {
122
+ speedLines.remove();
123
+ }
124
+ });
125
+
126
+ // Remove motion blur
127
+ lootBoxesContainer.classList.remove('motion-blur');
128
+
129
+ // Select a random box (bias towards center boxes)
130
+ const centerBoxIndex = Math.floor(Math.random() * 4) + 4;
131
+ const selectedBox = boxes[centerBoxIndex];
132
+ selectedBox.classList.add('selected');
133
+
134
+ // Align the selected box to center
135
+ const containerWidth = container.offsetWidth;
136
+ const boxWidth = selectedBox.offsetWidth;
137
+ const boxOffset = selectedBox.offsetLeft;
138
+ const targetX = containerWidth / 2 - boxWidth / 2 - boxOffset;
139
+
140
+ gsap.to(lootBoxesContainer, {
141
+ x: targetX,
142
+ duration: 0.8,
143
+ ease: 'elastic.out(1, 0.5)',
144
+ onComplete: () => {
145
+ // Open the box after a delay
146
+ setTimeout(() => {
147
+ openBox(selectedBox);
148
+ }, 500);
149
+ }
150
+ });
151
+ }
152
+ });
153
+ }
154
+
155
+ function openBox(box) {
156
+ const lid = box.querySelector('.loot-box-lid');
157
+ const isLegendary = box.classList.contains('legendary');
158
+
159
+ // Animate lid opening
160
+ gsap.to(lid, {
161
+ rotationX: -120,
162
+ transformOrigin: 'bottom',
163
+ duration: 0.5,
164
+ ease: 'back.out(1)'
165
+ });
166
+
167
+ // Create light explosion
168
+ const explosion = document.createElement('div');
169
+ explosion.className = 'absolute inset-0 rounded-full bg-amber-500/20 blur-xl';
170
+ explosion.style.width = '200px';
171
+ explosion.style.height = '200px';
172
+ explosion.style.left = '50%';
173
+ explosion.style.top = '50%';
174
+ explosion.style.transform = 'translate(-50%, -50%) scale(0)';
175
+ box.appendChild(explosion);
176
+
177
+ // Animate explosion
178
+ gsap.to(explosion, {
179
+ scale: 2,
180
+ opacity: 0.8,
181
+ duration: 0.3,
182
+ ease: 'power2.out',
183
+ onComplete: () => {
184
+ gsap.to(explosion, {
185
+ scale: 3,
186
+ opacity: 0,
187
+ duration: 0.5,
188
+ onComplete: () => {
189
+ explosion.remove();
190
+ }
191
+ });
192
+ }
193
+ });
194
+
195
+ // Create particles
196
+ createParticles(box, isLegendary);
197
+
198
+ // Create prize reveal
199
+ const prizeValue = isLegendary ? '5000 SC' : ['100 SC', '250 SC', '500 SC', '1000 SC'][Math.floor(Math.random() * 4)];
200
+ const prize = document.createElement('div');
201
+ prize.className = 'prize-reveal';
202
+ prize.textContent = prizeValue;
203
+ box.appendChild(prize);
204
+
205
+ // Enable button again
206
+ setTimeout(() => {
207
+ lootBoxesContainer.classList.remove('rolling');
208
+ rollButton.classList.remove('opacity-50', 'pointer-events-none');
209
+ }, 2000);
210
+ }
211
+
212
+ function createParticles(box, isLegendary) {
213
+ const particleCount = isLegendary ? 30 : 15;
214
+ const colors = isLegendary
215
+ ? ['#FF8C00', '#FFD700', '#FFA500', '#FFFFFF']
216
+ : ['#FFFFFF', '#CCCCCC', '#AAAAAA'];
217
+
218
+ for (let i = 0; i < particleCount; i++) {
219
+ const particle = document.createElement('div');
220
+ particle.className = 'absolute rounded-full';
221
+ particle.style.width = Math.random() * 8 + 2 + 'px';
222
+ particle.style.height = particle.style.width;
223
+ particle.style.backgroundColor = colors[Math.floor(Math.random() * colors.length)];
224
+ particle.style.left = '50%';
225
+ particle.style.top = '50%';
226
+ particle.style.opacity = '0';
227
+ box.appendChild(particle);
228
+
229
+ const angle = Math.random() * Math.PI * 2;
230
+ const distance = Math.random() * 50 + 30;
231
+ const duration = Math.random() * 1 + 0.5;
232
+
233
+ gsap.to(particle, {
234
+ x: Math.cos(angle) * distance,
235
+ y: Math.sin(angle) * distance - 50,
236
+ opacity: 1,
237
+ duration: duration * 0.3,
238
+ ease: 'power2.out'
239
+ });
240
+
241
+ gsap.to(particle, {
242
+ y: `-=${Math.random() * 30 + 20}`,
243
+ opacity: 0,
244
+ duration: duration * 0.7,
245
+ delay: duration * 0.3,
246
+ ease: 'power2.in',
247
+ onComplete: () => {
248
+ particle.remove();
249
+ }
250
+ });
251
+ }
252
+ }
253
+
254
+ // Ambient animations
255
+ setInterval(() => {
256
+ const randomBox = boxes[Math.floor(Math.random() * boxes.length)];
257
+ if (!randomBox.classList.contains('selected') && !lootBoxesContainer.classList.contains('rolling')) {
258
+ gsap.to(randomBox, {
259
+ y: -10,
260
+ duration: 1,
261
+ yoyo: true,
262
+ repeat: 1,
263
+ ease: 'sine.inOut'
264
+ });
265
+ }
266
+ }, 3000);
267
+ });
style.css CHANGED
@@ -1,28 +1,145 @@
1
- body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
 
 
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
28
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @keyframes pulse-glow {
2
+ 0%, 100% { opacity: 0.7; }
3
+ 50% { opacity: 1; }
4
  }
5
 
6
+ @keyframes float {
7
+ 0%, 100% { transform: translateY(0); }
8
+ 50% { transform: translateY(-5px); }
9
  }
10
 
11
+ .loot-box {
12
+ position: relative;
13
+ width: 120px;
14
+ height: 120px;
15
+ perspective: 1000px;
16
+ cursor: pointer;
17
+ animation: float 3s ease-in-out infinite;
18
  }
19
 
20
+ .loot-box-inner {
21
+ position: relative;
22
+ width: 100%;
23
+ height: 100%;
24
+ transform-style: preserve-3d;
25
+ transition: transform 0.8s;
26
  }
27
 
28
+ .loot-box:hover .loot-box-inner {
29
+ transform: rotateY(10deg) rotateX(5deg);
30
  }
31
+
32
+ .loot-box-front, .loot-box-back {
33
+ position: absolute;
34
+ width: 100%;
35
+ height: 100%;
36
+ backface-visibility: hidden;
37
+ border-radius: 8px;
38
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
39
+ background: linear-gradient(145deg, #1a1a1a, #2a2a2a);
40
+ border: 2px solid;
41
+ }
42
+
43
+ .loot-box-front {
44
+ display: flex;
45
+ align-items: center;
46
+ justify-content: center;
47
+ font-weight: bold;
48
+ color: white;
49
+ }
50
+
51
+ .loot-box-back {
52
+ transform: rotateY(180deg);
53
+ background: linear-gradient(145deg, #1a1a1a, #2a2a2a);
54
+ }
55
+
56
+ .common { border-color: rgba(0, 255, 0, 0.3); box-shadow: 0 0 20px rgba(0, 255, 0, 0.1); }
57
+ .rare { border-color: rgba(0, 100, 255, 0.3); box-shadow: 0 0 20px rgba(0, 100, 255, 0.1); }
58
+ .epic { border-color: rgba(150, 0, 255, 0.3); box-shadow: 0 0 20px rgba(150, 0, 255, 0.1); }
59
+ .legendary { border-color: rgba(255, 140, 0, 0.5); box-shadow: 0 0 30px rgba(255, 140, 0, 0.2); }
60
+
61
+ .loot-box.selected {
62
+ animation: pulse-glow 1.5s infinite;
63
+ transform: scale(1.15);
64
+ z-index: 10;
65
+ }
66
+
67
+ .loot-box.selected.legendary {
68
+ box-shadow: 0 0 50px rgba(255, 140, 0, 0.5);
69
+ }
70
+
71
+ .loot-box-lid {
72
+ position: absolute;
73
+ top: 0;
74
+ left: 0;
75
+ width: 100%;
76
+ height: 20%;
77
+ background: inherit;
78
+ border-radius: 8px 8px 0 0;
79
+ transform-origin: bottom;
80
+ transition: transform 0.5s;
81
+ }
82
+
83
+ .particles {
84
+ background-image: radial-gradient(ellipse at center, rgba(255, 140, 0, 0.1) 0%, transparent 70%);
85
+ background-size: 600px 600px;
86
+ background-position: 0 0;
87
+ animation: particle-move 20s infinite linear;
88
+ }
89
+
90
+ @keyframes particle-move {
91
+ 100% { background-position: 600px 600px; }
92
+ }
93
+
94
+ .light-beam {
95
+ animation: beam-pulse 8s infinite alternate;
96
+ }
97
+
98
+ .light-beam-2 {
99
+ animation: beam-pulse 12s infinite alternate-reverse;
100
+ }
101
+
102
+ @keyframes beam-pulse {
103
+ 0%, 100% { transform: translate(-50%, -50%) scale(0.8); opacity: 0.1; }
104
+ 50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.3; }
105
+ }
106
+
107
+ .prize-reveal {
108
+ position: absolute;
109
+ top: -100px;
110
+ left: 50%;
111
+ transform: translateX(-50%);
112
+ font-size: 1.5rem;
113
+ font-weight: bold;
114
+ color: white;
115
+ text-shadow: 0 0 10px rgba(255, 140, 0, 0.8);
116
+ animation: prize-float 3s ease-in-out infinite;
117
+ }
118
+
119
+ @keyframes prize-float {
120
+ 0%, 100% { transform: translate(-50%, 0); }
121
+ 50% { transform: translate(-50%, -10px); }
122
+ }
123
+
124
+ .motion-blur {
125
+ filter: blur(3px);
126
+ opacity: 0.7;
127
+ }
128
+
129
+ .speed-lines {
130
+ position: absolute;
131
+ top: 0;
132
+ left: 0;
133
+ width: 100%;
134
+ height: 100%;
135
+ background: linear-gradient(90deg, transparent, rgba(255, 140, 0, 0.1), transparent);
136
+ opacity: 0;
137
+ }
138
+
139
+ .energy-burst {
140
+ position: absolute;
141
+ border-radius: 50%;
142
+ background: radial-gradient(circle, rgba(255, 140, 0, 0.8), transparent 70%);
143
+ transform: scale(0);
144
+ opacity: 0;
145
+ }