-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathindex.html
More file actions
490 lines (483 loc) · 25.7 KB
/
index.html
File metadata and controls
490 lines (483 loc) · 25.7 KB
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
<!DOCTYPE html>
<html lang="en" xmlns:fb="http://ogp.me/ns/fb#" prefix="og: https://ogp.me/ns#">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Range Engine</title>
<meta name="description" content="Range Engine is an Light and Powerful Game Engine and 3D Software designed to Indie developers. Where you can make your own Models, Materials, Animations, and Publish Games!"/>
<meta name="theme-color" content="#f00000">
<meta property="og:type" content="website" />
<meta property="og:title" content="Range Engine"/>
<meta property="og:description" content="Range Engine is an Light and Powerful Game Engine and 3D Software designed to Indie developers. Where you can make your own Models, Materials, Animations, and Publish Games!"/>
<meta property="og:site_name" content="Range Engine"/>
<meta property="og:image" content="https://rangeengine.tech/img/webp/ogp_splash.webp"/>
<meta name="twitter:card" content="summary_large_image">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200">
<link href="https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@400;700&family=Rubik:wght@300..900&display=swap" rel="stylesheet">
<!-- Preload main stylesheet to reduce render-blocking -->
<link rel="preload" href="css/style.min.css" as="style" onload="this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="css/style.min.css"></noscript>
<!-- Preload important images -->
<link rel="preload" as="image" href="img/webp/posterback.webp">
<link rel="preload" as="image" href="https://rangeengine.tech/img/webp/ogp_splash.webp">
<link rel="shortcut icon" href="img/webp/favicon.webp" />
</head>
<body>
<div id="splash-container">
<div class="splash active" id="splash">
<div class="splash-slide active" id="slide0" style="height:55%;">
<h2>Welcome To Range Engine!</h2>
<p class="splash-h2-desc">Let us introduce you the engine with a quick guide.</p>
<div class="splash-slide-content">
<img class="splash-slide-logo" src="img/webp/RanGEs.webp" loading="lazy" alt="Range Engine logo">
<ul style="font-size: 22px;text-align: left;margin:20px 0 0 5px;padding:0;">
<li>Who is Range Engine made for?</li>
<li>What can be done with Range?</li>
<li>What knowledge is required?</li>
<li>Where to interact with other users/devs?</li>
</ul>
</div>
<div style="margin: 0 8%;display:flex;justify-content:right;">
<button class="splash-nextBtn" onclick="startGuide()">Start</button>
<button class="splash-declineBtn" onclick="closeGuide()">No, Thanks</button>
</div>
</div>
<div class="splash-slide" id="slide1">
<h2>Who is Range Engine made for?</h2>
<p class="splash-h2-desc">"From Gamedevs to Gamedevs"</p>
<div class="splash-slide-content" style="flex-direction:column;justify-content:initial;align-items:center;">
<img src="img/whatsnew/pbr.gif" alt="PBR demo" loading="lazy" style="position:absolute;z-index:-1;">
<p class="splash-text-desc">
Range Engine has the proposal of being <b>a game engine for Indie Developers</b>,
designed with important features to make the game development fluent and efficient.
The terms of Range Engine have no bureaucracy compared to other engines that abuse indie developers with absurd fees and high machine requirements.
</p>
</div>
<div style="margin: 0 8%;display:flex;justify-content:right;">
<button class="splash-nextBtn" onclick="nextSlide(2)">Next</button>
<button class="splash-declineBtn" onclick="nextSlide(0)">Previous</button>
</div>
</div>
<div class="splash-slide" id="slide2">
<h2>What can be done with RanGE?</h2>
<p class="splash-h2-desc">Flexibility + Possibilities</p>
<div class="splash-slide-content" style="flex-direction:column;justify-content:initial;align-items:center;">
<img src="img/sliders/environment.webp" alt="Environment background" loading="lazy" style="position:absolute;z-index:-1;">
<p class="splash-text-desc">
Range Engine is designed with exceptional flexibility, making it ideal for all types of games, from simple platformers to intricate open-world adventures.
Its performance scales with your project, ensuring no unnecessary load. This adaptability empowers developers of all levels to create unique and groundbreaking games,
opening endless possibilities for creativity.
</p>
</div>
<div style="margin: 0 8%;display:flex;justify-content:right;">
<button class="splash-nextBtn" onclick="nextSlide(3)">Next</button>
<button class="splash-declineBtn" onclick="nextSlide(1)">Previous</button>
</div>
</div>
<div class="splash-slide" id="slide3">
<h2>What knowledge is required?</h2>
<p class="splash-h2-desc">You are capable to start today!</p>
<div class="splash-slide-content" style="flex-direction:column;justify-content:initial;align-items:center;">
<img src="img/sliders/brickynodes.jpg" alt="Bricky nodes demo" loading="lazy" style="position:absolute;z-index:-1;">
<p class="splash-text-desc">
Range Engine is highly accessible and flexible, using Python for scripting and featuring simple Logic Bricks for creating game logic without advanced coding skills. <br>
The engine has a robust <a class="alink" href="apireleases">API Documentation</a>, and its quick learning curve allows both beginners and experienced developers to create games efficiently.<br>
It's highly reccomended to understand at least the basics of Python to get the full capacity of the engine, check out this <a class="alink" href="https://www.coursera.org/learn/python-crash-course">Free Python Course by Google.</a></p>
</div>
<div style="margin: 0 8%;display:flex;justify-content:right;">
<button class="splash-nextBtn" onclick="nextSlide(4)">Next</button>
<button class="splash-declineBtn" onclick="nextSlide(2)">Previous</button>
</div>
</div>
<div class="splash-slide" id="slide4">
<h2>Where to interact with other users/devs?</h2>
<div class="splash-slide-content" style="flex-direction:column;justify-content:initial;align-items:center;">
<img src="img/webp/benefits/discordsupport.webp" alt="Discord support banner" loading="lazy" style="position:absolute;z-index:-1;">
<p class="splash-text-desc">
Connecting with the engine communities can significantly accelerate your learning process. By engaging with seasoned users and developers, you gain valuable insights, stay updated with the latest features, and receive prompt support.<br>
So join in our official networks and get ready to start interacting with the community!
</p>
<div class="footer-links">
<a target="_blank" rel="noopener noreferrer" href="https://discord.gg/PV6bAvUFq3"><img class="footer-links-icon" src="img/icons/discord.svg" loading="lazy">Discord Server</a>
<a target="_blank" rel="noopener noreferrer" href="https://youtube.com/channel/UCWLwYxekuvOVaMsquS3OgPg"><img class="footer-links-icon" src="img/icons/youtube.svg" loading="lazy">YouTube Channel</a>
</div>
</div>
<div style="margin: 0 8%;display:flex;justify-content:right;">
<button class="splash-nextBtn" onclick="nextSlide(5)">Next</button>
<button class="splash-declineBtn" onclick="nextSlide(3)">Previous</button>
</div>
</div>
<div class="splash-slide" id="slide5">
<h2>Ready to start!</h2>
<div class="splash-slide-content">
<img class="splash-slide-logo" src="img/webp/RanGEs.webp" loading="lazy" alt="Range Engine logo">
<p class="splash-text-desc" style="background:transparent;">
Now that you’re fully equipped with the essential knowledge and guidance,
it's time to start your journey with Range Engine.
This introduction will enable you to start your gamedev process with confidence.
Your journey begins now, and success is within reach.
Embrace this opportunity and make the most of it!
</p>
</div>
<div style="margin: 0 8%;display:flex;justify-content:right;">
<button class="splash-nextBtn" onclick="closeGuide()">Finish</button>
<button class="splash-declineBtn" onclick="nextSlide(4)">Previous</button>
</div>
</div>
</div>
</div>
<script>
function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
}
function setCookie(name, value, days) {
const d = new Date();
d.setTime(d.getTime() + (days*24*60*60*1000));
const expires = `expires=${d.toUTCString()}`;
document.cookie = `${name}=${value}; ${expires}; path=/`;
}
const startGuide = () => nextSlide(1);
// Function to show the next slide
const nextSlide = (slideNumber) => {
const splash = document.getElementById('splash');
splash.classList.remove('active');
setTimeout(() => {
document.querySelectorAll('.splash-slide').forEach(slide => {
slide.classList.remove('active');
slide.style.display = 'none';
});
const nextSlide = document.getElementById(`slide${slideNumber}`);
nextSlide.style.display = 'flex';
nextSlide.classList.add('active');
splash.classList.add('active');
}, 500);
};
const closeGuide = () => {
document.getElementById('splash-container').remove();
setCookie('hasVisited', 'true', 365);
};
window.onload = () => {
if (!getCookie('hasVisited')) {
document.getElementById('splash-container').style.display = 'flex';
} else {
document.getElementById('splash-container').style.display = 'none';
}
};
</script>
<div id="loading">
<div></div>
</div>
<div id="header"></div>
<section class="indexsec">
<video class="backvideo" poster="img/webp/posterback.webp" preload="metadata" autoplay muted playsinline loop>
<source src="img/Background_RangeWebsite.mp4" type="video/mp4">
</video>
<script src="js/parallax.js" defer></script>
<div class="splashhome">
<div>
<h2 class="splashtitsec"><img src="img/webp/moon.webp" loading="lazy" style="width:15%;position:absolute;z-index:-1;margin: -5% 0 0 -9.8%;opacity:100%;rotate:10deg;filter:contrast(150%);">Experience Range Engine<p class="animbar" translate="no">│</p></h2>
<p class="titdesc">Powerful | Light | Easy</p>
<p class="titdesc-mobile">Powerful<br>Light<br>Easy</p>
</div>
<div class="downnabout" style="font-family:Roboto Condensed;">
<div class="spl-link-button" id="link-button-blue">
<div class="spl-link-ico" style="background-color:rgb(52, 70, 170);">
<i class="material-symbols-outlined">Celebration</i>
</div>
<a href="whatsnew" style="background-color:rgba(36, 95, 188, 0.21);">What's New</a>
</div>
<div class="spl-link-button" id="link-button-grey">
<div class="spl-link-ico" style="background-color:rgb(100, 100, 100);">
<i class="material-symbols-outlined">live_help</i>
</div>
<a href="faq" style="background-color:rgba(145, 145, 145, 0.21);">FAQ</a>
</div>
</div>
<!--div class="downnabout" style="font-family:Roboto Condensed;">
<div class="splash-links">
<div class="spl-link-button">
<div class="spl-link-ico">
<i class="material-symbols-outlined">Download</i>
</div>
<a href="download">Download</a>
</div>
<div class="spl-link-button" id="link-button-blue">
<div class="spl-link-ico" style="background-color:rgb(52, 70, 170);">
<i class="material-symbols-outlined">Celebration</i>
</div>
<a href="whatsnew" style="background-color:rgba(36, 95, 188, 0.21);">What's New</a>
</div>
</div>
<!--div class="splash-links">
<div class="spl-link-button" id="link-button-grey">
<div class="spl-link-ico" style="background-color:rgb(100, 100, 100);">
<i class="material-symbols-outlined">live_help</i>
</div>
<a href="faq" style="background-color:rgba(145, 145, 145, 0.21);">FAQ</a>
</div>
</div>
</div-->
</div>
</div>
</section>
<div class="ltsnw-article">
<h2 class="ltsnw-title"><i style="padding:10px;background-color:#373737;"></i>Latest News:</h2>
<div class="ltsnw-items">
<div class="ltsnw-highlight">
<a class="ltsnw-highlight-item" href="news/2025_04/range-engine-16rev1-is-released.html">
<div>
<img src="news/2025_04/thumbs/RangeEngine16Rev1Announcement.png" alt="Range Engine 1.6 Rev1 announcement" loading="lazy">
</div>
<div class="ltsnw-highlight-desc">
<h3>Range Engine 1.6 Rev 1 LTS Is Released!</h3>
<p>The Range Engine 1.6 LTS just got even better! We've just released our first improved version!</p>
<p class="ltsnw-newsdate">News Date: 13/04/2025</p>
</div>
</a>
</div>
<div class="ltsnw-news">
<div>
<a class="ltsnw-hl-item" href="news/2025_01/range-engine-16-is-released.html">
<img src="news/2025_01/thumbs/RangeEngine16Announcement.png" alt="Range Engine 1.6 announcement" loading="lazy">
<div class="ltsnw-highlight-desc">
<h3>Range Engine 1.6 LTS Is Officially Released!</h3>
<p>After almost a year of hard work we are proud to announce<br>the long-awaited launch of the Range Engine 1.6 LTS.</p>
<p class="ltsnw-newsdate">News Date: 19/01/2025</p>
</div>
</a>
<a class="ltsnw-hl-item" href="news/2024_03/range-engine-15a-is-out.html">
<img src="news/2024_03/thumbs/RangeEngine15aAnnouncement.png" alt="Range Engine 1.5a announcement" loading="lazy">
<div class="ltsnw-hl-item-desc">
<h3>Range Engine 1.5a Is Out</h3>
<p>Range Engine 1.5 was a sucessful release in it's early access. So we decided to<br>make more improvements and finally bring Range Engine 1.5a for everyone!</p>
<p class="ltsnw-newsdate">News Date: 24/03/2024</p>
</div>
</a>
<a class="ltsnw-hl-item" href="news/2023_12/the-future-of-range-engine-16.html">
<img src="news/2023_12/thumbs/futureofrange16splash.jpg" alt="Future of Range Engine 2.0 splash" loading="lazy">
<div class="ltsnw-hl-item-desc">
<h3>The Future Of Range Engine 2.0</h3>
<p>The development of Range Engine 2.0 is in full swing and is heading towards <br>to revolutionize the way we use the engine!</p>
<p class="ltsnw-newsdate">News Date: 19/12/2023</p>
</div>
</a>
<div class="spl-link-button" id="link-button-grey">
<div class="spl-link-ico" style="background-color:rgb(100, 100, 100);">
<i class="material-symbols-outlined">newspaper</i>
</div>
<a href="newspage" style="background-color:rgba(145, 145, 145, 0.21);">Previous News</a>
</div>
</div>
</div>
</div>
</div>
<div class="indexsec" style="padding-top:90px;padding-bottom:90px;background-color:#0f0f0fe0;backdrop-filter:blur(10px);">
<div class="splashhome">
<div class="sobreoprojeto">
<p class="splashtitsec" style="font-size:25px;letter-spacing:-1px;display:block;">Experience an</p>
<h2 class="splashtitsec">Engine of Possibilities</h2>
<p class="splashtitsec" style="font-size:19px;letter-spacing:-1px;display:block;">Take a look in what Range Engine is capable to do</p>
</div>
</div>
</div>
<article style="padding:0 0 10px 0;background-color:#181818/*rgba(39,39,39)*/;">
<div class="home-article">
<div class="art-articles">
<div class="articles-cont">
<div class="h-article-description">
<h3 style="text-align:right;">Powerful Modelling Tools</h3>
<p style="text-align:right;">Based on Blender, With Range Engine you can <b>Model and Sculpt you own Assets,<br> Make Materials and Textures,
create high detailed Animations<br> And build breathtaking levels with advanced tools and modificators.</b></p>
</div>
<ul class="slider">
<li>
<input type="radio" id="slide1" name="slide" checked>
<label for="slide1"></label>
<img src="img/webp/sliders/objectpencil.webp" alt="Object Paint" loading="lazy">
</li>
<li>
<input type="radio" id="slide2" name="slide">
<label for="slide2"></label>
<img src="img/webp/sliders/modeltools.webp" alt="Modelling Tools" loading="lazy"/>
</li>
</ul>
</div>
</div>
<div class="art-articles">
<div class="articles-cont">
<ul class="slider">
<li>
<input type="radio" id="slide7" name="slide3" checked>
<label for="slide7"></label>
<img src="img/sliders/materials.PNG" alt="Materials" loading="lazy"/>
</li>
<li>
<input type="radio" id="slide8" name="slide3">
<label for="slide8"></label>
<img src="img/webp/sliders/pbrmaterials.webp" alt="PBR Materials" loading="lazy">
</li>
</ul>
<div class="h-article-description">
<h3>Beautiful Materials</h3>
<p>Make amazing environments with <b>beautiful PBR materials</b>, you can<br>
use your imagination to make advanced materials with <b>Shader Nodes Editor</b>.</p>
</div>
</div>
</div>
<div class="art-articles">
<div class="articles-cont">
<div class="h-article-description">
<h3 style="text-align:right;">Code With Python Or Visual Language</h3>
<p style="text-align:right;">Range Engine makes coding looks easy, you can code with <b>Python 3.10</b><br>
or make visual scripting with <b>Visual Language</b>, you can also use both ways<br>together! <a class="alink" href="whatsnew">(Range Nodes Coming Soon)</a></p>
</div>
<ul class="slider">
<li>
<input type="radio" id="slide4" name="slide2" checked>
<label for="slide4"></label>
<img src="img/webp/sliders/codelanguages.webp" alt="Logic Bricks and Python" loading="lazy"/>
<li>
<input type="radio" id="slide5" name="slide2">
<label for="slide5"></label>
<img src="img/webp/sliders/brickynodes.webp" alt="Bricky Nodes" loading="lazy"/>
</li>
</li>
</ul>
</div>
</div>
<div class="art-articles">
<div class="articles-cont">
<ul class="slider">
<li>
<input type="radio" id="slide10" name="slide4" checked>
<label for="slide10"></label>
<img src="img/webp/sliders/futureends.webp" alt="The Future Ends" loading="lazy"/>
</li>
<li>
<input type="radio" id="slide11" name="slide4">
<label for="slide11"></label>
<img src="img/webp/sliders/rangearmor.webp" alt="Range Armor" loading="lazy"/>
</li>
</ul>
<div class="h-article-description">
<h3>Publishing Projects</h3>
<p>Of course you want to show to everyone the amazing work you did,<br>
In Range Engine you can export and publish your game with safety,<br>optimization and <b>With no Fees and Licensing Problems!</b></p>
</div>
</div>
</div>
</div>
</article>
<style>
article{
backdrop-filter: blur(0px)!important;
}
.clps-cont {
background-color: #00000000;
}
.clps-bt::after {
color: white;
}
.about-clps {
margin: 0 145px;
}
.about-clps-cont {
margin: 0;
}
.clps-bt {
background-color: #00000000;
border-top: 2px solid white;
border-radius: 0px;
color: white;
}
.clps-bt:hover{
background-color: #ffffff25;
}
.clps-cont {
background-color: #00000000;
}
.clps-bt::after {
content: image-set('img/arrow_down.svg');
font-weight: bold;
font-size: 15px;
color: rgb(0, 0, 0);
float: left;
margin: -2px 5px 0 0;
transition: all 0.15s ease-out;
}
.active_clps {
background-color: #ffffff25;
}
.active_clps::after {
content: image-set('img/arrow_down.svg');
rotate: 180deg;
margin: -4px 5px 0 0;
transition: all 0.15s ease-in;
}
@media (max-width: 850px) {
.about-clps {
margin: 0 50px;
}
.patr-mural-div {
margin: 0px 0px;
}
}
</style>
<div style="padding:40px 0px 40px 0px;background-color:#0f0f0fe0;backdrop-filter:blur(10px);justify-content:center;">
<div class="splashhome">
<div class="sobreoprojeto">
<p class="splashtitsec" style="font-size:25px;letter-spacing:-1px;display:block;">Frequently Asked Questions</p>
<h2 class="splashtitsec">About Range Engine</h2>
</div>
</div>
</div>
<div id="faq" style="background-color:#333;"></div>
<div class="sponsors-home" style="background-color:#111/*#1d241d*//*#131313*/;padding:10px 0;">
<h3 style="font-size:20px;letter-spacing:7px;text-transform:uppercase;font-family:Roboto Condensed,Arial,Helvetica,sans-serif;padding:0px 0px 5px 0px;text-shadow:0px 0px 40px #000000ef;">Special Thanks To</h3>
<a target="_blank" rel="noopener noreferrer" href="https://linktr.ee/stephen_ddungu"><img src="img/webp/sponsors/stephenddungulogo.webp" alt="Stephen Ddungu Logo" loading="lazy"></a>
<p style="cursor:default;color:rgba(255, 255, 255, 0.219);font-size:10px;font-family:Roboto Condensed,Arial,Helvetica,sans-serif;">If you want to sponsor Range Engine, please write to <a style="color:rgba(255, 255, 255, 0.479);" href="mailto:contact@rangeengine.tech">contact@rangeengine.tech</a></p>
</div>
<!--div class="learnmorearticle" style="background-image:url('img/backdivs.png');background-repeat: no-repeat;background-size: cover;text-shadow: 0px 0px 10px black;">
<div class="lmrarticle">
<p><strong>Did you like Range Engine?</strong></p>
<p class="whatsxbge">Become a patron! You earn early access to releases, gifts and help the project keep on</p>
</div>
<div>
<ul style="margin:0;">
<div class="splash-links">
<div class="spl-link-button">
<div class="spl-link-ico" id="spl-link-button-small">
<i class="material-symbols-outlined">health_and_safety</i>
</div>
<a id="spl-link-button-small" target="_blank" rel="noopener noreferrer" href="https://www.patreon.com/rangeengine">Patreon</a>
</div>
<div class="spl-link-button" id="link-button-grey">
<div class="spl-link-ico" style="background-color:rgb(100, 100, 100);" id="spl-link-button-small">
<i class="material-symbols-outlined">contact_support</i>
</div>
<a style="background-color:rgba(145, 145, 145, 0.21);" id="spl-link-button-small" target="_blank" rel="noopener noreferrer" href="learnmore">Learn More</a>
</div>
</div>
</ul>
</div>
</div-->
<div id="footer"></div>
<!--Page Loading Ends Here-->
<script>
var loader = document.getElementById("loading");
window.addEventListener("load", function(){
loader.style.display = "none";
})
</script>
<!---->
<script>
const icons = document.querySelectorAll('i');
icons.forEach(icon => { icon.setAttribute('translate', 'no'); });
</script>
<script src="js/main.js" defer></script>
</body>
</html>