-
-
- © 2020-22 SimpleX | Open-Source Project |
-
-
-
-
-
-
-
-
+
diff --git a/website/src/_includes/hero.html b/website/src/_includes/hero.html
new file mode 100644
index 0000000000..516a5b11d9
--- /dev/null
+++ b/website/src/_includes/hero.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+ {#
#}
+
+
+
+
+
+
+ Other apps have user IDs: Signal, Matrix, Session, Briar, Jami, Cwtch, etc.
+ SimpleX does not, not even random numbers .
+ This radically improves your privacy.
+
+ Why user IDs are bad for privacy?
+ {{ overlay(hero_overlays.sections[1]) }}
+ How does SimpleX work?
+ {{ overlay(hero_overlays.sections[0]) }}
+
+
+ Get SimpleX
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {#
+
+
PLAY
+
#}
+
+
+
+
+
+ {#
+
+
+
PLAY
+
#}
+ {#
+
+ #}
+
+
+ {#
VIDEO #}
+
+
+
+
+ Make a private connection
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/_includes/layouts/article.html b/website/src/_includes/layouts/article.html
index 2982be2912..7ecdca7940 100644
--- a/website/src/_includes/layouts/article.html
+++ b/website/src/_includes/layouts/article.html
@@ -1,24 +1,39 @@
-
-
-
-
-
{{ title }}
-
-
-
-
-
-
+
+
+
+
+
SimpleX blog: {{ title }}
+
+
+
+
+ {% if image %}
+
+ {% else %}
+
+ {% endif %}
+
+
+
+
+
+
-
- {% include "nav.html" %}
-
- {% include "footer.html" %}
-
+
+ {% include "navbar.html" %}
+
+
+
+
+
+ {% include "footer.html" %}
+
diff --git a/website/src/_includes/layouts/main.html b/website/src/_includes/layouts/main.html
new file mode 100644
index 0000000000..890be6cbce
--- /dev/null
+++ b/website/src/_includes/layouts/main.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
{{ title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% block js_scripts %}{% endblock %}
+
+
+
+ {% include "navbar.html" %}
+
+
+ {{ content | safe }}
+
+ {% include "footer.html" %}
+
+
+
+
+
+
diff --git a/website/src/_includes/nav.html b/website/src/_includes/nav.html
deleted file mode 100644
index 39ae7f995a..0000000000
--- a/website/src/_includes/nav.html
+++ /dev/null
@@ -1,140 +0,0 @@
-
-
-
-
-
diff --git a/website/src/_includes/navbar.html b/website/src/_includes/navbar.html
new file mode 100644
index 0000000000..ab8c937edb
--- /dev/null
+++ b/website/src/_includes/navbar.html
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/website/src/_includes/overlay_content/hero/card_1.html b/website/src/_includes/overlay_content/hero/card_1.html
new file mode 100644
index 0000000000..3d7f011e21
--- /dev/null
+++ b/website/src/_includes/overlay_content/hero/card_1.html
@@ -0,0 +1,23 @@
+
+ Many users asked: if SimpleX has no user identifiers, how can it know where to deliver messages?
+
+
+ To deliver mesages, instead of user IDs used by all other platforms,
+ SimpleX uses temporary anonymous pairwise identifiers of message queues,
+ separate for each of your connections — there are no long term identifiers.
+
+
+ You define which server(s) to use to receive the messages,
+ your contacts — the servers you use to send the messages to them.
+ Every conversation is likely to use two different servers.
+
+
+ This design prevents leaking any users' metadata on the application level.
+ To further improve privacy and protect your IP address you can connect to messaging servers via Tor.
+
+
+ Only client devices store user profiles, contacts and groups; the messages are sent with 2-layer end-to-end encryption.
+
+
+ Read more in SimpleX whitepaper .
+
\ No newline at end of file
diff --git a/website/src/_includes/overlay_content/hero/card_2.html b/website/src/_includes/overlay_content/hero/card_2.html
new file mode 100644
index 0000000000..db76cc4a9c
--- /dev/null
+++ b/website/src/_includes/overlay_content/hero/card_2.html
@@ -0,0 +1,21 @@
+
+ When users have persistent identities,
+ even if this is just a random number, like a Session ID,
+ there is a risk that the provider or an attacker can observe
+ how the users are connected and how many messages they send.
+
+
+ They could then correlate this information with the existing
+ public social networks, and determine some real identities.
+
+
+ Even with the most private apps that use Tor v3 services,
+ if you talk to two different contacts via the same profile
+ they can prove that they are connected to the same person.
+
+
+ SimpleX protects against these attacks by not having any
+ user IDs in its design. And, if you use Incognito mode,
+ you will have a different display name for each contact,
+ avoiding any shared data between them.
+
diff --git a/website/src/_includes/overlay_content/simplex_network/card_1.html b/website/src/_includes/overlay_content/simplex_network/card_1.html
new file mode 100644
index 0000000000..098bfac1f6
--- /dev/null
+++ b/website/src/_includes/overlay_content/simplex_network/card_1.html
@@ -0,0 +1,53 @@
+
+ P2P
+ messaging protocols and apps have various problems that make
+ them less reliable than SimpleX, more complex to and
+ analyse, and vulnerable to several types of attack.
+
+
+
+ P2P networks rely on some variant of
+ DHT
+ to route messages. DHT designs have to balance delivery guarantee and latency.
+ SimpleX has both better delivery guarantee and lower latency than P2P, because
+ the message can be redundantly passed via several servers in parallel,
+ using the servers chosen by the recipient.
+ In P2P networks the message is passed through O(log N) nodes
+ sequentially, using nodes chosen by the algorithm.
+
+
+ SimpleX design, unlike most P2P networks, has no global user identifiers
+ of any kind, even temporary, and only uses temporary pairwise identifiers,
+ providing better anonymity and metadata protection.
+
+
+ P2P does not solve
+ MITM attack
+ problem, and most existing implementations do not use out-of-band messages
+ for the initial key exchange. SimpleX uses out-of-band messages or, in some
+ cases, pre-existing secure and trusted connections for the initial key exchange.
+
+
+ P2P implementations can be blocked by some Internet providers (like
+ BitTorrent ).
+ SimpleX is transport agnostic - it can work over standard web protocols, e.g. WebSockets.
+
+
+ All known P2P networks may be vulnerable to
+ Sybil attack ,
+ because each node is discoverable, and the network operates as a whole.
+ Known measures to mitigate it require either a centralized component or expensive
+ proof of work .
+ SimpleX network has no server discoverability, it is fragmented and operates
+ as multiple isolated sub-networks,
+ making network-wide attacks impossible.
+
+
+ P2P networks may be vulnerable to
+ DRDoS attack ,
+ when the clients can rebroadcast and amplify traffic, resulting in network-wide
+ denial of service.
+ SimpleX clients only relay traffic from known connection
+ and cannot be used by an attacker to amplify the traffic in the whole network.
+
+
\ No newline at end of file
diff --git a/website/src/_includes/overlay_content/why_privacy_matters/card_1.html b/website/src/_includes/overlay_content/why_privacy_matters/card_1.html
new file mode 100644
index 0000000000..e38f40cff3
--- /dev/null
+++ b/website/src/_includes/overlay_content/why_privacy_matters/card_1.html
@@ -0,0 +1,19 @@
+
+ Many large companies use information about who you are connected with to estimate your income,
+ sell you the products you don't really need, and to determine the prices.
+
+
+ Online retailers know that people with lower incomes are more likely to make urgent purchases,
+ so they may charge higher prices or remove discounts.
+
+
+ Some financial and insurance companies use social graphs
+ to determine interest rates and premiums.
+ It often makes people with lower incomes pay more —
+ it is known as "poverty premium" .
+
+
+ SimpleX platform protects the privacy of your connections better than any alternative,
+ fully preventing your social graph becoming available to any companies or organizations.
+ Even when people use servers provided by SimpleX Chat, we do not know the number of users or their connections.
+
diff --git a/website/src/_includes/overlay_content/why_privacy_matters/card_2.html b/website/src/_includes/overlay_content/why_privacy_matters/card_2.html
new file mode 100644
index 0000000000..81934affb6
--- /dev/null
+++ b/website/src/_includes/overlay_content/why_privacy_matters/card_2.html
@@ -0,0 +1,15 @@
+
+ Not so long ago we observed the major elections being manipulated
+ by a reputable consulting company
+ that used our social graphs to distort our view of the real world and manipulate our votes.
+
+
+ To be objective and to make independent decisions
+ you need to be in control of your information space.
+ It is only possible if you use private communication platform
+ that does not have access to your social graph.
+
+
+ SimpleX is the first platform that doesn't have any user identifiers by design,
+ in this way protecting your connections graph better than any known alternative.
+
diff --git a/website/src/_includes/overlay_content/why_privacy_matters/card_3.html b/website/src/_includes/overlay_content/why_privacy_matters/card_3.html
new file mode 100644
index 0000000000..aa5a5ba669
--- /dev/null
+++ b/website/src/_includes/overlay_content/why_privacy_matters/card_3.html
@@ -0,0 +1,20 @@
+
+ Everyone should care about privacy and security of their communications —
+ harmless conversations can put you in danger, even if you have nothing to hide.
+
+
+ One of the most shocking stories is the experience of
+ Mohamedou Ould Salahi
+ described in his memoir and shown in The Mauritanian movie.
+ He was put into Guantanamo camp, without trial, and was tortured there for 15 years
+ after a phone call to his relative in Afghanistan, under suspicion of being involved
+ in 9/11 attacks, even though he lived in Germany for the previous 10 years.
+
+
+ Ordinary people get arrested for what they share online, even via their "anonymous" accounts,
+ even in democratic countries .
+
+
+ It is not enough to use an end-to-end encrypted messenger,
+ we all should use the messengers that protect the privacy of our personal networks — who we are connected with.
+
diff --git a/website/src/_includes/overlay_content/why_simplex_is_unique/card_1.html b/website/src/_includes/overlay_content/why_simplex_is_unique/card_1.html
new file mode 100644
index 0000000000..10d476bb3c
--- /dev/null
+++ b/website/src/_includes/overlay_content/why_simplex_is_unique/card_1.html
@@ -0,0 +1,19 @@
+
+ Unlike other messaging platforms, SimpleX has no identifiers assigned to the users .
+ It does not rely on phone numbers, domain-based addresses (like email or XMPP),
+ usernames, public keys or even random numbers to identify its users —
+ we don't know how many people use our SimpleX servers.
+
+
+ To deliver messages SimpleX uses
+ pairwise anonymous addresses
+ of unidirectional message queues, separate for received and sent messages,
+ usually via different servers.
+ Using SimpleX is like having a different “burner” email or phone
+ for each contact , and no hassle to manage them.
+
+
+ This design protects the privacy of who you are communicating with,
+ hiding it from SimpleX platform servers and from any observers.
+ To hide your IP address from the servers, you can connect to SimpleX servers via Tor .
+
diff --git a/website/src/_includes/overlay_content/why_simplex_is_unique/card_2.html b/website/src/_includes/overlay_content/why_simplex_is_unique/card_2.html
new file mode 100644
index 0000000000..b5dfbfd27b
--- /dev/null
+++ b/website/src/_includes/overlay_content/why_simplex_is_unique/card_2.html
@@ -0,0 +1,9 @@
+
+ Because you have no identifier on the SimpleX platform,
+ nobody can contact you unless you share a one-time
+ or temporary user address, as a QR code or a link.
+
+
+ Even with the optional user address, while it can be used to send spam contact requests,
+ you can change or completely delete it without losing any of your connections.
+
diff --git a/website/src/_includes/overlay_content/why_simplex_is_unique/card_3.html b/website/src/_includes/overlay_content/why_simplex_is_unique/card_3.html
new file mode 100644
index 0000000000..82d45d1d81
--- /dev/null
+++ b/website/src/_includes/overlay_content/why_simplex_is_unique/card_3.html
@@ -0,0 +1,21 @@
+
+ SimpleX Chat stores all user data only on client devices
+ using a portable encrypted database format
+ that can be exported and transferred to any supported device.
+
+
+ The end-to-end encrypted messages are held temporarily
+ on SimpleX relay servers until received,
+ then they are permanently deleted.
+
+
+ Unlike federated networks servers (email, XMPP or Matrix),
+ SimpleX servers don't store user accounts,
+ they only relay messages, protecting the privacy of both parties.
+
+
+ There are no identifiers or ciphertext in common
+ between sent and received server traffic —
+ if anybody is observing it, they cannot easily determine
+ who communicates with whom, even if TLS is compromised.
+
diff --git a/website/src/_includes/overlay_content/why_simplex_is_unique/card_4.html b/website/src/_includes/overlay_content/why_simplex_is_unique/card_4.html
new file mode 100644
index 0000000000..0ef8f5fbec
--- /dev/null
+++ b/website/src/_includes/overlay_content/why_simplex_is_unique/card_4.html
@@ -0,0 +1,19 @@
+
+ You can use SimpleX with your own servers
+ and still communicate with people who use
+ the pre-configured servers provided by us.
+
+
+ SimpleX platform uses an open protocol
+ and provides SDK to create chat bots ,
+ allowing implementation of services that users can interact with
+ via SimpleX Chat apps — we're really looking forward to see
+ what SimpleX services you can build.
+
+
+ If you are considering developing for the SimpleX platform,
+ for example, the chat bot for SimpleX app users, or
+ the integration of the SimpleX Chat library into your mobile apps,
+ please get in touch
+ for any advice and support.
+
diff --git a/website/src/_includes/sections/join_simplex.html b/website/src/_includes/sections/join_simplex.html
new file mode 100644
index 0000000000..75819c05e6
--- /dev/null
+++ b/website/src/_includes/sections/join_simplex.html
@@ -0,0 +1,37 @@
+{# join simplex #}
+
+
+
Join SimpleX
+
We invite you to join the conversion
+
+
+
+
Sign up to receive our updates
+
+
+
+
+
+
Get SimpleX
+
+
+
\ No newline at end of file
diff --git a/website/src/_includes/sections/simplex_unique.html b/website/src/_includes/sections/simplex_unique.html
new file mode 100644
index 0000000000..0e87db6b64
--- /dev/null
+++ b/website/src/_includes/sections/simplex_unique.html
@@ -0,0 +1,87 @@
+
+
+
Why SimpleX is unique
+
+
+
+
+ {% for section in why_simplex_is_unique.sections %}
+
+
+
+
+
+
+
+
+
+
#{{ section.id }}
+
{{ section.title | safe }}
+
+
+
+ {% if section.descBody %}
+
+ {% include section.descBody %}
+
+ {% else %}
+
{{ section.desc | safe }}
+ {% endif %}
+ {% if section.overlayContent %}
+
{{ section.overlayContent.linkText }}
+ {% endif %}
+
+
+
+
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% for section in why_simplex_is_unique.sections %}
+ {% if section.overlayContent %}
+ {{ overlay(section) }}
+ {% endif %}
+{% endfor %}
+
+
\ No newline at end of file
diff --git a/website/src/_includes/sections/simplex_unique/card_1.html b/website/src/_includes/sections/simplex_unique/card_1.html
new file mode 100644
index 0000000000..80f7db191f
--- /dev/null
+++ b/website/src/_includes/sections/simplex_unique/card_1.html
@@ -0,0 +1,9 @@
+
+ SimpleX protects the privacy of your profile, contacts and metadata,
+ hiding it from SimpleX platform servers and any observers.
+
+
+ Unlike any other existing messaging platform,
+ SimpleX has no identifiers assigned to the users —
+ not even random numbers .
+
diff --git a/website/src/_includes/sections/simplex_unique/card_2.html b/website/src/_includes/sections/simplex_unique/card_2.html
new file mode 100644
index 0000000000..1185bd663d
--- /dev/null
+++ b/website/src/_includes/sections/simplex_unique/card_2.html
@@ -0,0 +1,5 @@
+
+ Because you have no identifier or fixed address on the SimpleX platform,
+ nobody can contact you unless you share a one-time
+ or temporary user address, as a QR code or a link.
+
diff --git a/website/src/_includes/sections/simplex_unique/card_3.html b/website/src/_includes/sections/simplex_unique/card_3.html
new file mode 100644
index 0000000000..cc4397cff2
--- /dev/null
+++ b/website/src/_includes/sections/simplex_unique/card_3.html
@@ -0,0 +1,7 @@
+
+ SimpleX stores all user data on client devices in a portable encrypted database format —
+ it can be transferred to another device.
+
+
+ The end-to-end encrypted messages are held temporarily on SimpleX relay servers until received, then they are permanently deleted.
+
diff --git a/website/src/_includes/sections/simplex_unique/card_4.html b/website/src/_includes/sections/simplex_unique/card_4.html
new file mode 100644
index 0000000000..70123decc7
--- /dev/null
+++ b/website/src/_includes/sections/simplex_unique/card_4.html
@@ -0,0 +1,7 @@
+
+ The SimpleX network is fully decentralised and independent of any crypto-currency or any other platform, other than the Internet.
+
+
+ You can use SimpleX with your own servers
+ or with the servers provided by us — and still connect to any user.
+
diff --git a/website/src/_includes/simplex_explained.html b/website/src/_includes/simplex_explained.html
new file mode 100644
index 0000000000..008369512a
--- /dev/null
+++ b/website/src/_includes/simplex_explained.html
@@ -0,0 +1,116 @@
+
+
+
+
+
Simplex explained
+
+
+
+
1. What users experience
+
2. How does it work
+
3. What servers see
+
+
+
+
+
+
+
+
1. What users experience
+
+
+
+ You can create contacts and groups, and have two-way conversations, as in any other messenger.
+
+
+ How can it work with unidirectional queues and without user profile identifiers?
+
+
+
+
+
+
2. How does it work
+
+
+
+ For each connection you use two separate messaging queues to send and receive messages via different servers.
+
+
+ Servers only pass messages one way, without having the full picture of user's conversation or connections.
+
+
+
+
+
+
3. What servers see
+
+
+
+ The servers have separate anonymous credentials for each queue, and do not know which users they belong to.
+
+
+ Users can further improve metadata privacy by using Tor to access servers, preventing corellation by IP address.
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/website/src/blog.html b/website/src/blog.html
index e48549a0dd..f60a7694ff 100644
--- a/website/src/blog.html
+++ b/website/src/blog.html
@@ -1,48 +1,75 @@
-
-
-
-
-
-
-
-
-
-
Blogs
-
-
-
-
- {% include "nav.html" %}
-
-
- {% for blog in collections.blogs %}
-
- {{ blog.data.title }}
- {{ blog.data.date.toUTCString().split(' ').slice(0, 4).join(' ') }}
- Read More
-
-
+---
+layout: layouts/main.html
+title: "SimpleX blog: the latest news"
+description: "SimpleX Chat - a private and encrypted messenger without any user IDs (not even random ones)! Make a private connection via link / QR code to send messages and make calls."
+ogURL: "https://simplex.chat/blog"
+templateEngineOverride: njk
+active_blog: true
+---
+{% block css_links %}
+
+{% endblock %}
+
+
+
+
Latest news
+
+ {% for blog in collections.blogs %}
+
+
+
+ {% if blog.data.image %}
+ {% if blog.data.imageBottom %}
+
+ {% else %}
+
+ {% endif %}
+ {% else %}
+
+
+ {% endif %}
+
+
+
+
+
+
+ {{ blog.data.date.toUTCString().split(' ').slice(0, 4).join(' ') }}
+
+ {% if blog.data.previewBody %}
+
+ {% include blog.data.previewBody %}
+
+ {% elif blog.data.preview %}
+
{{ blog.data.preview | safe }}
+ {% endif %}
+
+
Read More
+
+
{% endfor %}
-
-
-
-
+
+
\ No newline at end of file
diff --git a/website/src/contact.html b/website/src/contact.html
new file mode 100644
index 0000000000..1937ebf91f
--- /dev/null
+++ b/website/src/contact.html
@@ -0,0 +1,9 @@
+---
+layout: layouts/main.html
+title: "SimpleX Chat - Contact"
+header: "You have been sent a link to connect on SimpleX Chat"
+ogURL: "https://simplex.chat/"
+templateEngineOverride: njk
+---
+
+{% include "contact_page.html" %}
\ No newline at end of file
diff --git a/website/src/contact/index.html b/website/src/contact/index.html
deleted file mode 100644
index 51b6701473..0000000000
--- a/website/src/contact/index.html
+++ /dev/null
@@ -1,187 +0,0 @@
-
-
-
-
-
-
-
- SimpleX chat: private, secure, no global identities
-
-
-
-
-
-
-
-
-
-
-
-
-
- {% include "nav.html" %}
-
-
-
-
This link is the invitation from a SimpleX Chat user
-
-
-
-
-
-
-
-
Scan QR code from mobile app
-
- To make a connection:
-
-
- install SimpleX app
- tap the button below
- tap Connect button in the app
-
-
-
-
-
-
-
-
-
-
-
-
To install SimpleX Chat for the terminal
-
-
- use this command:
-
-
-
curl -o- https://raw.githubusercontent.com/simplex-chat/simplex-chat/master/install.sh
- |
- bash
-
- Copy to clipboard
-
-
-
-
-
-
-
-
- See SimpleX Chat
- GitHub repository
-
- for the instructions how to download or compile it from the source code.
-
-
-
-
-
-
-
-
-
- Use SimpleX
-
- SimpleX chat terminal client
- v2.0.0 is
- released!
- – groups and files
- – two-layer E2E encryption, with double-ratchet algorithm
- – protocol is compatible with mobile apps
-
-
- You can use our servers or deploy your own, e.g. using
-
- StackScript on Linode .
-
-
- Sign up to be updated about the new releases.
-
-
-
-
-
- Join SimpleX
-
- The project can move faster with your help.
- We develop it in Haskell.
-
-
-
-
-
-
-
-
-
-
-
diff --git a/website/src/contact/index.js b/website/src/contact/index.js
deleted file mode 100644
index 0ee91f21dd..0000000000
--- a/website/src/contact/index.js
+++ /dev/null
@@ -1,67 +0,0 @@
-(function () {
-
-let complete = false
-run()
-window.onload = run
-
-async function run() {
- const connURIel = document.getElementById("conn_req_uri_text");
- const mobileConnURIanchor = document.getElementById("mobile_conn_req_uri");
- const connQRCode = document.getElementById("conn_req_uri_qrcode");
- if (complete || !connURIel || !mobileConnURIanchor || !connQRCode) return
- complete = true
- const connURI = document.location.toString().replace(/\/(contact|invitation)\//, "/$1");
- connURIel.innerText = "/c " + connURI;
- mobileConnURIanchor.href = connURI.replace("https://simplex.chat", "simplex:");
- if (document.location.pathname.indexOf("/contact") >= 0) {
- let connModeEl = document.querySelector("#conn_req .conn_mode")
- if (connModeEl) connModeEl.innerText = "address of";
- }
- const els = document.querySelectorAll(".content_copy_with_tooltip");
- if (navigator.clipboard) {
- els.forEach(contentCopyWithTooltip)
- } else {
- const tooltips = document.querySelectorAll(".content_copy_with_tooltip .tooltip");
- tooltips.forEach(el => el.style.visibility = "hidden")
- }
-
- try {
- await QRCode.toCanvas(connQRCode, connURI, {
- errorCorrectionLevel: "M",
- color: {dark: "#062D56"}
- });
- connQRCode.style.width = "360px";
- connQRCode.style.height = "360px";
- } catch (err) {
- console.error(err);
- }
-
- function contentCopyWithTooltip(parent) {
- const content = parent.querySelector(".content");
- const tooltip = parent.querySelector(".tooltiptext");
- console.log(parent.querySelector(".content_copy") ,111)
- console.log(parent)
- const copyButton = parent.querySelector(".content_copy");
- copyButton.addEventListener("click", copyAddress)
- copyButton.addEventListener("mouseout", resetTooltip)
-
- function copyAddress() {
- navigator.clipboard.writeText(content.innerText || content.value);
- tooltip.innerHTML = "Copied!";
- }
-
- function resetTooltip() {
- tooltip.innerHTML = "Copy to clipboard";
- }
- }
-
- function copyAddress() {
- navigator.clipboard.writeText(connURI);
- tooltipEl.innerHTML = "Copied!";
- }
-
- function resetTooltip() {
- tooltipEl.innerHTML = "Copy to clipboard";
- }
-}
-})();
diff --git a/website/src/css/blog.css b/website/src/css/blog.css
index 3cceb226f8..d2153e3365 100644
--- a/website/src/css/blog.css
+++ b/website/src/css/blog.css
@@ -1,71 +1,164 @@
-h1 {
- font-size: 1.8rem;
- font-weight: 600;
- letter-spacing: 0.6px;
+#article h1 {
+ font-size: 38px;
+ font-weight: 700;
+ letter-spacing: 0.02em;
+ background: -webkit-linear-gradient(to bottom, #53C1FF -50%, #0053D0 160%);
+ background: linear-gradient(to bottom, #53C1FF -50%, #0053D0 160%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ text-fill-color: transparent;
+
+ margin-bottom: 32px;
}
-section.container > div > p:nth-child(2) {
+@media (min-width:768px) {
+ #article h1 {
+ font-size: 45px;
+ margin-bottom: 50px;
+ }
+}
+
+.dark #article h1 {
+ background: -webkit-linear-gradient(to bottom, #70F0F9 100%, #70F0F9 100%);
+ background: linear-gradient(to bottom, #70F0F9 100%, #70F0F9 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ text-fill-color: transparent;
+}
+
+section.container>div>p:nth-child(2) {
margin: 0;
- margin-bottom: 2rem;
- margin-top: 4px;
- font-size: 1rem;
+ font-size: 12px;
+ font-weight: 400;
+ letter-spacing: 0.03em;
+ color:
+ #3F484B;
}
-h2 {
- font-size: 1.6rem;
- font-weight: 600;
- letter-spacing: 0.6px;
- margin-bottom: 1rem;
- margin-top: 2.2rem;
+.dark section.container>div>p:nth-child(2) {
+ color: #A8B0B4;
}
-h3 {
- font-size: 1.2rem;
- font-weight: 600;
- letter-spacing: 0.6px;
- margin-bottom: 1rem;
- margin-top: 1.8rem;
+#article h2 {
+ font-size: 28px;
+ font-weight: 700;
+ color: #3F484B;
}
-ul li,
-ol li {
- text-decoration: none;
- /* list-style: none; */
- font-size: 1.1rem;
- line-height: 30px;
- letter-spacing: 0.6px;
- margin: 0.5rem 0;
- -webkit-margin-start: 1rem;
+@media (min-width:768px) {
+ #article h2 {
+ font-size: 38px;
+ }
}
-ul,
-ol {
+
+.dark #article h2 {
+ color: white;
+}
+
+#article h3 {
+ font-size: 20px;
+ font-weight: 700;
+ letter-spacing: 0.02em;
+ color: #606C71;
+
+ margin: 50px 0 25px 0;
+}
+
+@media (min-width:768px) {
+ #article h3 {
+ font-size: 28px;
+ }
+}
+
+.dark #article h3 {
+ color: white;
+}
+
+#article p {
+ font-weight: 400;
+ font-size: 16px;
+ line-height: 24px;
+ color: black;
+ margin: 1.2rem 0;
+}
+
+.dark #article p {
+ color: white;
+}
+
+#article ul,
+#article ol {
list-style-position: inside;
- /* list-style-type: decimal; */
overflow: auto;
+ margin: 1rem 0;
}
-ul li::marker,
-ol li::marker {
- /* content: "-> "; */
- font-weight: 600;
- /* color: #fbd561; */
+
+#article ul li,
+#article ol li {
+ -webkit-margin-start: 1rem;
+ color: #000;
}
+
+.dark #article ul li,
+.dark #article ol li {
+ color: #fff;
+}
+
+#article ul li::marker,
+#article ol li::marker {
+ color: black;
+}
+
+.dark #article ul li::marker,
+.dark #article ol li::marker {
+ color: white;
+}
+
+#article ul li a,
+#article ol li a {
+ line-height: 30px;
+}
+
+#article ul li {
+ list-style: disc;
+}
+
+#article ol li {
+ list-style: decimal;
+}
+
+#article a {
+ color: #0053D0;
+ text-decoration: underline;
+ text-underline-offset: 4px;
+}
+
+.dark #article a {
+ color: #70F0F9;
+}
+
pre {
overflow: auto;
}
+
+.dark pre {
+ color: white;
+}
+
/* code{
width: 100%;
height: auto;
} */
-p {
- margin: 1rem 0;
-}
+
html {
scroll-behavior: smooth;
}
-h1::before,
+/* h1::before,
h2::before,
h3::before {
display: block;
@@ -74,8 +167,35 @@ h3::before {
height: 80px;
visibility: hidden;
pointer-events: none;
-}
+} */
:focus {
outline: none;
}
+
+p,
+a,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+li,
+ul,
+ol,
+span,
+div,
+blockquote,
+pre,
+code {
+ clear: both;
+}
+
+#article p img {
+ float: left;
+}
+
+#article img {
+ margin-bottom: 1.5rem;
+}
\ No newline at end of file
diff --git a/website/src/css/style.css b/website/src/css/style.css
index 209fb3514f..69c53a8153 100644
--- a/website/src/css/style.css
+++ b/website/src/css/style.css
@@ -1,17 +1,654 @@
-html {
- scroll-behavior: smooth;
+@font-face {
+ font-family: Gilroy;
+ src: url("/fonts/GilroyRegular/font.woff2") format("woff2"), url("webFonts/GilroyRegular/font.woff") format("woff");
+ font-weight: 400;
+ font-style: normal;
}
-#comparison::before {
+@font-face {
+ font-family: Gilroy;
+ src: url("/fonts/GilroyLight/font.woff2") format("woff2"), url("webFonts/GilroyLight/font.woff") format("woff");
+ font-weight: 300;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: Gilroy;
+ src: url("/fonts/GilroyMedium/font.woff2") format("woff2"), url("webFonts/GilroyMedium/font.woff") format("woff");
+ font-weight: 500;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: Gilroy;
+ src: url("/fonts/GilroyBold/font.woff2") format("woff2"), url("webFonts/GilroyBold/font.woff") format("woff");
+ font-weight: 700;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: Gilroy;
+ src: url("/fonts/GilroyRegularItalic/font.woff2") format("woff2"), url("webFonts/GilroyRegularItalic/font.woff") format("woff");
+ font-weight: 400;
+ font-style: italic;
+}
+
+html {
+ scroll-behavior: smooth;
+ font-family: Gilroy, Helvetica, sans-serif;;
+ letter-spacing: 0.003em;
+}
+
+/* #comparison::before {
display: block;
content: " ";
margin-top: -80px;
height: 120px;
visibility: hidden;
pointer-events: none;
-}
+} */
/* .nav-button-active{
background-color: #00C8FB;
color: #fff;
} */
+
+/* NEW SITE */
+.container,
+.container-fluid,
+.container-xxl,
+.container-xl,
+.container-lg,
+.container-md,
+.container-sm {
+ width: 100%;
+ /* padding: 0 20px; */
+ margin-right: auto;
+ margin-left: auto;
+}
+
+@media (min-width: 576px) {
+
+ .container-sm,
+ .container {
+ max-width: 540px;
+ }
+}
+
+@media (min-width: 768px) {
+
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 720px;
+ }
+}
+
+@media (min-width: 992px) {
+
+ .container-lg,
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 960px;
+ }
+}
+
+@media (min-width: 1200px) {
+
+ .container-xl,
+ .container-lg,
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 1140px;
+ }
+}
+
+@media (min-width: 1400px) {
+
+ .container-xxl,
+ .container-xl,
+ .container-lg,
+ .container-md,
+ .container-sm,
+ .container {
+ max-width: 1320px;
+ }
+}
+
+.gradient-text {
+ background: -webkit-linear-gradient(to bottom, #53C1FF -50%, #0053D0 160%);
+ background: linear-gradient(to bottom, #53C1FF -50%, #0053D0 160%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ text-fill-color: transparent;
+}
+
+.dark .border-gradient {
+ background:
+ linear-gradient(#11182F, #11182F) padding-box,
+ linear-gradient(to bottom, transparent, #01F1FF 58%) border-box;
+ border: 1px solid transparent;
+}
+
+.dark .only-light {
+ display: none;
+}
+
+.only-dark {
+ display: none;
+}
+
+.dark .only-dark {
+ display: inherit;
+}
+
+.dark .unique-swiper .border-gradient{
+ background:
+ linear-gradient(#0C0B13, #0C0B13) padding-box,
+ linear-gradient(to bottom, transparent, #01F1FF 58%) border-box;
+ border: 1px solid transparent;
+}
+
+/* Nav and Menu */
+#why-simplex::before,
+#features::before,
+#simplex-privacy::before,
+#simplex-network::before {
+ display: block;
+ content: " ";
+ margin-top: -26px;
+ height: 66px;
+ visibility: hidden;
+ pointer-events: none;
+}
+
+.menu-link{
+ font-size: 16px;
+ line-height: 33.42px;
+ color: #0D0E12;
+}
+.dark .menu-link{
+ color: #fff;
+}
+
+@media (min-width:1024px) {
+ .nav-link-text,
+ .menu-link {
+ display: inline-block;
+ position: relative;
+ color: #0D0E12;
+ }
+
+ .nav-link-text::before,
+ .active .nav-link-text::before,
+ .menu-link::before {
+ content: "";
+ position: absolute;
+ width: 0;
+ height: 1px;
+ bottom: 0;
+ right: 0;
+ /* background-color: initial; */
+ transition: width 0.25s ease-out;
+ }
+
+ .menu-link::before {
+ background-color: #0D0E12;
+ }
+ .dark .menu-link::before {
+ background-color: #fff;
+ }
+
+ .active .nav-link-text::before {
+ width: 100%;
+ }
+
+ .nav-link:hover .nav-link-text::before,
+ .menu-link:hover::before {
+ width: 100%;
+ left: 0;
+ right: auto;
+ }
+}
+
+
+.sub-menu {
+ visibility: hidden;
+ opacity: 0;
+ color: #505158;
+}
+
+.dark .sub-menu {
+ color: #fff;
+}
+
+.dark .sub-menu li:hover {
+ color: #66D9E2;
+}
+
+.sub-menu li:hover {
+ color: #0053D0;
+}
+
+.sub-menu {
+ transition: all .3s ease !important;
+}
+
+.nav-link span svg,
+header nav {
+ transition: all 0.5s ease;
+}
+
+.nav-link:hover span svg {
+ transform: rotate(180deg);
+}
+
+/* @media (max-width: 1400px) {
+ .landing-page-header-article-paragraph {
+ width: 21rem;
+ }
+
+ .socials {
+ flex-wrap: nowrap;
+ }
+} */
+
+@media (min-width:1024px) {
+
+ .nav-link:hover .sub-menu,
+ .nav-link:focus-within .sub-menu {
+ visibility: visible;
+ opacity: 1;
+ margin-top: 0;
+ }
+}
+
+@media (max-width: 1024px) {
+ .sub-menu {
+ max-height: 0;
+ transform: translateY(-10px);
+ transition: all .7s ease !important;
+ }
+
+ .active .sub-menu {
+ max-height: 200px;
+ transform: translateY(0px);
+ opacity: 1;
+ visibility: visible;
+ margin-top: 0;
+ }
+
+ header nav {
+ visibility: hidden;
+ opacity: 0;
+ transform: translateX(100%);
+ }
+
+ header nav.open {
+ visibility: visible;
+ opacity: 1;
+ transform: translateX(0);
+ }
+}
+
+.lock-scroll {
+ overflow: hidden;
+}
+
+/* Swipe Sections */
+.hash-number {
+ background: linear-gradient(251.16deg, #53C1FF 1.1%, #0053D0 100.82%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+}
+
+.swiper-button-disabled{
+ opacity: 0;
+ pointer-events: none;
+ display: none !important;
+}
+
+.swiper-pagination-bullet {
+ height: 14.31px;
+ width: 14.31px;
+ margin: 0 5px !important;
+}
+.dark .swiper-pagination-bullet{
+ background: #D4D4D433;
+ opacity: .8;
+}
+
+.swiper-pagination-bullet-active{
+ opacity: 1 !important;
+}
+.swiper-pagination-bullet-active {
+ background-color: #0197FF !important;
+}
+.dark .swiper-pagination-bullet-active{
+ background-color: #70F0F9 !important;
+}
+
+.swiper-button-next,
+.swiper-button-prev {
+ height: 40px;
+ width: 40px;
+}
+
+.swiper-button-disabled {
+ display: none;
+}
+
+.unique-swiper .swiper-slide,
+.unique-swiper .swiper-wrapper{
+ height: inherit;
+}
+
+.swiper-scrollbar-horizontal {
+ margin-top: 40px !important;
+ width: 302.06px !important;
+ height: 7.73px !important;
+ left: 50% !important;
+ transform: translateX(-50%) !important;
+ transform: translateX(-50%) !important;
+}
+
+.swiper-scrollbar-drag {
+ width: 112px !important;
+ height: 8px !important;
+ background-color: #0197FF;
+}
+.dark .swiper-scrollbar-drag{
+ background-color: #70F0F9;
+}
+
+/* What makes simplex private */
+.card{
+ cursor: pointer;
+}
+
+.card,
+.card > div:nth-child(2),
+.card > div:nth-child(1) {
+ transition: all .5s ease;
+}
+
+.card > div:nth-child(2) > *:nth-child(2),
+.card > div:nth-child(2) > *:nth-child(3) {
+ opacity: 0;
+ max-height: 0;
+ transform: translateY(20px);
+ transition: all .5s ease-out;
+}
+.card > div:nth-child(2) > *:nth-child(3) {
+ transform: translateY(40px);
+}
+
+.card:hover > div:nth-child(1) {
+ height: 200px;
+ padding: 12px 10px;
+}
+.card:hover > div:nth-child(2) {
+ height: 270px;
+ padding: 8px 24px;
+}
+.card.card-active > div:nth-child(2) {
+ height: 470px;
+}
+
+.card:hover > div:nth-child(2) > *:nth-child(2),
+.card:hover > div:nth-child(2) > *:nth-child(3),
+.card.card-active > div:nth-child(2) > *:nth-child(2),
+.card.card-active > div:nth-child(2) > *:nth-child(3) {
+ opacity: 1;
+ max-height: 470px;
+ transform: translateY(0px);
+}
+
+.card:not(.no-hover):hover > div:nth-child(2) > *:nth-child(3){
+ opacity: 0;
+}
+
+
+/* SimpleX Unique */
+.simplex-unique-card .card-content{
+ transition: all .5s ease-out;
+}
+@media (max-width: 768px) {
+ .simplex-unique-card .card-content .content-body{
+ height: 0;
+ opacity: 0;
+ visibility: hidden;
+ transform: translateY(80px);
+ transition: all .7s ease;
+ }
+ .simplex-unique-card.active-card .card-content .content-body{
+ max-height: 540px;
+ opacity: 1;
+ visibility: visible;
+ transform: translateY(0px);
+ }
+ .simplex-unique-card.active-card .card-content{
+ height: 540px;
+ }
+ .open-card-btn svg,
+ .close-card-btn svg{
+ transition: all .5s ease;
+ }
+ .open-card-btn:hover svg,
+ .close-card-btn:hover svg{
+ transform: rotate(180deg);
+ }
+}
+
+
+/* comparison */
+#comparison table td,
+#comparison table th {
+ font-size: 15px;
+ font-weight: normal;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: 1.4;
+ letter-spacing: 0.47px;
+}
+
+
+/* hero */
+header{
+ transition: all .7s ease;
+}
+.primary-header {
+ background: linear-gradient(270deg, #0053D0 35.85%, #0197FF 94.78%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ text-shadow: 0px 4px 74px #e9e7e2;
+}
+.dark .primary-header{
+ background: linear-gradient(270deg,#70F0F9 100%, #70F0F9 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ text-shadow: none;
+}
+.secondary-header {
+ color: #606c71;
+ text-shadow: 0px 4px 74px #e9e7e2;
+}
+.dark .secondary-header{
+ color: #fff;
+ text-shadow: none;
+}
+.hero-phone-background {
+ background-image: url("/img/new/bg_gfx.png");
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: contain;
+ /* width: 644px;
+ height: 644px;
+ margin-bottom: 5rem; */
+
+
+ /* position: fixed; */
+
+ /* justify-content: center;
+ align-items: center;
+ align-content: center;
+ justify-items: center;
+ */
+}
+#hero-phone-light, #hero-phone-dark {
+ position: relative;
+ animation-name: none;
+ animation-duration: 2s;
+ animation-fill-mode: forwards;
+}
+
+#hero-phone-video {
+ /* position: absolute;
+ border-radius: 10px;
+ background-color: black;
+ animation-name: none; */
+ /* border-top-right-radius: 25px; */
+ /* border-top-left-radius: 32px; */
+ animation-duration: 2s;
+ animation-fill-mode: forwards;
+ /* height: 580px;
+ width: 256px; */
+ /* margin-left: 0.3rem;
+ margin-bottom: 0.1rem; */
+}
+
+.description {
+ width: 31rem;
+}
+
+@media (max-width: 1400px) {
+ /* #hero-phone-video {
+ border-radius: 15px;
+ height: 500px;
+ width: 227px;
+ margin-bottom: 4.7rem;
+ } */
+}
+
+@keyframes small {
+ 0% {
+ transform: scale(1);
+ }
+
+ 100% {
+ transform: scale(0.66);
+ }
+}
+@keyframes big {
+ 0% {
+ transform: scale(0.66);
+ }
+
+ 100% {
+ transform: scale(1);
+ }
+}
+@keyframes bigvideo {
+ 0% {
+ transform: scale(0.66);
+ opacity: 0;
+ }
+
+ 100% {
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+.tablet-hero-phone-background {
+ background-image: url("../Images/bg_gfx.png");
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: contain;
+ position: absolute;
+ width: 40%;
+ top: 5%;
+ left: 30%;
+}
+.tablet-hero-phone {
+ transform: skewY(25deg);
+}
+
+/* Overlays */
+.overlay a,
+p a{
+ color: #0053D0;
+ text-decoration: underline;
+ text-underline-offset: 2px;
+}
+.dark .overlay a,
+.dark p a{
+ color: #70F0F9;
+}
+
+/* For Contact & Invitation Page */
+.primary-header-contact {
+ background: linear-gradient(251.16deg, #53c1ff 1.1%, #0053d0 100.82%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ text-shadow: 0px 4px 74px #e9e7e2;
+}
+.dark .primary-header-contact{
+ background: linear-gradient(270deg,#70F0F9 100%, #70F0F9 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ text-shadow: none;
+}
+.secondary-header-contact {
+ text-shadow: 0px 4px 74px #e9e7e2;
+}
+.dark .secondary-header-contact {
+ text-shadow: none;
+}
+.content_copy_with_tooltip {
+ background-color: #f8f8f6;
+ border-radius: 50px;
+ padding-bottom: 4px;
+ padding-top: 8px;
+ margin-top: 16px;
+ margin-bottom: 16px;
+}
+.content_copy_with_tooltip .tooltip {
+ vertical-align: -6px;
+}
+.content_copy_with_tooltip .content {
+ font-size: 15px;
+}
+.contact-tab > .contact-tab-content{
+ opacity: 0;
+ max-height: 0;
+ transition: all 0.5s ease;
+ visibility: hidden;
+ transform: translateY(10px);
+ overflow: hidden;
+}
+.contact-tab svg{
+ transform: rotate(-180deg);
+ transition: all .5s ease;
+}
+.contact-tab.active > .contact-tab-content{
+ opacity: 1;
+ max-height: 300px;
+ visibility: visible;
+ transform: translateY(0px);
+}
+.for-tablet .contact-tab.active > .contact-tab-content{
+ min-height: 450px;
+}
+.contact-tab.active svg,
+.contact-tab:hover svg{
+ transform: rotate(0deg);
+}
\ No newline at end of file
diff --git a/website/src/css/swiper-bundle.min.css b/website/src/css/swiper-bundle.min.css
new file mode 100644
index 0000000000..916173ac0d
--- /dev/null
+++ b/website/src/css/swiper-bundle.min.css
@@ -0,0 +1,13 @@
+/**
+ * Swiper 8.4.3
+ * Most modern mobile touch slider and framework with hardware accelerated transitions
+ * https://swiperjs.com
+ *
+ * Copyright 2014-2022 Vladimir Kharlampidi
+ *
+ * Released under the MIT License
+ *
+ * Released on: October 6, 2022
+ */
+
+@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-pointer-events{touch-action:pan-y}.swiper-pointer-events.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d,.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:50%;background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}
\ No newline at end of file
diff --git a/website/src/fonts/GilroyBold/font.woff b/website/src/fonts/GilroyBold/font.woff
new file mode 100644
index 0000000000..1f252b0ba5
Binary files /dev/null and b/website/src/fonts/GilroyBold/font.woff differ
diff --git a/website/src/fonts/GilroyBold/font.woff2 b/website/src/fonts/GilroyBold/font.woff2
new file mode 100644
index 0000000000..687474f86e
Binary files /dev/null and b/website/src/fonts/GilroyBold/font.woff2 differ
diff --git a/website/src/fonts/GilroyLight/font.woff b/website/src/fonts/GilroyLight/font.woff
new file mode 100644
index 0000000000..903d99d455
Binary files /dev/null and b/website/src/fonts/GilroyLight/font.woff differ
diff --git a/website/src/fonts/GilroyLight/font.woff2 b/website/src/fonts/GilroyLight/font.woff2
new file mode 100644
index 0000000000..f4d4fc3e0c
Binary files /dev/null and b/website/src/fonts/GilroyLight/font.woff2 differ
diff --git a/website/src/fonts/GilroyMedium/font.woff b/website/src/fonts/GilroyMedium/font.woff
new file mode 100644
index 0000000000..3dd51a978b
Binary files /dev/null and b/website/src/fonts/GilroyMedium/font.woff differ
diff --git a/website/src/fonts/GilroyMedium/font.woff2 b/website/src/fonts/GilroyMedium/font.woff2
new file mode 100644
index 0000000000..895b6d4f1b
Binary files /dev/null and b/website/src/fonts/GilroyMedium/font.woff2 differ
diff --git a/website/src/fonts/GilroyRegular/font.woff b/website/src/fonts/GilroyRegular/font.woff
new file mode 100644
index 0000000000..115ae73dfc
Binary files /dev/null and b/website/src/fonts/GilroyRegular/font.woff differ
diff --git a/website/src/fonts/GilroyRegular/font.woff2 b/website/src/fonts/GilroyRegular/font.woff2
new file mode 100644
index 0000000000..24465fb7dc
Binary files /dev/null and b/website/src/fonts/GilroyRegular/font.woff2 differ
diff --git a/website/src/fonts/GilroyRegularItalic/font.woff b/website/src/fonts/GilroyRegularItalic/font.woff
new file mode 100644
index 0000000000..1f69fc1e62
Binary files /dev/null and b/website/src/fonts/GilroyRegularItalic/font.woff differ
diff --git a/website/src/fonts/GilroyRegularItalic/font.woff2 b/website/src/fonts/GilroyRegularItalic/font.woff2
new file mode 100644
index 0000000000..ef01c8d5d3
Binary files /dev/null and b/website/src/fonts/GilroyRegularItalic/font.woff2 differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0000.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0000.png
deleted file mode 100755
index 34bb016b22..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0000.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0001.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0001.png
deleted file mode 100755
index efb34f3770..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0001.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0002.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0002.png
deleted file mode 100755
index 156e11e35e..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0002.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0003.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0003.png
deleted file mode 100755
index cda4b4eb74..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0003.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0004.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0004.png
deleted file mode 100755
index ce551e6ae8..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0004.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0005.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0005.png
deleted file mode 100755
index b6ee335ed1..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0005.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0006.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0006.png
deleted file mode 100755
index 9dd6ade3f2..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0006.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0007.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0007.png
deleted file mode 100755
index dcf6742bff..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0007.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0008.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0008.png
deleted file mode 100755
index c64579f94e..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0008.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0009.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0009.png
deleted file mode 100755
index 3ad736a7b3..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0009.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0010.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0010.png
deleted file mode 100755
index 9d7e62ada2..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0010.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0011.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0011.png
deleted file mode 100755
index eba6d7467a..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0011.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0012.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0012.png
deleted file mode 100755
index 2bd96c63c8..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0012.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0013.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0013.png
deleted file mode 100755
index 375acf74ab..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0013.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0014.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0014.png
deleted file mode 100755
index 98e9f8d2d1..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0014.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0015.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0015.png
deleted file mode 100755
index 1eefe57915..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0015.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0016.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0016.png
deleted file mode 100755
index 7287785f73..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0016.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0017.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0017.png
deleted file mode 100755
index 9654acdb3b..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0017.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0018.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0018.png
deleted file mode 100755
index 51085c2b20..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0018.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0019.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0019.png
deleted file mode 100755
index a6297a6786..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0019.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/fastImages/Darkphone1_0020.png b/website/src/hero-phone-dark/fastImages/Darkphone1_0020.png
deleted file mode 100755
index d23dbb2b1b..0000000000
Binary files a/website/src/hero-phone-dark/fastImages/Darkphone1_0020.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/index.html b/website/src/hero-phone-dark/index.html
deleted file mode 100644
index a79b4d53cc..0000000000
--- a/website/src/hero-phone-dark/index.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- Page Title
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/website/src/hero-phone-dark/index.js b/website/src/hero-phone-dark/index.js
deleted file mode 100644
index 0e47feb880..0000000000
--- a/website/src/hero-phone-dark/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-(function () {
-
-const fastImages = mkSequence("./fastImages/Darkphone1_", 0, 20, ".png")
-const slowImages = mkSequence("./slowImages/Darkphone1_", 8, 38, ".png")
-
-
-let complete = false
-run()
-window.onload = run
-
-function mkSequence(prefix, from, to, ext) {
- const seq = []
- for (let n = from; n <= to; n++) {
- let suffix = '' + n
- suffix = '0'.repeat(4 - suffix.length) + suffix
- seq.push(prefix + suffix + ext)
- }
- return seq
-}
-
-async function run() {
- const imageEl = document.getElementById("hero-phone");
- const preloadEl = document.getElementById("hero-phone-preload");
- if (complete || !imageEl || !preloadEl) return
- complete = true
- await preload(fastImages.concat(slowImages))
- await animate(fastImages, 100)
- await animate(slowImages, 500)
-
- async function preload(images) {
- let imgEls = []
- let resolved = false
- return new Promise((resolve) => {
- setTimeout(() => {
- if (!resolved) {
- resolved = true
- resolve()
- }
- }, 2000)
- for (const img of images) {
- const el = document.createElement("img");
- el.src = img
- imgEls.push(el)
- preloadEl.appendChild(el)
- const loaded = () => {
- imgEls = imgEls.filter((e) => e !== el)
- if (imgEls.length === 0 && !resolved) {
- resolved = true
- resolve()
- }
- }
- el.addEventListener('load', loaded)
- el.addEventListener('error', loaded)
- }
- })
- }
-
- async function animate(images, ms) {
- for (const img of images) {
- imageEl.src = img
- await delay(ms)
- }
- }
-
- async function delay(ms) {
- return new Promise((resolve) => setTimeout(resolve, ms))
- }
-}
-})();
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0008.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0008.png
deleted file mode 100755
index 1a382a482c..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0008.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0009.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0009.png
deleted file mode 100755
index 19098b123d..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0009.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0010.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0010.png
deleted file mode 100755
index 4eab6ca91a..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0010.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0011.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0011.png
deleted file mode 100755
index fc58aa26d9..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0011.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0012.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0012.png
deleted file mode 100755
index 3e3afa88aa..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0012.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0013.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0013.png
deleted file mode 100755
index 677af04441..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0013.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0014.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0014.png
deleted file mode 100755
index 22aeb98b40..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0014.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0015.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0015.png
deleted file mode 100755
index 15a2673fad..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0015.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0016.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0016.png
deleted file mode 100755
index 370925f1a3..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0016.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0017.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0017.png
deleted file mode 100755
index ce60f54c93..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0017.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0018.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0018.png
deleted file mode 100755
index be0d44199a..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0018.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0019.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0019.png
deleted file mode 100755
index f53ff45d82..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0019.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0020.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0020.png
deleted file mode 100755
index c8c18d0fcf..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0020.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0021.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0021.png
deleted file mode 100755
index 9a6c92ef89..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0021.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0022.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0022.png
deleted file mode 100755
index be48853908..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0022.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0023.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0023.png
deleted file mode 100755
index fcf1bb6acf..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0023.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0024.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0024.png
deleted file mode 100755
index 45630e9c69..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0024.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0025.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0025.png
deleted file mode 100755
index db85715605..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0025.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0026.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0026.png
deleted file mode 100755
index b40bcfe8b7..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0026.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0027.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0027.png
deleted file mode 100755
index 4c73248556..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0027.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0028.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0028.png
deleted file mode 100755
index 5c11f4a1fd..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0028.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0029.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0029.png
deleted file mode 100755
index b6b135e24e..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0029.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0030.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0030.png
deleted file mode 100755
index 1439dbadcb..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0030.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0031.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0031.png
deleted file mode 100755
index c72504f3ef..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0031.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0032.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0032.png
deleted file mode 100755
index a861ca6011..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0032.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0033.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0033.png
deleted file mode 100755
index f71b0d3939..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0033.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0034.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0034.png
deleted file mode 100755
index 2db2227f17..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0034.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0035.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0035.png
deleted file mode 100755
index a155d7360f..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0035.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0036.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0036.png
deleted file mode 100755
index b257823ea0..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0036.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0037.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0037.png
deleted file mode 100755
index ac18b5f861..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0037.png and /dev/null differ
diff --git a/website/src/hero-phone-dark/slowImages/Darkphone1_0038.png b/website/src/hero-phone-dark/slowImages/Darkphone1_0038.png
deleted file mode 100755
index ce2402fca6..0000000000
Binary files a/website/src/hero-phone-dark/slowImages/Darkphone1_0038.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0000.png b/website/src/hero-phone/fastImages/Lightphone1_0000.png
deleted file mode 100755
index 35d9868e89..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0000.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0001.png b/website/src/hero-phone/fastImages/Lightphone1_0001.png
deleted file mode 100755
index 198ea1b678..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0001.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0002.png b/website/src/hero-phone/fastImages/Lightphone1_0002.png
deleted file mode 100755
index a959d98b8a..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0002.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0003.png b/website/src/hero-phone/fastImages/Lightphone1_0003.png
deleted file mode 100755
index 33e36b7bc2..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0003.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0004.png b/website/src/hero-phone/fastImages/Lightphone1_0004.png
deleted file mode 100755
index e24fff1238..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0004.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0005.png b/website/src/hero-phone/fastImages/Lightphone1_0005.png
deleted file mode 100755
index 4cff81ac51..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0005.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0006.png b/website/src/hero-phone/fastImages/Lightphone1_0006.png
deleted file mode 100755
index 155f63b6d9..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0006.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0007.png b/website/src/hero-phone/fastImages/Lightphone1_0007.png
deleted file mode 100755
index de32cccb00..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0007.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0008.png b/website/src/hero-phone/fastImages/Lightphone1_0008.png
deleted file mode 100755
index 5d5c60cec6..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0008.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0009.png b/website/src/hero-phone/fastImages/Lightphone1_0009.png
deleted file mode 100755
index 3cf80f764e..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0009.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0010.png b/website/src/hero-phone/fastImages/Lightphone1_0010.png
deleted file mode 100755
index e32802235b..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0010.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0011.png b/website/src/hero-phone/fastImages/Lightphone1_0011.png
deleted file mode 100755
index 5573cb959b..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0011.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0012.png b/website/src/hero-phone/fastImages/Lightphone1_0012.png
deleted file mode 100755
index e15705b884..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0012.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0013.png b/website/src/hero-phone/fastImages/Lightphone1_0013.png
deleted file mode 100755
index ed0bffdd07..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0013.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0014.png b/website/src/hero-phone/fastImages/Lightphone1_0014.png
deleted file mode 100755
index 76ee83a035..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0014.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0015.png b/website/src/hero-phone/fastImages/Lightphone1_0015.png
deleted file mode 100755
index a1ce1e6d9f..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0015.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0016.png b/website/src/hero-phone/fastImages/Lightphone1_0016.png
deleted file mode 100755
index c6c093568f..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0016.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0017.png b/website/src/hero-phone/fastImages/Lightphone1_0017.png
deleted file mode 100755
index 1df9409296..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0017.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0018.png b/website/src/hero-phone/fastImages/Lightphone1_0018.png
deleted file mode 100755
index d0a757bcc3..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0018.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0019.png b/website/src/hero-phone/fastImages/Lightphone1_0019.png
deleted file mode 100755
index 47d341737c..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0019.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0020.png b/website/src/hero-phone/fastImages/Lightphone1_0020.png
deleted file mode 100755
index 99265663dd..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0020.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0021.png b/website/src/hero-phone/fastImages/Lightphone1_0021.png
deleted file mode 100755
index 72c4888a29..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0021.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0022.png b/website/src/hero-phone/fastImages/Lightphone1_0022.png
deleted file mode 100755
index 3ee1d80794..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0022.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0023.png b/website/src/hero-phone/fastImages/Lightphone1_0023.png
deleted file mode 100755
index f7174ec1bb..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0023.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0024.png b/website/src/hero-phone/fastImages/Lightphone1_0024.png
deleted file mode 100755
index c4cf278068..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0024.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0025.png b/website/src/hero-phone/fastImages/Lightphone1_0025.png
deleted file mode 100755
index 4b2ce3d8bc..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0025.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0026.png b/website/src/hero-phone/fastImages/Lightphone1_0026.png
deleted file mode 100755
index f6a04a8499..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0026.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0027.png b/website/src/hero-phone/fastImages/Lightphone1_0027.png
deleted file mode 100755
index ceae3841b5..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0027.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0028.png b/website/src/hero-phone/fastImages/Lightphone1_0028.png
deleted file mode 100755
index 4eb47eda25..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0028.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0029.png b/website/src/hero-phone/fastImages/Lightphone1_0029.png
deleted file mode 100755
index abbdbd43dc..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0029.png and /dev/null differ
diff --git a/website/src/hero-phone/fastImages/Lightphone1_0030.png b/website/src/hero-phone/fastImages/Lightphone1_0030.png
deleted file mode 100755
index 651fe84088..0000000000
Binary files a/website/src/hero-phone/fastImages/Lightphone1_0030.png and /dev/null differ
diff --git a/website/src/hero-phone/index.html b/website/src/hero-phone/index.html
deleted file mode 100644
index a79b4d53cc..0000000000
--- a/website/src/hero-phone/index.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- Page Title
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/website/src/hero-phone/index.js b/website/src/hero-phone/index.js
deleted file mode 100644
index 7987410bd1..0000000000
--- a/website/src/hero-phone/index.js
+++ /dev/null
@@ -1,70 +0,0 @@
-(function () {
-
-const fastImages = mkSequence("./fastImages/Lightphone1_", 0, 30, ".png")
-const slowImages = mkSequence("./slowImages1/Lightphone1_", 8, 39, ".png")
-// const slowImages = mkSequence("./slowImages2/Lightphone1_", 8, 39, ".png")
-
-
-let complete = false
-run()
-window.onload = run
-
-function mkSequence(prefix, from, to, ext) {
- const seq = []
- for (let n = from; n <= to; n++) {
- let suffix = '' + n
- suffix = '0'.repeat(4 - suffix.length) + suffix
- seq.push(prefix + suffix + ext)
- }
- return seq
-}
-
-async function run() {
- const imageEl = document.getElementById("hero-phone");
- const preloadEl = document.getElementById("hero-phone-preload");
- if (complete || !imageEl || !preloadEl) return
- complete = true
- await preload(fastImages.concat(slowImages))
- await animate(fastImages, 100)
- await animate(slowImages, 500)
-
- async function preload(images) {
- let imgEls = []
- let resolved = false
- return new Promise((resolve) => {
- setTimeout(() => {
- if (!resolved) {
- resolved = true
- resolve()
- }
- }, 2000)
- for (const img of images) {
- const el = document.createElement("img");
- el.src = img
- imgEls.push(el)
- preloadEl.appendChild(el)
- const loaded = () => {
- imgEls = imgEls.filter((e) => e !== el)
- if (imgEls.length === 0 && !resolved) {
- resolved = true
- resolve()
- }
- }
- el.addEventListener('load', loaded)
- el.addEventListener('error', loaded)
- }
- })
- }
-
- async function animate(images, ms) {
- for (const img of images) {
- imageEl.src = img
- await delay(ms)
- }
- }
-
- async function delay(ms) {
- return new Promise((resolve) => setTimeout(resolve, ms))
- }
-}
-})();
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0008.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0008.jpg
deleted file mode 100644
index 9ba9062976..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0008.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0008.png b/website/src/hero-phone/slowImages1/Lightphone1_0008.png
deleted file mode 100755
index 942a9534aa..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0008.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0009.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0009.jpg
deleted file mode 100644
index 5a70b7f141..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0009.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0009.png b/website/src/hero-phone/slowImages1/Lightphone1_0009.png
deleted file mode 100755
index 0c60c44e54..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0009.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0010.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0010.jpg
deleted file mode 100644
index c016b0c6d8..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0010.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0010.png b/website/src/hero-phone/slowImages1/Lightphone1_0010.png
deleted file mode 100755
index 04807c8076..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0010.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0011.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0011.jpg
deleted file mode 100644
index 86ceb304ca..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0011.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0011.png b/website/src/hero-phone/slowImages1/Lightphone1_0011.png
deleted file mode 100755
index fc9447ae29..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0011.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0012.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0012.jpg
deleted file mode 100644
index faacaae8c2..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0012.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0012.png b/website/src/hero-phone/slowImages1/Lightphone1_0012.png
deleted file mode 100755
index bfc802de24..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0012.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0013.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0013.jpg
deleted file mode 100644
index e1f11b8724..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0013.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0013.png b/website/src/hero-phone/slowImages1/Lightphone1_0013.png
deleted file mode 100755
index 59437bbaac..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0013.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0014.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0014.jpg
deleted file mode 100644
index 53e669c30e..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0014.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0014.png b/website/src/hero-phone/slowImages1/Lightphone1_0014.png
deleted file mode 100755
index 6f9e376af5..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0014.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0015.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0015.jpg
deleted file mode 100644
index 22c0425d15..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0015.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0015.png b/website/src/hero-phone/slowImages1/Lightphone1_0015.png
deleted file mode 100755
index c37618d74b..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0015.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0016.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0016.jpg
deleted file mode 100644
index 91293b007e..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0016.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0016.png b/website/src/hero-phone/slowImages1/Lightphone1_0016.png
deleted file mode 100755
index ad4ab4c58b..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0016.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0017.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0017.jpg
deleted file mode 100644
index b512c5bc58..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0017.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0017.png b/website/src/hero-phone/slowImages1/Lightphone1_0017.png
deleted file mode 100755
index 24c6d37822..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0017.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0018.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0018.jpg
deleted file mode 100644
index c8dcca111d..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0018.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0018.png b/website/src/hero-phone/slowImages1/Lightphone1_0018.png
deleted file mode 100755
index 0d0a3dc8a2..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0018.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0019.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0019.jpg
deleted file mode 100644
index 2de4f7c703..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0019.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0019.png b/website/src/hero-phone/slowImages1/Lightphone1_0019.png
deleted file mode 100755
index fbfda5d7c5..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0019.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0020.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0020.jpg
deleted file mode 100644
index 80a31632f8..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0020.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0020.png b/website/src/hero-phone/slowImages1/Lightphone1_0020.png
deleted file mode 100755
index 06073bf61e..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0020.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0021.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0021.jpg
deleted file mode 100644
index 1f2ec13f1f..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0021.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0021.png b/website/src/hero-phone/slowImages1/Lightphone1_0021.png
deleted file mode 100755
index 7744e79f52..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0021.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0022.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0022.jpg
deleted file mode 100644
index 7929751902..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0022.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0022.png b/website/src/hero-phone/slowImages1/Lightphone1_0022.png
deleted file mode 100755
index 35e57fda51..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0022.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0023.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0023.jpg
deleted file mode 100644
index 0183d74901..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0023.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0023.png b/website/src/hero-phone/slowImages1/Lightphone1_0023.png
deleted file mode 100755
index d284081a3e..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0023.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0024.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0024.jpg
deleted file mode 100644
index f48db12b3f..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0024.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0024.png b/website/src/hero-phone/slowImages1/Lightphone1_0024.png
deleted file mode 100755
index f237a59288..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0024.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0025.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0025.jpg
deleted file mode 100644
index 17a153f45b..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0025.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0025.png b/website/src/hero-phone/slowImages1/Lightphone1_0025.png
deleted file mode 100755
index 5ce3218837..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0025.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0026.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0026.jpg
deleted file mode 100644
index bc0bb21c2d..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0026.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0026.png b/website/src/hero-phone/slowImages1/Lightphone1_0026.png
deleted file mode 100755
index 68b899e072..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0026.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0027.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0027.jpg
deleted file mode 100644
index 8030e5ca61..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0027.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0027.png b/website/src/hero-phone/slowImages1/Lightphone1_0027.png
deleted file mode 100755
index db3b76e6e2..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0027.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0028.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0028.jpg
deleted file mode 100644
index 5d364653d5..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0028.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0028.png b/website/src/hero-phone/slowImages1/Lightphone1_0028.png
deleted file mode 100755
index 2ee03fefd3..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0028.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0029.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0029.jpg
deleted file mode 100644
index 37c68d8be1..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0029.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0029.png b/website/src/hero-phone/slowImages1/Lightphone1_0029.png
deleted file mode 100755
index 32eb4b1494..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0029.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0030.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0030.jpg
deleted file mode 100644
index 194799a558..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0030.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0030.png b/website/src/hero-phone/slowImages1/Lightphone1_0030.png
deleted file mode 100755
index a1c3011a34..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0030.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0031.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0031.jpg
deleted file mode 100644
index ffa034cddc..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0031.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0031.png b/website/src/hero-phone/slowImages1/Lightphone1_0031.png
deleted file mode 100755
index 6eea839328..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0031.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0032.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0032.jpg
deleted file mode 100644
index 4669663058..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0032.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0032.png b/website/src/hero-phone/slowImages1/Lightphone1_0032.png
deleted file mode 100755
index 1f137efdbd..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0032.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0033.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0033.jpg
deleted file mode 100644
index dd2caa70b6..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0033.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0033.png b/website/src/hero-phone/slowImages1/Lightphone1_0033.png
deleted file mode 100755
index 925a6439c9..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0033.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0034.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0034.jpg
deleted file mode 100644
index 765487bc95..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0034.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0034.png b/website/src/hero-phone/slowImages1/Lightphone1_0034.png
deleted file mode 100755
index d4d558f360..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0034.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0035.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0035.jpg
deleted file mode 100644
index 2bf4657aa6..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0035.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0035.png b/website/src/hero-phone/slowImages1/Lightphone1_0035.png
deleted file mode 100755
index 728109cecb..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0035.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0036.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0036.jpg
deleted file mode 100644
index 8a4aa523e1..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0036.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0036.png b/website/src/hero-phone/slowImages1/Lightphone1_0036.png
deleted file mode 100755
index 4b56311b6d..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0036.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0037.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0037.jpg
deleted file mode 100644
index 7295fb42a5..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0037.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0037.png b/website/src/hero-phone/slowImages1/Lightphone1_0037.png
deleted file mode 100755
index 7302e01a9f..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0037.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0038.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0038.jpg
deleted file mode 100644
index f03326f041..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0038.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0038.png b/website/src/hero-phone/slowImages1/Lightphone1_0038.png
deleted file mode 100755
index a62ccac0dd..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0038.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0039.jpg b/website/src/hero-phone/slowImages1/Lightphone1_0039.jpg
deleted file mode 100644
index b7e82a4c0c..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0039.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages1/Lightphone1_0039.png b/website/src/hero-phone/slowImages1/Lightphone1_0039.png
deleted file mode 100644
index 569ef3d9c4..0000000000
Binary files a/website/src/hero-phone/slowImages1/Lightphone1_0039.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0008.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0008.jpg
deleted file mode 100644
index 9ba9062976..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0008.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0008.png b/website/src/hero-phone/slowImages2/Lightphone1_0008.png
deleted file mode 100755
index 942a9534aa..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0008.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0009.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0009.jpg
deleted file mode 100644
index 5a70b7f141..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0009.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0009.png b/website/src/hero-phone/slowImages2/Lightphone1_0009.png
deleted file mode 100755
index 0c60c44e54..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0009.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0010.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0010.jpg
deleted file mode 100644
index c016b0c6d8..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0010.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0010.png b/website/src/hero-phone/slowImages2/Lightphone1_0010.png
deleted file mode 100755
index 04807c8076..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0010.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0011.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0011.jpg
deleted file mode 100644
index 86ceb304ca..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0011.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0011.png b/website/src/hero-phone/slowImages2/Lightphone1_0011.png
deleted file mode 100755
index fc9447ae29..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0011.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0012.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0012.jpg
deleted file mode 100644
index faacaae8c2..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0012.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0012.png b/website/src/hero-phone/slowImages2/Lightphone1_0012.png
deleted file mode 100755
index bfc802de24..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0012.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0013.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0013.jpg
deleted file mode 100644
index e1f11b8724..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0013.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0013.png b/website/src/hero-phone/slowImages2/Lightphone1_0013.png
deleted file mode 100755
index 59437bbaac..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0013.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0014.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0014.jpg
deleted file mode 100644
index 53e669c30e..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0014.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0014.png b/website/src/hero-phone/slowImages2/Lightphone1_0014.png
deleted file mode 100755
index 6f9e376af5..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0014.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0015.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0015.jpg
deleted file mode 100644
index 22c0425d15..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0015.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0015.png b/website/src/hero-phone/slowImages2/Lightphone1_0015.png
deleted file mode 100755
index c37618d74b..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0015.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0016.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0016.jpg
deleted file mode 100644
index 91293b007e..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0016.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0016.png b/website/src/hero-phone/slowImages2/Lightphone1_0016.png
deleted file mode 100755
index ad4ab4c58b..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0016.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0017.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0017.jpg
deleted file mode 100644
index b512c5bc58..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0017.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0017.png b/website/src/hero-phone/slowImages2/Lightphone1_0017.png
deleted file mode 100755
index 24c6d37822..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0017.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0018.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0018.jpg
deleted file mode 100644
index c8dcca111d..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0018.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0018.png b/website/src/hero-phone/slowImages2/Lightphone1_0018.png
deleted file mode 100755
index 0d0a3dc8a2..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0018.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0019.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0019.jpg
deleted file mode 100644
index 2de4f7c703..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0019.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0019.png b/website/src/hero-phone/slowImages2/Lightphone1_0019.png
deleted file mode 100755
index fbfda5d7c5..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0019.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0020.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0020.jpg
deleted file mode 100644
index 80a31632f8..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0020.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0020.png b/website/src/hero-phone/slowImages2/Lightphone1_0020.png
deleted file mode 100755
index 06073bf61e..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0020.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0021.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0021.jpg
deleted file mode 100644
index 1f2ec13f1f..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0021.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0021.png b/website/src/hero-phone/slowImages2/Lightphone1_0021.png
deleted file mode 100755
index 7744e79f52..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0021.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0022.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0022.jpg
deleted file mode 100644
index 7929751902..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0022.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0022.png b/website/src/hero-phone/slowImages2/Lightphone1_0022.png
deleted file mode 100755
index 35e57fda51..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0022.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0023.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0023.jpg
deleted file mode 100644
index 0183d74901..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0023.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0023.png b/website/src/hero-phone/slowImages2/Lightphone1_0023.png
deleted file mode 100755
index d284081a3e..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0023.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0024.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0024.jpg
deleted file mode 100644
index f48db12b3f..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0024.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0024.png b/website/src/hero-phone/slowImages2/Lightphone1_0024.png
deleted file mode 100755
index f237a59288..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0024.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0025.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0025.jpg
deleted file mode 100644
index 17a153f45b..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0025.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0025.png b/website/src/hero-phone/slowImages2/Lightphone1_0025.png
deleted file mode 100755
index 5ce3218837..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0025.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0026.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0026.jpg
deleted file mode 100644
index bc0bb21c2d..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0026.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0026.png b/website/src/hero-phone/slowImages2/Lightphone1_0026.png
deleted file mode 100755
index 68b899e072..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0026.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0027.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0027.jpg
deleted file mode 100644
index 8030e5ca61..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0027.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0027.png b/website/src/hero-phone/slowImages2/Lightphone1_0027.png
deleted file mode 100755
index db3b76e6e2..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0027.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0028.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0028.jpg
deleted file mode 100644
index 5d364653d5..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0028.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0028.png b/website/src/hero-phone/slowImages2/Lightphone1_0028.png
deleted file mode 100755
index 2ee03fefd3..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0028.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0029.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0029.jpg
deleted file mode 100644
index 37c68d8be1..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0029.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0029.png b/website/src/hero-phone/slowImages2/Lightphone1_0029.png
deleted file mode 100755
index 32eb4b1494..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0029.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0030.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0030.jpg
deleted file mode 100644
index 194799a558..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0030.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0030.png b/website/src/hero-phone/slowImages2/Lightphone1_0030.png
deleted file mode 100755
index a1c3011a34..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0030.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0031.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0031.jpg
deleted file mode 100644
index ffa034cddc..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0031.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0031.png b/website/src/hero-phone/slowImages2/Lightphone1_0031.png
deleted file mode 100755
index 6eea839328..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0031.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0032.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0032.jpg
deleted file mode 100644
index 4669663058..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0032.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0032.png b/website/src/hero-phone/slowImages2/Lightphone1_0032.png
deleted file mode 100755
index 1f137efdbd..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0032.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0033.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0033.jpg
deleted file mode 100644
index dd2caa70b6..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0033.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0033.png b/website/src/hero-phone/slowImages2/Lightphone1_0033.png
deleted file mode 100755
index 925a6439c9..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0033.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0034.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0034.jpg
deleted file mode 100644
index 765487bc95..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0034.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0034.png b/website/src/hero-phone/slowImages2/Lightphone1_0034.png
deleted file mode 100755
index d4d558f360..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0034.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0035.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0035.jpg
deleted file mode 100644
index 2bf4657aa6..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0035.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0035.png b/website/src/hero-phone/slowImages2/Lightphone1_0035.png
deleted file mode 100755
index 728109cecb..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0035.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0036.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0036.jpg
deleted file mode 100644
index 8a4aa523e1..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0036.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0036.png b/website/src/hero-phone/slowImages2/Lightphone1_0036.png
deleted file mode 100755
index 4b56311b6d..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0036.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0037.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0037.jpg
deleted file mode 100644
index 7295fb42a5..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0037.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0037.png b/website/src/hero-phone/slowImages2/Lightphone1_0037.png
deleted file mode 100755
index 7302e01a9f..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0037.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0038.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0038.jpg
deleted file mode 100644
index f03326f041..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0038.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0038.png b/website/src/hero-phone/slowImages2/Lightphone1_0038.png
deleted file mode 100755
index a62ccac0dd..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0038.png and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0039.jpg b/website/src/hero-phone/slowImages2/Lightphone1_0039.jpg
deleted file mode 100644
index b7e82a4c0c..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0039.jpg and /dev/null differ
diff --git a/website/src/hero-phone/slowImages2/Lightphone1_0039.png b/website/src/hero-phone/slowImages2/Lightphone1_0039.png
deleted file mode 100644
index 569ef3d9c4..0000000000
Binary files a/website/src/hero-phone/slowImages2/Lightphone1_0039.png and /dev/null differ
diff --git a/website/src/img/hero/dark/10fps/0000.webp b/website/src/img/hero/dark/10fps/0000.webp
new file mode 100755
index 0000000000..40992dd5e7
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0000.webp differ
diff --git a/website/src/img/hero/dark/10fps/0001.webp b/website/src/img/hero/dark/10fps/0001.webp
new file mode 100755
index 0000000000..18e7325ae9
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0001.webp differ
diff --git a/website/src/img/hero/dark/10fps/0002.webp b/website/src/img/hero/dark/10fps/0002.webp
new file mode 100755
index 0000000000..1517725079
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0002.webp differ
diff --git a/website/src/img/hero/dark/10fps/0003.webp b/website/src/img/hero/dark/10fps/0003.webp
new file mode 100755
index 0000000000..04be85fb1c
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0003.webp differ
diff --git a/website/src/img/hero/dark/10fps/0004.webp b/website/src/img/hero/dark/10fps/0004.webp
new file mode 100755
index 0000000000..de6ec47b3e
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0004.webp differ
diff --git a/website/src/img/hero/dark/10fps/0005.webp b/website/src/img/hero/dark/10fps/0005.webp
new file mode 100755
index 0000000000..46c9e70103
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0005.webp differ
diff --git a/website/src/img/hero/dark/10fps/0006.webp b/website/src/img/hero/dark/10fps/0006.webp
new file mode 100755
index 0000000000..37046f2854
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0006.webp differ
diff --git a/website/src/img/hero/dark/10fps/0007.webp b/website/src/img/hero/dark/10fps/0007.webp
new file mode 100755
index 0000000000..a0bd76a515
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0007.webp differ
diff --git a/website/src/img/hero/dark/10fps/0008.webp b/website/src/img/hero/dark/10fps/0008.webp
new file mode 100755
index 0000000000..a69dfa0dcf
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0008.webp differ
diff --git a/website/src/img/hero/dark/10fps/0009.webp b/website/src/img/hero/dark/10fps/0009.webp
new file mode 100755
index 0000000000..84fead34ff
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0009.webp differ
diff --git a/website/src/img/hero/dark/10fps/0010.webp b/website/src/img/hero/dark/10fps/0010.webp
new file mode 100755
index 0000000000..87a6d352fd
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0010.webp differ
diff --git a/website/src/img/hero/dark/10fps/0011.webp b/website/src/img/hero/dark/10fps/0011.webp
new file mode 100755
index 0000000000..a917901e46
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0011.webp differ
diff --git a/website/src/img/hero/dark/10fps/0012.webp b/website/src/img/hero/dark/10fps/0012.webp
new file mode 100755
index 0000000000..c23497b735
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0012.webp differ
diff --git a/website/src/img/hero/dark/10fps/0013.webp b/website/src/img/hero/dark/10fps/0013.webp
new file mode 100755
index 0000000000..796b9eb0af
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0013.webp differ
diff --git a/website/src/img/hero/dark/10fps/0014.webp b/website/src/img/hero/dark/10fps/0014.webp
new file mode 100755
index 0000000000..ed7a6c6bbc
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0014.webp differ
diff --git a/website/src/img/hero/dark/10fps/0015.webp b/website/src/img/hero/dark/10fps/0015.webp
new file mode 100755
index 0000000000..c141bd53de
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0015.webp differ
diff --git a/website/src/img/hero/dark/10fps/0016.webp b/website/src/img/hero/dark/10fps/0016.webp
new file mode 100755
index 0000000000..2ea1e36e4b
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0016.webp differ
diff --git a/website/src/img/hero/dark/10fps/0017.webp b/website/src/img/hero/dark/10fps/0017.webp
new file mode 100755
index 0000000000..b629b17768
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0017.webp differ
diff --git a/website/src/img/hero/dark/10fps/0018.webp b/website/src/img/hero/dark/10fps/0018.webp
new file mode 100755
index 0000000000..843af2d15d
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0018.webp differ
diff --git a/website/src/img/hero/dark/10fps/0019.webp b/website/src/img/hero/dark/10fps/0019.webp
new file mode 100755
index 0000000000..20de132790
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0019.webp differ
diff --git a/website/src/img/hero/dark/10fps/0020.webp b/website/src/img/hero/dark/10fps/0020.webp
new file mode 100755
index 0000000000..a548cd61b3
Binary files /dev/null and b/website/src/img/hero/dark/10fps/0020.webp differ
diff --git a/website/src/img/hero/dark/2fps/0005.webp b/website/src/img/hero/dark/2fps/0005.webp
new file mode 100644
index 0000000000..0729d71419
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0005.webp differ
diff --git a/website/src/img/hero/dark/2fps/0008.webp b/website/src/img/hero/dark/2fps/0008.webp
new file mode 100644
index 0000000000..57e6928d07
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0008.webp differ
diff --git a/website/src/img/hero/dark/2fps/0009.webp b/website/src/img/hero/dark/2fps/0009.webp
new file mode 100644
index 0000000000..ac5cd4b2c0
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0009.webp differ
diff --git a/website/src/img/hero/dark/2fps/0011.webp b/website/src/img/hero/dark/2fps/0011.webp
new file mode 100644
index 0000000000..feb1ba6d5c
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0011.webp differ
diff --git a/website/src/img/hero/dark/2fps/0014.webp b/website/src/img/hero/dark/2fps/0014.webp
new file mode 100644
index 0000000000..1d0349a0e3
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0014.webp differ
diff --git a/website/src/img/hero/dark/2fps/0017.webp b/website/src/img/hero/dark/2fps/0017.webp
new file mode 100644
index 0000000000..db955954b3
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0017.webp differ
diff --git a/website/src/img/hero/dark/2fps/0018.webp b/website/src/img/hero/dark/2fps/0018.webp
new file mode 100644
index 0000000000..1b5966613c
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0018.webp differ
diff --git a/website/src/img/hero/dark/2fps/0020.webp b/website/src/img/hero/dark/2fps/0020.webp
new file mode 100644
index 0000000000..2d160c9a19
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0020.webp differ
diff --git a/website/src/img/hero/dark/2fps/0022.webp b/website/src/img/hero/dark/2fps/0022.webp
new file mode 100644
index 0000000000..cf560734e1
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0022.webp differ
diff --git a/website/src/img/hero/dark/2fps/0024.webp b/website/src/img/hero/dark/2fps/0024.webp
new file mode 100644
index 0000000000..200234df61
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0024.webp differ
diff --git a/website/src/img/hero/dark/2fps/0027.webp b/website/src/img/hero/dark/2fps/0027.webp
new file mode 100644
index 0000000000..ac2843de8c
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0027.webp differ
diff --git a/website/src/img/hero/dark/2fps/0028.webp b/website/src/img/hero/dark/2fps/0028.webp
new file mode 100644
index 0000000000..5ac019f594
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0028.webp differ
diff --git a/website/src/img/hero/dark/2fps/0030.webp b/website/src/img/hero/dark/2fps/0030.webp
new file mode 100644
index 0000000000..ff53bd6095
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0030.webp differ
diff --git a/website/src/img/hero/dark/2fps/0032.webp b/website/src/img/hero/dark/2fps/0032.webp
new file mode 100644
index 0000000000..0f6f60c028
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0032.webp differ
diff --git a/website/src/img/hero/dark/2fps/0035.webp b/website/src/img/hero/dark/2fps/0035.webp
new file mode 100644
index 0000000000..83180145bf
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0035.webp differ
diff --git a/website/src/img/hero/dark/2fps/0036.webp b/website/src/img/hero/dark/2fps/0036.webp
new file mode 100644
index 0000000000..6b69a897c0
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0036.webp differ
diff --git a/website/src/img/hero/dark/2fps/0038.webp b/website/src/img/hero/dark/2fps/0038.webp
new file mode 100644
index 0000000000..e5fd692d90
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0038.webp differ
diff --git a/website/src/img/hero/dark/2fps/0039.webp b/website/src/img/hero/dark/2fps/0039.webp
new file mode 100644
index 0000000000..7e31e05804
Binary files /dev/null and b/website/src/img/hero/dark/2fps/0039.webp differ
diff --git a/website/src/img/hero/light/10fps/0000.webp b/website/src/img/hero/light/10fps/0000.webp
new file mode 100644
index 0000000000..e564a152ac
Binary files /dev/null and b/website/src/img/hero/light/10fps/0000.webp differ
diff --git a/website/src/img/hero/light/10fps/0001.webp b/website/src/img/hero/light/10fps/0001.webp
new file mode 100644
index 0000000000..109684a09e
Binary files /dev/null and b/website/src/img/hero/light/10fps/0001.webp differ
diff --git a/website/src/img/hero/light/10fps/0002.webp b/website/src/img/hero/light/10fps/0002.webp
new file mode 100644
index 0000000000..2df7f5a18f
Binary files /dev/null and b/website/src/img/hero/light/10fps/0002.webp differ
diff --git a/website/src/img/hero/light/10fps/0003.webp b/website/src/img/hero/light/10fps/0003.webp
new file mode 100644
index 0000000000..5011bd5835
Binary files /dev/null and b/website/src/img/hero/light/10fps/0003.webp differ
diff --git a/website/src/img/hero/light/10fps/0004.webp b/website/src/img/hero/light/10fps/0004.webp
new file mode 100644
index 0000000000..4379da6ea2
Binary files /dev/null and b/website/src/img/hero/light/10fps/0004.webp differ
diff --git a/website/src/img/hero/light/10fps/0005.webp b/website/src/img/hero/light/10fps/0005.webp
new file mode 100644
index 0000000000..9e3effb2e0
Binary files /dev/null and b/website/src/img/hero/light/10fps/0005.webp differ
diff --git a/website/src/img/hero/light/10fps/0006.webp b/website/src/img/hero/light/10fps/0006.webp
new file mode 100644
index 0000000000..bcc9eaf0da
Binary files /dev/null and b/website/src/img/hero/light/10fps/0006.webp differ
diff --git a/website/src/img/hero/light/10fps/0007.webp b/website/src/img/hero/light/10fps/0007.webp
new file mode 100644
index 0000000000..26ae9b977a
Binary files /dev/null and b/website/src/img/hero/light/10fps/0007.webp differ
diff --git a/website/src/img/hero/light/10fps/0008.webp b/website/src/img/hero/light/10fps/0008.webp
new file mode 100644
index 0000000000..f0a1c389d6
Binary files /dev/null and b/website/src/img/hero/light/10fps/0008.webp differ
diff --git a/website/src/img/hero/light/10fps/0009.webp b/website/src/img/hero/light/10fps/0009.webp
new file mode 100644
index 0000000000..b32d9a3178
Binary files /dev/null and b/website/src/img/hero/light/10fps/0009.webp differ
diff --git a/website/src/img/hero/light/10fps/0010.webp b/website/src/img/hero/light/10fps/0010.webp
new file mode 100644
index 0000000000..189ad37c62
Binary files /dev/null and b/website/src/img/hero/light/10fps/0010.webp differ
diff --git a/website/src/img/hero/light/10fps/0011.webp b/website/src/img/hero/light/10fps/0011.webp
new file mode 100644
index 0000000000..ebddee21ce
Binary files /dev/null and b/website/src/img/hero/light/10fps/0011.webp differ
diff --git a/website/src/img/hero/light/10fps/0012.webp b/website/src/img/hero/light/10fps/0012.webp
new file mode 100644
index 0000000000..f78a5d838b
Binary files /dev/null and b/website/src/img/hero/light/10fps/0012.webp differ
diff --git a/website/src/img/hero/light/10fps/0013.webp b/website/src/img/hero/light/10fps/0013.webp
new file mode 100644
index 0000000000..81da2995b1
Binary files /dev/null and b/website/src/img/hero/light/10fps/0013.webp differ
diff --git a/website/src/img/hero/light/10fps/0014.webp b/website/src/img/hero/light/10fps/0014.webp
new file mode 100644
index 0000000000..313eae9819
Binary files /dev/null and b/website/src/img/hero/light/10fps/0014.webp differ
diff --git a/website/src/img/hero/light/10fps/0015.webp b/website/src/img/hero/light/10fps/0015.webp
new file mode 100644
index 0000000000..cbcdf6e696
Binary files /dev/null and b/website/src/img/hero/light/10fps/0015.webp differ
diff --git a/website/src/img/hero/light/10fps/0016.webp b/website/src/img/hero/light/10fps/0016.webp
new file mode 100644
index 0000000000..2f4179b87d
Binary files /dev/null and b/website/src/img/hero/light/10fps/0016.webp differ
diff --git a/website/src/img/hero/light/10fps/0017.webp b/website/src/img/hero/light/10fps/0017.webp
new file mode 100644
index 0000000000..df354550d2
Binary files /dev/null and b/website/src/img/hero/light/10fps/0017.webp differ
diff --git a/website/src/img/hero/light/10fps/0018.webp b/website/src/img/hero/light/10fps/0018.webp
new file mode 100644
index 0000000000..cad608d6d8
Binary files /dev/null and b/website/src/img/hero/light/10fps/0018.webp differ
diff --git a/website/src/img/hero/light/10fps/0019.webp b/website/src/img/hero/light/10fps/0019.webp
new file mode 100644
index 0000000000..fcaf8b94ae
Binary files /dev/null and b/website/src/img/hero/light/10fps/0019.webp differ
diff --git a/website/src/img/hero/light/10fps/0020.webp b/website/src/img/hero/light/10fps/0020.webp
new file mode 100644
index 0000000000..6bfd746923
Binary files /dev/null and b/website/src/img/hero/light/10fps/0020.webp differ
diff --git a/website/src/img/hero/light/2fps/0005.webp b/website/src/img/hero/light/2fps/0005.webp
new file mode 100644
index 0000000000..16dad0432e
Binary files /dev/null and b/website/src/img/hero/light/2fps/0005.webp differ
diff --git a/website/src/img/hero/light/2fps/0008.webp b/website/src/img/hero/light/2fps/0008.webp
new file mode 100644
index 0000000000..a17929f323
Binary files /dev/null and b/website/src/img/hero/light/2fps/0008.webp differ
diff --git a/website/src/img/hero/light/2fps/0009.webp b/website/src/img/hero/light/2fps/0009.webp
new file mode 100644
index 0000000000..39e0755341
Binary files /dev/null and b/website/src/img/hero/light/2fps/0009.webp differ
diff --git a/website/src/img/hero/light/2fps/0011.webp b/website/src/img/hero/light/2fps/0011.webp
new file mode 100644
index 0000000000..827c7524af
Binary files /dev/null and b/website/src/img/hero/light/2fps/0011.webp differ
diff --git a/website/src/img/hero/light/2fps/0014.webp b/website/src/img/hero/light/2fps/0014.webp
new file mode 100644
index 0000000000..726ca2044f
Binary files /dev/null and b/website/src/img/hero/light/2fps/0014.webp differ
diff --git a/website/src/img/hero/light/2fps/0017.webp b/website/src/img/hero/light/2fps/0017.webp
new file mode 100644
index 0000000000..dc730cbc3e
Binary files /dev/null and b/website/src/img/hero/light/2fps/0017.webp differ
diff --git a/website/src/img/hero/light/2fps/0018.webp b/website/src/img/hero/light/2fps/0018.webp
new file mode 100644
index 0000000000..11ac9af7e6
Binary files /dev/null and b/website/src/img/hero/light/2fps/0018.webp differ
diff --git a/website/src/img/hero/light/2fps/0020.webp b/website/src/img/hero/light/2fps/0020.webp
new file mode 100644
index 0000000000..47b81edc73
Binary files /dev/null and b/website/src/img/hero/light/2fps/0020.webp differ
diff --git a/website/src/img/hero/light/2fps/0022.webp b/website/src/img/hero/light/2fps/0022.webp
new file mode 100644
index 0000000000..1d400eae85
Binary files /dev/null and b/website/src/img/hero/light/2fps/0022.webp differ
diff --git a/website/src/img/hero/light/2fps/0024.webp b/website/src/img/hero/light/2fps/0024.webp
new file mode 100644
index 0000000000..e3d3312a9a
Binary files /dev/null and b/website/src/img/hero/light/2fps/0024.webp differ
diff --git a/website/src/img/hero/light/2fps/0027.webp b/website/src/img/hero/light/2fps/0027.webp
new file mode 100644
index 0000000000..cf4ac08f1b
Binary files /dev/null and b/website/src/img/hero/light/2fps/0027.webp differ
diff --git a/website/src/img/hero/light/2fps/0028.webp b/website/src/img/hero/light/2fps/0028.webp
new file mode 100644
index 0000000000..251286f6c0
Binary files /dev/null and b/website/src/img/hero/light/2fps/0028.webp differ
diff --git a/website/src/img/hero/light/2fps/0030.webp b/website/src/img/hero/light/2fps/0030.webp
new file mode 100644
index 0000000000..c2bc4cbfea
Binary files /dev/null and b/website/src/img/hero/light/2fps/0030.webp differ
diff --git a/website/src/img/hero/light/2fps/0032.webp b/website/src/img/hero/light/2fps/0032.webp
new file mode 100644
index 0000000000..c434cd608a
Binary files /dev/null and b/website/src/img/hero/light/2fps/0032.webp differ
diff --git a/website/src/img/hero/light/2fps/0035.webp b/website/src/img/hero/light/2fps/0035.webp
new file mode 100644
index 0000000000..42acb6ed0d
Binary files /dev/null and b/website/src/img/hero/light/2fps/0035.webp differ
diff --git a/website/src/img/hero/light/2fps/0036.webp b/website/src/img/hero/light/2fps/0036.webp
new file mode 100644
index 0000000000..aee8e7d2aa
Binary files /dev/null and b/website/src/img/hero/light/2fps/0036.webp differ
diff --git a/website/src/img/hero/light/2fps/0038.webp b/website/src/img/hero/light/2fps/0038.webp
new file mode 100644
index 0000000000..27fdec7a26
Binary files /dev/null and b/website/src/img/hero/light/2fps/0038.webp differ
diff --git a/website/src/img/hero/light/2fps/0039.webp b/website/src/img/hero/light/2fps/0039.webp
new file mode 100644
index 0000000000..6f4216e009
Binary files /dev/null and b/website/src/img/hero/light/2fps/0039.webp differ
diff --git a/website/src/img/new/QRcode-phone.png b/website/src/img/new/QRcode-phone.png
new file mode 100644
index 0000000000..da804cc9b2
Binary files /dev/null and b/website/src/img/new/QRcode-phone.png differ
diff --git a/website/src/img/new/apk_icon.png b/website/src/img/new/apk_icon.png
new file mode 100644
index 0000000000..60ff342d36
Binary files /dev/null and b/website/src/img/new/apk_icon.png differ
diff --git a/website/src/img/new/apple_store.svg b/website/src/img/new/apple_store.svg
new file mode 100644
index 0000000000..b977fa2cf9
--- /dev/null
+++ b/website/src/img/new/apple_store.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/arrow-left-dark.svg b/website/src/img/new/arrow-left-dark.svg
new file mode 100644
index 0000000000..6300e60e17
--- /dev/null
+++ b/website/src/img/new/arrow-left-dark.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/arrow-left.svg b/website/src/img/new/arrow-left.svg
new file mode 100644
index 0000000000..126b58ce20
--- /dev/null
+++ b/website/src/img/new/arrow-left.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/arrow-right-dark.svg b/website/src/img/new/arrow-right-dark.svg
new file mode 100644
index 0000000000..303c86e7d0
--- /dev/null
+++ b/website/src/img/new/arrow-right-dark.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/arrow-right.svg b/website/src/img/new/arrow-right.svg
new file mode 100644
index 0000000000..06545fde18
--- /dev/null
+++ b/website/src/img/new/arrow-right.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/bg_gfx.png b/website/src/img/new/bg_gfx.png
new file mode 100644
index 0000000000..1f276b3112
Binary files /dev/null and b/website/src/img/new/bg_gfx.png differ
diff --git a/website/src/img/new/contact_page_mobile.png b/website/src/img/new/contact_page_mobile.png
new file mode 100644
index 0000000000..7d829965a8
Binary files /dev/null and b/website/src/img/new/contact_page_mobile.png differ
diff --git a/website/src/img/new/content-copy.svg b/website/src/img/new/content-copy.svg
new file mode 100644
index 0000000000..3e7992e927
--- /dev/null
+++ b/website/src/img/new/content-copy.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/website/src/img/new/cross.svg b/website/src/img/new/cross.svg
new file mode 100644
index 0000000000..b48978e1ee
--- /dev/null
+++ b/website/src/img/new/cross.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/website/src/img/new/explained-1.svg b/website/src/img/new/explained-1.svg
new file mode 100644
index 0000000000..6b7e352095
--- /dev/null
+++ b/website/src/img/new/explained-1.svg
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/explained-2.svg b/website/src/img/new/explained-2.svg
new file mode 100644
index 0000000000..ac57f491ef
--- /dev/null
+++ b/website/src/img/new/explained-2.svg
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/explained-3.svg b/website/src/img/new/explained-3.svg
new file mode 100644
index 0000000000..745a97cd25
--- /dev/null
+++ b/website/src/img/new/explained-3.svg
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/f_droid.svg b/website/src/img/new/f_droid.svg
new file mode 100644
index 0000000000..2d6ec68710
--- /dev/null
+++ b/website/src/img/new/f_droid.svg
@@ -0,0 +1,372 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ GET IT ON
+ F-Droid
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-1-dark.svg b/website/src/img/new/feature-1-dark.svg
new file mode 100644
index 0000000000..806f7b650c
--- /dev/null
+++ b/website/src/img/new/feature-1-dark.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-1.svg b/website/src/img/new/feature-1.svg
new file mode 100644
index 0000000000..893ab43e5c
--- /dev/null
+++ b/website/src/img/new/feature-1.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-2-dark.svg b/website/src/img/new/feature-2-dark.svg
new file mode 100644
index 0000000000..6cb3aea2d1
--- /dev/null
+++ b/website/src/img/new/feature-2-dark.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-2.svg b/website/src/img/new/feature-2.svg
new file mode 100644
index 0000000000..955baba0c3
--- /dev/null
+++ b/website/src/img/new/feature-2.svg
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-3-dark.svg b/website/src/img/new/feature-3-dark.svg
new file mode 100644
index 0000000000..c01316adcc
--- /dev/null
+++ b/website/src/img/new/feature-3-dark.svg
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-3.svg b/website/src/img/new/feature-3.svg
new file mode 100644
index 0000000000..6763d8f97a
--- /dev/null
+++ b/website/src/img/new/feature-3.svg
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-4-dark.svg b/website/src/img/new/feature-4-dark.svg
new file mode 100644
index 0000000000..f3b8408ff8
--- /dev/null
+++ b/website/src/img/new/feature-4-dark.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-4.svg b/website/src/img/new/feature-4.svg
new file mode 100644
index 0000000000..bc9119a365
--- /dev/null
+++ b/website/src/img/new/feature-4.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-5-dark.svg b/website/src/img/new/feature-5-dark.svg
new file mode 100644
index 0000000000..2d7ef7f185
--- /dev/null
+++ b/website/src/img/new/feature-5-dark.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-5.svg b/website/src/img/new/feature-5.svg
new file mode 100644
index 0000000000..8d26f55d99
--- /dev/null
+++ b/website/src/img/new/feature-5.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-6-dark.svg b/website/src/img/new/feature-6-dark.svg
new file mode 100644
index 0000000000..f8d7f4239d
--- /dev/null
+++ b/website/src/img/new/feature-6-dark.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-6.svg b/website/src/img/new/feature-6.svg
new file mode 100644
index 0000000000..e8e40df1ad
--- /dev/null
+++ b/website/src/img/new/feature-6.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-7-dark.svg b/website/src/img/new/feature-7-dark.svg
new file mode 100644
index 0000000000..28e36b04fe
--- /dev/null
+++ b/website/src/img/new/feature-7-dark.svg
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-7.svg b/website/src/img/new/feature-7.svg
new file mode 100644
index 0000000000..a2b79fb9da
--- /dev/null
+++ b/website/src/img/new/feature-7.svg
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-8-dark.svg b/website/src/img/new/feature-8-dark.svg
new file mode 100644
index 0000000000..20b5a394a5
--- /dev/null
+++ b/website/src/img/new/feature-8-dark.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/feature-8.svg b/website/src/img/new/feature-8.svg
new file mode 100644
index 0000000000..610b655292
--- /dev/null
+++ b/website/src/img/new/feature-8.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/gitHub.svg b/website/src/img/new/gitHub.svg
new file mode 100644
index 0000000000..4fc6c3b5b0
--- /dev/null
+++ b/website/src/img/new/gitHub.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/website/src/img/new/google_play.svg b/website/src/img/new/google_play.svg
new file mode 100644
index 0000000000..6cda5f6d31
--- /dev/null
+++ b/website/src/img/new/google_play.svg
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/hamburger.svg b/website/src/img/new/hamburger.svg
new file mode 100644
index 0000000000..3cd8fa89b7
--- /dev/null
+++ b/website/src/img/new/hamburger.svg
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/website/src/img/new/logo-dark.png b/website/src/img/new/logo-dark.png
new file mode 100644
index 0000000000..1886df819c
Binary files /dev/null and b/website/src/img/new/logo-dark.png differ
diff --git a/website/src/img/new/logo-light.png b/website/src/img/new/logo-light.png
new file mode 100644
index 0000000000..3da724650f
Binary files /dev/null and b/website/src/img/new/logo-light.png differ
diff --git a/website/src/img/new/logo-symbol-dark.svg b/website/src/img/new/logo-symbol-dark.svg
new file mode 100644
index 0000000000..fa598acf3d
--- /dev/null
+++ b/website/src/img/new/logo-symbol-dark.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/logo-symbol-light.svg b/website/src/img/new/logo-symbol-light.svg
new file mode 100644
index 0000000000..d8b5951a0b
--- /dev/null
+++ b/website/src/img/new/logo-symbol-light.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/mobile-hero.png b/website/src/img/new/mobile-hero.png
new file mode 100644
index 0000000000..21d853e33e
Binary files /dev/null and b/website/src/img/new/mobile-hero.png differ
diff --git a/website/src/img/new/mobile-video-placeholder.png b/website/src/img/new/mobile-video-placeholder.png
new file mode 100644
index 0000000000..ef22aed819
Binary files /dev/null and b/website/src/img/new/mobile-video-placeholder.png differ
diff --git a/website/src/img/new/moon.svg b/website/src/img/new/moon.svg
new file mode 100644
index 0000000000..1054735b5e
--- /dev/null
+++ b/website/src/img/new/moon.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/website/src/img/new/network-1-dark.svg b/website/src/img/new/network-1-dark.svg
new file mode 100644
index 0000000000..d97de168c0
--- /dev/null
+++ b/website/src/img/new/network-1-dark.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/network-1.svg b/website/src/img/new/network-1.svg
new file mode 100644
index 0000000000..b4f5c9ec7f
--- /dev/null
+++ b/website/src/img/new/network-1.svg
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/network-2-dark.svg b/website/src/img/new/network-2-dark.svg
new file mode 100644
index 0000000000..5a576eb4bb
--- /dev/null
+++ b/website/src/img/new/network-2-dark.svg
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/network-2.svg b/website/src/img/new/network-2.svg
new file mode 100644
index 0000000000..500c0e9e76
--- /dev/null
+++ b/website/src/img/new/network-2.svg
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/network-3-dark.svg b/website/src/img/new/network-3-dark.svg
new file mode 100644
index 0000000000..41f3197344
--- /dev/null
+++ b/website/src/img/new/network-3-dark.svg
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/network-3.svg b/website/src/img/new/network-3.svg
new file mode 100644
index 0000000000..ede81020cc
--- /dev/null
+++ b/website/src/img/new/network-3.svg
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/phone1_0036.png b/website/src/img/new/phone1_0036.png
new file mode 100644
index 0000000000..65e7d60bb2
Binary files /dev/null and b/website/src/img/new/phone1_0036.png differ
diff --git a/website/src/img/new/phone1_0036mobile.png b/website/src/img/new/phone1_0036mobile.png
new file mode 100644
index 0000000000..8ca0135c1f
Binary files /dev/null and b/website/src/img/new/phone1_0036mobile.png differ
diff --git a/website/src/img/new/phone_pane.png b/website/src/img/new/phone_pane.png
new file mode 100644
index 0000000000..5d07df5a4d
Binary files /dev/null and b/website/src/img/new/phone_pane.png differ
diff --git a/website/src/img/new/play-btn.svg b/website/src/img/new/play-btn.svg
new file mode 100644
index 0000000000..d311a79417
--- /dev/null
+++ b/website/src/img/new/play-btn.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/website/src/img/new/privacy-section-1.svg b/website/src/img/new/privacy-section-1.svg
new file mode 100644
index 0000000000..5a325b7e75
--- /dev/null
+++ b/website/src/img/new/privacy-section-1.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/privacy-section-2.svg b/website/src/img/new/privacy-section-2.svg
new file mode 100644
index 0000000000..13f63beba8
--- /dev/null
+++ b/website/src/img/new/privacy-section-2.svg
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/privacy-section-3.svg b/website/src/img/new/privacy-section-3.svg
new file mode 100644
index 0000000000..a9c2465b6d
--- /dev/null
+++ b/website/src/img/new/privacy-section-3.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-1-dark.svg b/website/src/img/new/private-1-dark.svg
new file mode 100644
index 0000000000..a62abdeecc
--- /dev/null
+++ b/website/src/img/new/private-1-dark.svg
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-1.svg b/website/src/img/new/private-1.svg
new file mode 100644
index 0000000000..0e7d213e61
--- /dev/null
+++ b/website/src/img/new/private-1.svg
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-10-dark.svg b/website/src/img/new/private-10-dark.svg
new file mode 100644
index 0000000000..681f3adb01
--- /dev/null
+++ b/website/src/img/new/private-10-dark.svg
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-10.svg b/website/src/img/new/private-10.svg
new file mode 100644
index 0000000000..83e814a8af
--- /dev/null
+++ b/website/src/img/new/private-10.svg
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-2-dark.svg b/website/src/img/new/private-2-dark.svg
new file mode 100644
index 0000000000..4b945f10fd
--- /dev/null
+++ b/website/src/img/new/private-2-dark.svg
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-2.svg b/website/src/img/new/private-2.svg
new file mode 100644
index 0000000000..3cf03114df
--- /dev/null
+++ b/website/src/img/new/private-2.svg
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-3-dark.svg b/website/src/img/new/private-3-dark.svg
new file mode 100644
index 0000000000..8193a9f719
--- /dev/null
+++ b/website/src/img/new/private-3-dark.svg
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-3.svg b/website/src/img/new/private-3.svg
new file mode 100644
index 0000000000..77e0757b0b
--- /dev/null
+++ b/website/src/img/new/private-3.svg
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-4-dark.svg b/website/src/img/new/private-4-dark.svg
new file mode 100644
index 0000000000..0ccb78f11c
--- /dev/null
+++ b/website/src/img/new/private-4-dark.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-4.svg b/website/src/img/new/private-4.svg
new file mode 100644
index 0000000000..cb76605a15
--- /dev/null
+++ b/website/src/img/new/private-4.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-5-dark.svg b/website/src/img/new/private-5-dark.svg
new file mode 100644
index 0000000000..26131ec228
--- /dev/null
+++ b/website/src/img/new/private-5-dark.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-5.svg b/website/src/img/new/private-5.svg
new file mode 100644
index 0000000000..8e05bb28cd
--- /dev/null
+++ b/website/src/img/new/private-5.svg
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-6-dark.svg b/website/src/img/new/private-6-dark.svg
new file mode 100644
index 0000000000..c33644173d
--- /dev/null
+++ b/website/src/img/new/private-6-dark.svg
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-6.svg b/website/src/img/new/private-6.svg
new file mode 100644
index 0000000000..f44dd6cd3e
--- /dev/null
+++ b/website/src/img/new/private-6.svg
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-7-dark.svg b/website/src/img/new/private-7-dark.svg
new file mode 100644
index 0000000000..fc6fdfaf46
--- /dev/null
+++ b/website/src/img/new/private-7-dark.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-7.svg b/website/src/img/new/private-7.svg
new file mode 100644
index 0000000000..002c2a4f92
--- /dev/null
+++ b/website/src/img/new/private-7.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-8-dark.svg b/website/src/img/new/private-8-dark.svg
new file mode 100644
index 0000000000..d78ce2e902
--- /dev/null
+++ b/website/src/img/new/private-8-dark.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-8.svg b/website/src/img/new/private-8.svg
new file mode 100644
index 0000000000..bff6bbf896
--- /dev/null
+++ b/website/src/img/new/private-8.svg
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-9-dark.svg b/website/src/img/new/private-9-dark.svg
new file mode 100644
index 0000000000..6e31db4d5a
--- /dev/null
+++ b/website/src/img/new/private-9-dark.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/private-9.svg b/website/src/img/new/private-9.svg
new file mode 100644
index 0000000000..68b88fbd23
--- /dev/null
+++ b/website/src/img/new/private-9.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/sun.svg b/website/src/img/new/sun.svg
new file mode 100644
index 0000000000..8407b98e5f
--- /dev/null
+++ b/website/src/img/new/sun.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/tab-hero.svg b/website/src/img/new/tab-hero.svg
new file mode 100644
index 0000000000..a4fdb24b8a
--- /dev/null
+++ b/website/src/img/new/tab-hero.svg
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/tab-video.svg b/website/src/img/new/tab-video.svg
new file mode 100644
index 0000000000..55e8b2d36e
--- /dev/null
+++ b/website/src/img/new/tab-video.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/src/img/new/testflight.png b/website/src/img/new/testflight.png
new file mode 100644
index 0000000000..8111a69d54
Binary files /dev/null and b/website/src/img/new/testflight.png differ
diff --git a/website/src/img/new/union.svg b/website/src/img/new/union.svg
new file mode 100644
index 0000000000..20688b1d43
--- /dev/null
+++ b/website/src/img/new/union.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/website/src/img/new/unique-section-1-dark.png b/website/src/img/new/unique-section-1-dark.png
new file mode 100644
index 0000000000..2efee8b5e1
Binary files /dev/null and b/website/src/img/new/unique-section-1-dark.png differ
diff --git a/website/src/img/new/unique-section-1.png b/website/src/img/new/unique-section-1.png
new file mode 100644
index 0000000000..1b66493dfc
Binary files /dev/null and b/website/src/img/new/unique-section-1.png differ
diff --git a/website/src/img/new/unique-section-2-dark.png b/website/src/img/new/unique-section-2-dark.png
new file mode 100644
index 0000000000..6449be2024
Binary files /dev/null and b/website/src/img/new/unique-section-2-dark.png differ
diff --git a/website/src/img/new/unique-section-2.png b/website/src/img/new/unique-section-2.png
new file mode 100644
index 0000000000..6474552747
Binary files /dev/null and b/website/src/img/new/unique-section-2.png differ
diff --git a/website/src/img/new/unique-section-3-dark.png b/website/src/img/new/unique-section-3-dark.png
new file mode 100644
index 0000000000..8eea04fe14
Binary files /dev/null and b/website/src/img/new/unique-section-3-dark.png differ
diff --git a/website/src/img/new/unique-section-3.png b/website/src/img/new/unique-section-3.png
new file mode 100644
index 0000000000..9bd584c45a
Binary files /dev/null and b/website/src/img/new/unique-section-3.png differ
diff --git a/website/src/img/new/unique-section-4-dark.png b/website/src/img/new/unique-section-4-dark.png
new file mode 100644
index 0000000000..51dc83aa36
Binary files /dev/null and b/website/src/img/new/unique-section-4-dark.png differ
diff --git a/website/src/img/new/unique-section-4.png b/website/src/img/new/unique-section-4.png
new file mode 100644
index 0000000000..e9c461951d
Binary files /dev/null and b/website/src/img/new/unique-section-4.png differ
diff --git a/website/src/index.html b/website/src/index.html
index 5bec6f8c3d..968e0c280b 100644
--- a/website/src/index.html
+++ b/website/src/index.html
@@ -1,426 +1,236 @@
-
-
-
-
-
-
- SimpleX Chat: private, secure, no user identitifiers
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+---
+layout: layouts/main.html
+title: "SimpleX Chat: private and secure messenger without any user IDs (not even random)"
+description: "SimpleX Chat - a private and encrypted messenger without any user IDs (not even random ones)! Make a private connection via link / QR code to send messages and make calls."
+ogURL: "https://simplex.chat/"
+templateEngineOverride: njk
+active_home: true
+---
+{%- from "components/macro.njk" import overlay -%}
-
- {% include "nav.html" %}
+{% include "hero.html" %}
-
-
-
SimpleX Chat
-
Private & encrypted - the only platform without user identifiers!
-
-
You can download terminal chat app from GitHub or using this command:
-
- curl -o- https://raw.githubusercontent.com/simplex-chat/simplex-chat/master/install.sh | bash
-
- Copy to clipboard
-
-
-
-
-
-
-
-
-
-
-
Run demo
-
Faster!
-
Try it!
-
-
-
-
-
-
-
Privacy redefined
-
SimpleX advantage:
-
SimpleX ensures data and meta-data privacy
-
with a new protocol design – it delivers messages
-
without using senders' and recipients' identifiers,
-
unlike any other messaging platform.
-
-
-
-
Security
-
Two-layer encryption and communication integrity
-
-
-
-
Privacy
-
Your contacts and messages are stored on your device
-
-
-
-
Convenience
-
Easy to add contacts and start talking
-
-
-
-
-
-
-
-
Problem: chat security
-
-
- End-to-end encryption?
- Alice sends the key to Bob (e.g. via p2p network or via chat server)
-
-
- Alice
-
- Bob
-
-
- Now Bob can send encrypted messages to Alice - he believes it is secure!
-
-
- Alice
-
- Bob
-
-
-
-
- Man-in-the-middle attack!
- But the key can be intercepted and substituted by Tom (the attacker)
-
-
- Alice
-
- Bob
- Tom
-
-
- Now the attacker can read the messages without Alice or Bob knowing
-
-
- Alice
-
- Bob
- Tom
-
-
-
-
-
-
-
-
-
-
What is the solution?
-
- To create secure encrypted channel you need an existing secure channel
- where you can pass the encryption key (or key fingerprint).
-
-
Any alternative solution can be compromised.
-
-
-
-
-
-
Make a private connection!
-
To add contact and to start chat
-
- Adding a contact in mobile app will require sharing your one-time QR code.
- In the terminal UI you need to share an invitation with your contact.
-
-
After creating your chat profile in the app:
-
-
- 1. Show QR code or share link
-
-
-
- Alice
-
-
-
- 2. Your contact scans QR code or opens link
-
-
-
- Bob
-
-
-
- 3. A private connection is established
-
-
-
- Alice
-
-
-
- 4. Now you can chat privately!
-
-
-
- Bob
-
-
-
-
-
-
-
-
Comparison with other protocols
-
-
-
-
-
- SimpleX chat
- Signal, big platforms
- XMPP, Matrix
- P2P protocols
-
-
-
-
- Requires global identity
- No - private
- Yes 1
- Yes 2
- Yes 3
-
-
- Possibility of MITM
- No - secure
- Yes 4
- Yes
- Yes
-
-
- Dependence on DNS
- No - resilient
- Yes
- Yes
- No
-
-
- Single or centralized network
- No - decentralized
- Yes
- No - federated 5
- Yes 6
-
-
- Central component or other network-wide attack
- No - resilient
- Yes
- Yes 2
- Yes 7
-
-
-
-
-
-
-
-
-
-
-
-
-
SimpleX messaging protocol
-
Unidirectional (simplex) queues
-
- Simplex messaging protocol
- (SMP) for messaging via secure persistent queues will serve as the low level protocol for
- SimpleX chat - see
- demo server implementation .
- It uses different encryption keys for each message queue - the key is passed via existing
- secure channel - e.g. QR code or another simplex queue.
-
-
-
-
-
-
-
-
-
-
Chat
-
Communication integrity
-
- Each chat uses two (or more) simplex queues for duplex communication. Each message contains the
- hash of the previous message to detect if messages are lost or changed.
-
-
-
-
-
-
-
-
-
- Use SimpleX
-
- SimpleX chat terminal client
- v2.0.0 is
- released!
- – groups and files
- – two-layer E2E encryption, with double-ratchet algorithm
- – protocol is compatible with mobile apps
-
-
- You can use our servers or deploy your own, e.g. using
-
- StackScript on Linode .
-
-
- Sign up to be updated about the new releases.
-
-
-
-
-
- Join SimpleX
-
- The project can move faster with your help.
- We develop it in Haskell.
-
-
-
-
-
-
-
-
+
`),i.append(r)),r}Object.keys(j).forEach((e=>{Object.keys(j[e]).forEach((t=>{V.prototype[t]=j[e][t]}))})),V.use([function(e){let{swiper:t,on:s,emit:a}=e;const i=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(a("beforeResize"),a("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&a("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==i.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=i.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(i.addEventListener("resize",o),i.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&i.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),i.removeEventListener("resize",o),i.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=[],l=r(),o=function(e,t){void 0===t&&(t={});const s=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(1===e.length)return void i("observerUpdate",e[0]);const t=function(){i("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(t):l.setTimeout(t,0)}));s.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),n.push(s)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),a("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=t.$el.parents();for(let t=0;t{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const re=[function(e){let t,{swiper:s,extendParams:a,on:i,emit:r}=e;function n(e,t){const a=s.params.virtual;if(a.cache&&s.virtual.cache[t])return s.virtual.cache[t];const i=a.renderSlide?d(a.renderSlide.call(s,e,t)):d(`${e}
`);return i.attr("data-swiper-slide-index")||i.attr("data-swiper-slide-index",t),a.cache&&(s.virtual.cache[t]=i),i}function l(e){const{slidesPerView:t,slidesPerGroup:a,centeredSlides:i}=s.params,{addSlidesBefore:l,addSlidesAfter:o}=s.params.virtual,{from:d,to:c,slides:p,slidesGrid:u,offset:h}=s.virtual;s.params.cssMode||s.updateActiveIndex();const m=s.activeIndex||0;let f,g,v;f=s.rtlTranslate?"right":s.isHorizontal()?"left":"top",i?(g=Math.floor(t/2)+a+o,v=Math.floor(t/2)+a+l):(g=t+(a-1)+o,v=a+l);const w=Math.max((m||0)-v,0),b=Math.min((m||0)+g,p.length-1),x=(s.slidesGrid[w]||0)-(s.slidesGrid[0]||0);function y(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),s.lazy&&s.params.lazy.enabled&&s.lazy.load(),r("virtualUpdate")}if(Object.assign(s.virtual,{from:w,to:b,offset:x,slidesGrid:s.slidesGrid}),d===w&&c===b&&!e)return s.slidesGrid!==u&&x!==h&&s.slides.css(f,`${x}px`),s.updateProgress(),void r("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:x,from:w,to:b,slides:function(){const e=[];for(let t=w;t<=b;t+=1)e.push(p[t]);return e}()}),void(s.params.virtual.renderExternalUpdate?y():r("virtualUpdate"));const E=[],C=[];if(e)s.$wrapperEl.find(`.${s.params.slideClass}`).remove();else for(let e=d;e<=c;e+=1)(eb)&&s.$wrapperEl.find(`.${s.params.slideClass}[data-swiper-slide-index="${e}"]`).remove();for(let t=0;t=w&&t<=b&&(void 0===c||e?C.push(t):(t>c&&C.push(t),t{s.$wrapperEl.append(n(p[e],e))})),E.sort(((e,t)=>t-e)).forEach((e=>{s.$wrapperEl.prepend(n(p[e],e))})),s.$wrapperEl.children(".swiper-slide").css(f,`${x}px`),y()}a({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}}),s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]},i("beforeInit",(()=>{s.params.virtual.enabled&&(s.virtual.slides=s.params.virtual.slides,s.classNames.push(`${s.params.containerModifierClass}virtual`),s.params.watchSlidesProgress=!0,s.originalParams.watchSlidesProgress=!0,s.params.initialSlide||l())})),i("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{l()}),100)):l())})),i("init update resize",(()=>{s.params.virtual.enabled&&s.params.cssMode&&v(s.wrapperEl,"--swiper-virtual-size",`${s.virtualSize}px`)})),Object.assign(s.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t{const a=e[s],r=a.attr("data-swiper-slide-index");r&&a.attr("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),s.virtual.cache=t}l(!0),s.slideTo(a,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)s.virtual.slides.splice(e[a],1),s.params.virtual.cache&&delete s.virtual.cache[e[a]],e[a]0&&0===t.$el.parents(`.${t.params.slideActiveClass}`).length)return;const a=t.$el,i=a[0].clientWidth,r=a[0].clientHeight,n=o.innerWidth,l=o.innerHeight,d=t.$el.offset();s&&(d.left-=t.$el[0].scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let t=0;t=0&&s[0]<=n&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&t.slideNext(),((d||p)&&!s||(c||u)&&s)&&t.slidePrev()):((d||c||h||m)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||m)&&t.slideNext(),(d||h)&&t.slidePrev()),n("keyPress",i)}}function p(){t.keyboard.enabled||(d(l).on("keydown",c),t.keyboard.enabled=!0)}function u(){t.keyboard.enabled&&(d(l).off("keydown",c),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),i("init",(()=>{t.params.keyboard.enabled&&p()})),i("destroy",(()=>{t.keyboard.enabled&&u()})),Object.assign(t.keyboard,{enable:p,disable:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();let l;s({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null}}),t.mousewheel={enabled:!1};let o,c=u();const h=[];function m(){t.enabled&&(t.mouseEntered=!0)}function f(){t.enabled&&(t.mouseEntered=!1)}function g(e){return!(t.params.mousewheel.thresholdDelta&&e.delta=6&&u()-c<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),i("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),i("scroll",e.raw)),c=(new n.Date).getTime(),!1)))}function v(e){let s=e,a=!0;if(!t.enabled)return;const r=t.params.mousewheel;t.params.cssMode&&s.preventDefault();let n=t.$el;if("container"!==t.params.mousewheel.eventsTarget&&(n=d(t.params.mousewheel.eventsTarget)),!t.mouseEntered&&!n[0].contains(s.target)&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let c=0;const m=t.rtlTranslate?-1:1,f=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(f.pixelX)>Math.abs(f.pixelY)))return!0;c=-f.pixelX*m}else{if(!(Math.abs(f.pixelY)>Math.abs(f.pixelX)))return!0;c=-f.pixelY}else c=Math.abs(f.pixelX)>Math.abs(f.pixelY)?-f.pixelX*m:-f.pixelY;if(0===c)return!0;r.invert&&(c=-c);let v=t.getTranslate()+c*r.sensitivity;if(v>=t.minTranslate()&&(v=t.minTranslate()),v<=t.maxTranslate()&&(v=t.maxTranslate()),a=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),a&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:u(),delta:Math.abs(c),direction:Math.sign(c)},a=o&&e.time=t.minTranslate()&&(n=t.minTranslate()),n<=t.maxTranslate()&&(n=t.maxTranslate()),t.setTransition(0),t.setTranslate(n),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!d&&t.isBeginning||!u&&t.isEnd)&&t.updateSlidesClasses(),t.params.freeMode.sticky){clearTimeout(l),l=void 0,h.length>=15&&h.shift();const s=h.length?h[h.length-1]:void 0,a=h[0];if(h.push(e),s&&(e.delta>s.delta||e.direction!==s.direction))h.splice(0);else if(h.length>=15&&e.time-a.time<500&&a.delta-e.delta>=1&&e.delta<=6){const s=c>0?.8:.2;o=e,h.splice(0),l=p((()=>{t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}l||(l=p((()=>{o=e,h.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(a||i("scroll",s),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),n===t.minTranslate()||n===t.maxTranslate())return!0}}else{const s={time:u(),delta:Math.abs(c),direction:Math.sign(c),raw:e};h.length>=2&&h.shift();const a=h.length?h[h.length-1]:void 0;if(h.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&g(s):g(s),function(e){const s=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&s.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function w(e){let s=t.$el;"container"!==t.params.mousewheel.eventsTarget&&(s=d(t.params.mousewheel.eventsTarget)),s[e]("mouseenter",m),s[e]("mouseleave",f),s[e]("wheel",v)}function b(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",v),!0):!t.mousewheel.enabled&&(w("on"),t.mousewheel.enabled=!0,!0)}function x(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,v),!0):!!t.mousewheel.enabled&&(w("off"),t.mousewheel.enabled=!1,!0)}a("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&x(),t.params.mousewheel.enabled&&b()})),a("destroy",(()=>{t.params.cssMode&&b(),t.mousewheel.enabled&&x()})),Object.assign(t.mousewheel,{enable:b,disable:x})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;function r(e){let s;return e&&(s=d(e),t.params.uniqueNavElements&&"string"==typeof e&&s.length>1&&1===t.$el.find(e).length&&(s=t.$el.find(e))),s}function n(e,s){const a=t.params.navigation;e&&e.length>0&&(e[s?"addClass":"removeClass"](a.disabledClass),e[0]&&"BUTTON"===e[0].tagName&&(e[0].disabled=s),t.params.watchOverflow&&t.enabled&&e[t.isLocked?"addClass":"removeClass"](a.lockClass))}function l(){if(t.params.loop)return;const{$nextEl:e,$prevEl:s}=t.navigation;n(s,t.isBeginning&&!t.params.rewind),n(e,t.isEnd&&!t.params.rewind)}function o(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&(t.slidePrev(),i("navigationPrev"))}function c(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),i("navigationNext"))}function p(){const e=t.params.navigation;if(t.params.navigation=F(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;const s=r(e.nextEl),a=r(e.prevEl);s&&s.length>0&&s.on("click",c),a&&a.length>0&&a.on("click",o),Object.assign(t.navigation,{$nextEl:s,nextEl:s&&s[0],$prevEl:a,prevEl:a&&a[0]}),t.enabled||(s&&s.addClass(e.lockClass),a&&a.addClass(e.lockClass))}function u(){const{$nextEl:e,$prevEl:s}=t.navigation;e&&e.length&&(e.off("click",c),e.removeClass(t.params.navigation.disabledClass)),s&&s.length&&(s.off("click",o),s.removeClass(t.params.navigation.disabledClass))}s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,$nextEl:null,prevEl:null,$prevEl:null},a("init",(()=>{!1===t.params.navigation.enabled?h():(p(),l())})),a("toEdge fromEdge lock unlock",(()=>{l()})),a("destroy",(()=>{u()})),a("enable disable",(()=>{const{$nextEl:e,$prevEl:s}=t.navigation;e&&e[t.enabled?"removeClass":"addClass"](t.params.navigation.lockClass),s&&s[t.enabled?"removeClass":"addClass"](t.params.navigation.lockClass)})),a("click",((e,s)=>{const{$nextEl:a,$prevEl:r}=t.navigation,n=s.target;if(t.params.navigation.hideOnClick&&!d(n).is(r)&&!d(n).is(a)){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===n||t.pagination.el.contains(n)))return;let e;a?e=a.hasClass(t.params.navigation.hiddenClass):r&&(e=r.hasClass(t.params.navigation.hiddenClass)),i(!0===e?"navigationShow":"navigationHide"),a&&a.toggleClass(t.params.navigation.hiddenClass),r&&r.toggleClass(t.params.navigation.hiddenClass)}}));const h=()=>{t.$el.addClass(t.params.navigation.navigationDisabledClass),u()};Object.assign(t.navigation,{enable:()=>{t.$el.removeClass(t.params.navigation.navigationDisabledClass),p(),l()},disable:h,update:l,init:p,destroy:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const r="swiper-pagination";let n;s({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,$el:null,bullets:[]};let l=0;function o(){return!t.params.pagination.el||!t.pagination.el||!t.pagination.$el||0===t.pagination.$el.length}function c(e,s){const{bulletActiveClass:a}=t.params.pagination;e[s]().addClass(`${a}-${s}`)[s]().addClass(`${a}-${s}-${s}`)}function p(){const e=t.rtl,s=t.params.pagination;if(o())return;const a=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,r=t.pagination.$el;let p;const u=t.params.loop?Math.ceil((a-2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(p=Math.ceil((t.activeIndex-t.loopedSlides)/t.params.slidesPerGroup),p>a-1-2*t.loopedSlides&&(p-=a-2*t.loopedSlides),p>u-1&&(p-=u),p<0&&"bullets"!==t.params.paginationType&&(p=u+p)):p=void 0!==t.snapIndex?t.snapIndex:t.activeIndex||0,"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const a=t.pagination.bullets;let i,o,u;if(s.dynamicBullets&&(n=a.eq(0)[t.isHorizontal()?"outerWidth":"outerHeight"](!0),r.css(t.isHorizontal()?"width":"height",n*(s.dynamicMainBullets+4)+"px"),s.dynamicMainBullets>1&&void 0!==t.previousIndex&&(l+=p-(t.previousIndex-t.loopedSlides||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),i=Math.max(p-l,0),o=i+(Math.min(a.length,s.dynamicMainBullets)-1),u=(o+i)/2),a.removeClass(["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`)).join(" ")),r.length>1)a.each((e=>{const t=d(e),a=t.index();a===p&&t.addClass(s.bulletActiveClass),s.dynamicBullets&&(a>=i&&a<=o&&t.addClass(`${s.bulletActiveClass}-main`),a===i&&c(t,"prev"),a===o&&c(t,"next"))}));else{const e=a.eq(p),r=e.index();if(e.addClass(s.bulletActiveClass),s.dynamicBullets){const e=a.eq(i),n=a.eq(o);for(let e=i;e<=o;e+=1)a.eq(e).addClass(`${s.bulletActiveClass}-main`);if(t.params.loop)if(r>=a.length){for(let e=s.dynamicMainBullets;e>=0;e-=1)a.eq(a.length-e).addClass(`${s.bulletActiveClass}-main`);a.eq(a.length-s.dynamicMainBullets-1).addClass(`${s.bulletActiveClass}-prev`)}else c(e,"prev"),c(n,"next");else c(e,"prev"),c(n,"next")}}if(s.dynamicBullets){const i=Math.min(a.length,s.dynamicMainBullets+4),r=(n*i-n)/2-u*n,l=e?"right":"left";a.css(t.isHorizontal()?l:"top",`${r}px`)}}if("fraction"===s.type&&(r.find(U(s.currentClass)).text(s.formatFractionCurrent(p+1)),r.find(U(s.totalClass)).text(s.formatFractionTotal(u))),"progressbar"===s.type){let e;e=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const a=(p+1)/u;let i=1,n=1;"horizontal"===e?i=a:n=a,r.find(U(s.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${i}) scaleY(${n})`).transition(t.params.speed)}"custom"===s.type&&s.renderCustom?(r.html(s.renderCustom(t,p+1,u)),i("paginationRender",r[0])):i("paginationUpdate",r[0]),t.params.watchOverflow&&t.enabled&&r[t.isLocked?"addClass":"removeClass"](s.lockClass)}function u(){const e=t.params.pagination;if(o())return;const s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,a=t.pagination.$el;let r="";if("bullets"===e.type){let i=t.params.loop?Math.ceil((s-2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&!t.params.loop&&i>s&&(i=s);for(let s=0;s${e.bulletElement}>`;a.html(r),t.pagination.bullets=a.find(U(e.bulletClass))}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.totalClass):` / `,a.html(r)),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(t,e.progressbarFillClass):` `,a.html(r)),"custom"!==e.type&&i("paginationRender",t.pagination.$el[0])}function h(){t.params.pagination=F(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const e=t.params.pagination;if(!e.el)return;let s=d(e.el);0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof e.el&&s.length>1&&(s=t.$el.find(e.el),s.length>1&&(s=s.filter((e=>d(e).parents(".swiper")[0]===t.el)))),"bullets"===e.type&&e.clickable&&s.addClass(e.clickableClass),s.addClass(e.modifierClass+e.type),s.addClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(s.addClass(`${e.modifierClass}${e.type}-dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&s.addClass(e.progressbarOppositeClass),e.clickable&&s.on("click",U(e.bulletClass),(function(e){e.preventDefault();let s=d(this).index()*t.params.slidesPerGroup;t.params.loop&&(s+=t.loopedSlides),t.slideTo(s)})),Object.assign(t.pagination,{$el:s,el:s[0]}),t.enabled||s.addClass(e.lockClass))}function m(){const e=t.params.pagination;if(o())return;const s=t.pagination.$el;s.removeClass(e.hiddenClass),s.removeClass(e.modifierClass+e.type),s.removeClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.pagination.bullets&&t.pagination.bullets.removeClass&&t.pagination.bullets.removeClass(e.bulletActiveClass),e.clickable&&s.off("click",U(e.bulletClass))}a("init",(()=>{!1===t.params.pagination.enabled?f():(h(),u(),p())})),a("activeIndexChange",(()=>{(t.params.loop||void 0===t.snapIndex)&&p()})),a("snapIndexChange",(()=>{t.params.loop||p()})),a("slidesLengthChange",(()=>{t.params.loop&&(u(),p())})),a("snapGridLengthChange",(()=>{t.params.loop||(u(),p())})),a("destroy",(()=>{m()})),a("enable disable",(()=>{const{$el:e}=t.pagination;e&&e[t.enabled?"removeClass":"addClass"](t.params.pagination.lockClass)})),a("lock unlock",(()=>{p()})),a("click",((e,s)=>{const a=s.target,{$el:r}=t.pagination;if(t.params.pagination.el&&t.params.pagination.hideOnClick&&r&&r.length>0&&!d(a).hasClass(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&a===t.navigation.nextEl||t.navigation.prevEl&&a===t.navigation.prevEl))return;const e=r.hasClass(t.params.pagination.hiddenClass);i(!0===e?"paginationShow":"paginationHide"),r.toggleClass(t.params.pagination.hiddenClass)}}));const f=()=>{t.$el.addClass(t.params.pagination.paginationDisabledClass),t.pagination.$el&&t.pagination.$el.addClass(t.params.pagination.paginationDisabledClass),m()};Object.assign(t.pagination,{enable:()=>{t.$el.removeClass(t.params.pagination.paginationDisabledClass),t.pagination.$el&&t.pagination.$el.removeClass(t.params.pagination.paginationDisabledClass),h(),u(),p()},disable:f,render:u,update:p,init:h,destroy:m})},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const n=a();let l,o,c,u,h=!1,m=null,f=null;function g(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s,progress:a}=t,{$dragEl:i,$el:r}=e,n=t.params.scrollbar;let l=o,d=(c-o)*a;s?(d=-d,d>0?(l=o-d,d=0):-d+o>c&&(l=c+d)):d<0?(l=o+d,d=0):d+o>c&&(l=c-d),t.isHorizontal()?(i.transform(`translate3d(${d}px, 0, 0)`),i[0].style.width=`${l}px`):(i.transform(`translate3d(0px, ${d}px, 0)`),i[0].style.height=`${l}px`),n.hide&&(clearTimeout(m),r[0].style.opacity=1,m=setTimeout((()=>{r[0].style.opacity=0,r.transition(400)}),1e3))}function v(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{$dragEl:s,$el:a}=e;s[0].style.width="",s[0].style.height="",c=t.isHorizontal()?a[0].offsetWidth:a[0].offsetHeight,u=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),o="auto"===t.params.scrollbar.dragSize?c*u:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s[0].style.width=`${o}px`:s[0].style.height=`${o}px`,a[0].style.display=u>=1?"none":"",t.params.scrollbar.hide&&(a[0].style.opacity=0),t.params.watchOverflow&&t.enabled&&e.$el[t.isLocked?"addClass":"removeClass"](t.params.scrollbar.lockClass)}function w(e){return t.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientX:e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientY:e.clientY}function b(e){const{scrollbar:s,rtlTranslate:a}=t,{$el:i}=s;let r;r=(w(e)-i.offset()[t.isHorizontal()?"left":"top"]-(null!==l?l:o/2))/(c-o),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*r;t.updateProgress(n),t.setTranslate(n),t.updateActiveIndex(),t.updateSlidesClasses()}function x(e){const s=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n,$dragEl:o}=a;h=!0,l=e.target===o[0]||e.target===o?w(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.transition(100),o.transition(100),b(e),clearTimeout(f),n.transition(0),s.hide&&n.css("opacity",1),t.params.cssMode&&t.$wrapperEl.css("scroll-snap-type","none"),r("scrollbarDragStart",e)}function y(e){const{scrollbar:s,$wrapperEl:a}=t,{$el:i,$dragEl:n}=s;h&&(e.preventDefault?e.preventDefault():e.returnValue=!1,b(e),a.transition(0),i.transition(0),n.transition(0),r("scrollbarDragMove",e))}function E(e){const s=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n}=a;h&&(h=!1,t.params.cssMode&&(t.$wrapperEl.css("scroll-snap-type",""),i.transition("")),s.hide&&(clearTimeout(f),f=p((()=>{n.css("opacity",0),n.transition(400)}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function C(e){const{scrollbar:s,touchEventsTouch:a,touchEventsDesktop:i,params:r,support:l}=t,o=s.$el;if(!o)return;const d=o[0],c=!(!l.passiveListener||!r.passiveListeners)&&{passive:!1,capture:!1},p=!(!l.passiveListener||!r.passiveListeners)&&{passive:!0,capture:!1};if(!d)return;const u="on"===e?"addEventListener":"removeEventListener";l.touch?(d[u](a.start,x,c),d[u](a.move,y,c),d[u](a.end,E,p)):(d[u](i.start,x,c),n[u](i.move,y,c),n[u](i.end,E,p))}function T(){const{scrollbar:e,$el:s}=t;t.params.scrollbar=F(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i=d(a.el);t.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.find(a.el).length&&(i=s.find(a.el)),i.addClass(t.isHorizontal()?a.horizontalClass:a.verticalClass);let r=i.find(`.${t.params.scrollbar.dragClass}`);0===r.length&&(r=d(`
`),i.append(r)),Object.assign(e,{$el:i,el:i[0],$dragEl:r,dragEl:r[0]}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&C("on"),i&&i[t.enabled?"removeClass":"addClass"](t.params.scrollbar.lockClass)}function $(){const e=t.params.scrollbar,s=t.scrollbar.$el;s&&s.removeClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.params.scrollbar.el&&t.scrollbar.el&&C("off")}s({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null,$el:null,$dragEl:null},i("init",(()=>{!1===t.params.scrollbar.enabled?S():(T(),v(),g())})),i("update resize observerUpdate lock unlock",(()=>{v()})),i("setTranslate",(()=>{g()})),i("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&t.scrollbar.$dragEl.transition(e)}(s)})),i("enable disable",(()=>{const{$el:e}=t.scrollbar;e&&e[t.enabled?"removeClass":"addClass"](t.params.scrollbar.lockClass)})),i("destroy",(()=>{$()}));const S=()=>{t.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.$el&&t.scrollbar.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),$()};Object.assign(t.scrollbar,{enable:()=>{t.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.$el&&t.scrollbar.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),T(),v(),g()},disable:S,updateSize:v,setTranslate:g,init:T,destroy:$})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i=(e,s)=>{const{rtl:a}=t,i=d(e),r=a?-1:1,n=i.attr("data-swiper-parallax")||"0";let l=i.attr("data-swiper-parallax-x"),o=i.attr("data-swiper-parallax-y");const c=i.attr("data-swiper-parallax-scale"),p=i.attr("data-swiper-parallax-opacity");if(l||o?(l=l||"0",o=o||"0"):t.isHorizontal()?(l=n,o="0"):(o=n,l="0"),l=l.indexOf("%")>=0?parseInt(l,10)*s*r+"%":l*s*r+"px",o=o.indexOf("%")>=0?parseInt(o,10)*s+"%":o*s+"px",null!=p){const e=p-(p-1)*(1-Math.abs(s));i[0].style.opacity=e}if(null==c)i.transform(`translate3d(${l}, ${o}, 0px)`);else{const e=c-(c-1)*(1-Math.abs(s));i.transform(`translate3d(${l}, ${o}, 0px) scale(${e})`)}},r=()=>{const{$el:e,slides:s,progress:a,snapGrid:r}=t;e.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{i(e,a)})),s.each(((e,s)=>{let n=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(n+=Math.ceil(s/2)-a*(r.length-1)),n=Math.min(Math.max(n,-1),1),d(e).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{i(e,n)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&r()})),a("setTranslate",(()=>{t.params.parallax.enabled&&r()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{$el:s}=t;s.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t=>{const s=d(t);let a=parseInt(s.attr("data-swiper-parallax-duration"),10)||e;0===e&&(a=0),s.transition(a)}))}(s)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();s({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let l,o,c,p=1,u=!1;const m={$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},f={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},g={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let v=1;function w(e){if(e.targetTouches.length<2)return 1;const t=e.targetTouches[0].pageX,s=e.targetTouches[0].pageY,a=e.targetTouches[1].pageX,i=e.targetTouches[1].pageY;return Math.sqrt((a-t)**2+(i-s)**2)}function b(e){const s=t.support,a=t.params.zoom;if(o=!1,c=!1,!s.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;o=!0,m.scaleStart=w(e)}m.$slideEl&&m.$slideEl.length||(m.$slideEl=d(e.target).closest(`.${t.params.slideClass}`),0===m.$slideEl.length&&(m.$slideEl=t.slides.eq(t.activeIndex)),m.$imageEl=m.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${a.containerClass}`),m.maxRatio=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,0!==m.$imageWrapEl.length)?(m.$imageEl&&m.$imageEl.transition(0),u=!0):m.$imageEl=void 0}function x(e){const s=t.support,a=t.params.zoom,i=t.zoom;if(!s.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;c=!0,m.scaleMove=w(e)}m.$imageEl&&0!==m.$imageEl.length?(s.gestures?i.scale=e.scale*p:i.scale=m.scaleMove/m.scaleStart*p,i.scale>m.maxRatio&&(i.scale=m.maxRatio-1+(i.scale-m.maxRatio+1)**.5),i.scalef.touchesStart.x))return void(f.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(f.minY)===Math.floor(f.startY)&&f.touchesCurrent.yf.touchesStart.y))return void(f.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),f.isMoved=!0,f.currentX=f.touchesCurrent.x-f.touchesStart.x+f.startX,f.currentY=f.touchesCurrent.y-f.touchesStart.y+f.startY,f.currentXf.maxX&&(f.currentX=f.maxX-1+(f.currentX-f.maxX+1)**.8),f.currentYf.maxY&&(f.currentY=f.maxY-1+(f.currentY-f.maxY+1)**.8),g.prevPositionX||(g.prevPositionX=f.touchesCurrent.x),g.prevPositionY||(g.prevPositionY=f.touchesCurrent.y),g.prevTime||(g.prevTime=Date.now()),g.x=(f.touchesCurrent.x-g.prevPositionX)/(Date.now()-g.prevTime)/2,g.y=(f.touchesCurrent.y-g.prevPositionY)/(Date.now()-g.prevTime)/2,Math.abs(f.touchesCurrent.x-g.prevPositionX)<2&&(g.x=0),Math.abs(f.touchesCurrent.y-g.prevPositionY)<2&&(g.y=0),g.prevPositionX=f.touchesCurrent.x,g.prevPositionY=f.touchesCurrent.y,g.prevTime=Date.now(),m.$imageWrapEl.transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`)}}function C(){const e=t.zoom;m.$slideEl&&t.previousIndex!==t.activeIndex&&(m.$imageEl&&m.$imageEl.transform("translate3d(0,0,0) scale(1)"),m.$imageWrapEl&&m.$imageWrapEl.transform("translate3d(0,0,0)"),e.scale=1,p=1,m.$slideEl=void 0,m.$imageEl=void 0,m.$imageWrapEl=void 0)}function T(e){const s=t.zoom,a=t.params.zoom;if(m.$slideEl||(e&&e.target&&(m.$slideEl=d(e.target).closest(`.${t.params.slideClass}`)),m.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.$slideEl=t.$wrapperEl.children(`.${t.params.slideActiveClass}`):m.$slideEl=t.slides.eq(t.activeIndex)),m.$imageEl=m.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${a.containerClass}`)),!m.$imageEl||0===m.$imageEl.length||!m.$imageWrapEl||0===m.$imageWrapEl.length)return;let i,r,l,o,c,u,h,g,v,w,b,x,y,E,C,T,$,S;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),m.$slideEl.addClass(`${a.zoomedSlideClass}`),void 0===f.touchesStart.x&&e?(i="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,r="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(i=f.touchesStart.x,r=f.touchesStart.y),s.scale=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,p=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,e?($=m.$slideEl[0].offsetWidth,S=m.$slideEl[0].offsetHeight,l=m.$slideEl.offset().left+n.scrollX,o=m.$slideEl.offset().top+n.scrollY,c=l+$/2-i,u=o+S/2-r,v=m.$imageEl[0].offsetWidth,w=m.$imageEl[0].offsetHeight,b=v*s.scale,x=w*s.scale,y=Math.min($/2-b/2,0),E=Math.min(S/2-x/2,0),C=-y,T=-E,h=c*s.scale,g=u*s.scale,hC&&(h=C),gT&&(g=T)):(h=0,g=0),m.$imageWrapEl.transition(300).transform(`translate3d(${h}px, ${g}px,0)`),m.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${s.scale})`)}function $(){const e=t.zoom,s=t.params.zoom;m.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.$slideEl=t.$wrapperEl.children(`.${t.params.slideActiveClass}`):m.$slideEl=t.slides.eq(t.activeIndex),m.$imageEl=m.$slideEl.find(`.${s.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${s.containerClass}`)),m.$imageEl&&0!==m.$imageEl.length&&m.$imageWrapEl&&0!==m.$imageWrapEl.length&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,p=1,m.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),m.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),m.$slideEl.removeClass(`${s.zoomedSlideClass}`),m.$slideEl=void 0)}function S(e){const s=t.zoom;s.scale&&1!==s.scale?$():T(e)}function M(){const e=t.support;return{passiveListener:!("touchstart"!==t.touchEvents.start||!e.passiveListener||!t.params.passiveListeners)&&{passive:!0,capture:!1},activeListenerWithCapture:!e.passiveListener||{passive:!1,capture:!0}}}function P(){return`.${t.params.slideClass}`}function k(e){const{passiveListener:s}=M(),a=P();t.$wrapperEl[e]("gesturestart",a,b,s),t.$wrapperEl[e]("gesturechange",a,x,s),t.$wrapperEl[e]("gestureend",a,y,s)}function z(){l||(l=!0,k("on"))}function L(){l&&(l=!1,k("off"))}function O(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const s=t.support,{passiveListener:a,activeListenerWithCapture:i}=M(),r=P();s.gestures?(t.$wrapperEl.on(t.touchEvents.start,z,a),t.$wrapperEl.on(t.touchEvents.end,L,a)):"touchstart"===t.touchEvents.start&&(t.$wrapperEl.on(t.touchEvents.start,r,b,a),t.$wrapperEl.on(t.touchEvents.move,r,x,i),t.$wrapperEl.on(t.touchEvents.end,r,y,a),t.touchEvents.cancel&&t.$wrapperEl.on(t.touchEvents.cancel,r,y,a)),t.$wrapperEl.on(t.touchEvents.move,`.${t.params.zoom.containerClass}`,E,i)}function I(){const e=t.zoom;if(!e.enabled)return;const s=t.support;e.enabled=!1;const{passiveListener:a,activeListenerWithCapture:i}=M(),r=P();s.gestures?(t.$wrapperEl.off(t.touchEvents.start,z,a),t.$wrapperEl.off(t.touchEvents.end,L,a)):"touchstart"===t.touchEvents.start&&(t.$wrapperEl.off(t.touchEvents.start,r,b,a),t.$wrapperEl.off(t.touchEvents.move,r,x,i),t.$wrapperEl.off(t.touchEvents.end,r,y,a),t.touchEvents.cancel&&t.$wrapperEl.off(t.touchEvents.cancel,r,y,a)),t.$wrapperEl.off(t.touchEvents.move,`.${t.params.zoom.containerClass}`,E,i)}Object.defineProperty(t.zoom,"scale",{get:()=>v,set(e){if(v!==e){const t=m.$imageEl?m.$imageEl[0]:void 0,s=m.$slideEl?m.$slideEl[0]:void 0;i("zoomChange",e,t,s)}v=e}}),a("init",(()=>{t.params.zoom.enabled&&O()})),a("destroy",(()=>{I()})),a("touchStart",((e,s)=>{t.zoom.enabled&&function(e){const s=t.device;m.$imageEl&&0!==m.$imageEl.length&&(f.isTouched||(s.android&&e.cancelable&&e.preventDefault(),f.isTouched=!0,f.touchesStart.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,f.touchesStart.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY))}(s)})),a("touchEnd",((e,s)=>{t.zoom.enabled&&function(){const e=t.zoom;if(!m.$imageEl||0===m.$imageEl.length)return;if(!f.isTouched||!f.isMoved)return f.isTouched=!1,void(f.isMoved=!1);f.isTouched=!1,f.isMoved=!1;let s=300,a=300;const i=g.x*s,r=f.currentX+i,n=g.y*a,l=f.currentY+n;0!==g.x&&(s=Math.abs((r-f.currentX)/g.x)),0!==g.y&&(a=Math.abs((l-f.currentY)/g.y));const o=Math.max(s,a);f.currentX=r,f.currentY=l;const d=f.width*e.scale,c=f.height*e.scale;f.minX=Math.min(m.slideWidth/2-d/2,0),f.maxX=-f.minX,f.minY=Math.min(m.slideHeight/2-c/2,0),f.maxY=-f.minY,f.currentX=Math.max(Math.min(f.currentX,f.maxX),f.minX),f.currentY=Math.max(Math.min(f.currentY,f.maxY),f.minY),m.$imageWrapEl.transition(o).transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`)}()})),a("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&S(s)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&C()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&C()})),Object.assign(t.zoom,{enable:O,disable:I,in:T,out:$,toggle:S})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;s({lazy:{checkInView:!1,enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,scrollingElement:"",elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}}),t.lazy={};let n=!1,l=!1;function o(e,s){void 0===s&&(s=!0);const a=t.params.lazy;if(void 0===e)return;if(0===t.slides.length)return;const r=t.virtual&&t.params.virtual.enabled?t.$wrapperEl.children(`.${t.params.slideClass}[data-swiper-slide-index="${e}"]`):t.slides.eq(e),n=r.find(`.${a.elementClass}:not(.${a.loadedClass}):not(.${a.loadingClass})`);!r.hasClass(a.elementClass)||r.hasClass(a.loadedClass)||r.hasClass(a.loadingClass)||n.push(r[0]),0!==n.length&&n.each((e=>{const n=d(e);n.addClass(a.loadingClass);const l=n.attr("data-background"),c=n.attr("data-src"),p=n.attr("data-srcset"),u=n.attr("data-sizes"),h=n.parent("picture");t.loadImage(n[0],c||l,p,u,!1,(()=>{if(null!=t&&t&&(!t||t.params)&&!t.destroyed){if(l?(n.css("background-image",`url("${l}")`),n.removeAttr("data-background")):(p&&(n.attr("srcset",p),n.removeAttr("data-srcset")),u&&(n.attr("sizes",u),n.removeAttr("data-sizes")),h.length&&h.children("source").each((e=>{const t=d(e);t.attr("data-srcset")&&(t.attr("srcset",t.attr("data-srcset")),t.removeAttr("data-srcset"))})),c&&(n.attr("src",c),n.removeAttr("data-src"))),n.addClass(a.loadedClass).removeClass(a.loadingClass),r.find(`.${a.preloaderClass}`).remove(),t.params.loop&&s){const e=r.attr("data-swiper-slide-index");if(r.hasClass(t.params.slideDuplicateClass)){o(t.$wrapperEl.children(`[data-swiper-slide-index="${e}"]:not(.${t.params.slideDuplicateClass})`).index(),!1)}else{o(t.$wrapperEl.children(`.${t.params.slideDuplicateClass}[data-swiper-slide-index="${e}"]`).index(),!1)}}i("lazyImageReady",r[0],n[0]),t.params.autoHeight&&t.updateAutoHeight()}})),i("lazyImageLoad",r[0],n[0])}))}function c(){const{$wrapperEl:e,params:s,slides:a,activeIndex:i}=t,r=t.virtual&&s.virtual.enabled,n=s.lazy;let c=s.slidesPerView;function p(t){if(r){if(e.children(`.${s.slideClass}[data-swiper-slide-index="${t}"]`).length)return!0}else if(a[t])return!0;return!1}function u(e){return r?d(e).attr("data-swiper-slide-index"):d(e).index()}if("auto"===c&&(c=0),l||(l=!0),t.params.watchSlidesProgress)e.children(`.${s.slideVisibleClass}`).each((e=>{o(r?d(e).attr("data-swiper-slide-index"):d(e).index())}));else if(c>1)for(let e=i;e1||n.loadPrevNextAmount&&n.loadPrevNextAmount>1){const e=n.loadPrevNextAmount,t=Math.ceil(c),s=Math.min(i+t+Math.max(e,t),a.length),r=Math.max(i-Math.max(t,e),0);for(let e=i+t;e0&&o(u(t));const a=e.children(`.${s.slidePrevClass}`);a.length>0&&o(u(a))}}function p(){const e=r();if(!t||t.destroyed)return;const s=t.params.lazy.scrollingElement?d(t.params.lazy.scrollingElement):d(e),a=s[0]===e,i=a?e.innerWidth:s[0].offsetWidth,l=a?e.innerHeight:s[0].offsetHeight,o=t.$el.offset(),{rtlTranslate:u}=t;let h=!1;u&&(o.left-=t.$el[0].scrollLeft);const m=[[o.left,o.top],[o.left+t.width,o.top],[o.left,o.top+t.height],[o.left+t.width,o.top+t.height]];for(let e=0;e=0&&t[0]<=i&&t[1]>=0&&t[1]<=l){if(0===t[0]&&0===t[1])continue;h=!0}}const f=!("touchstart"!==t.touchEvents.start||!t.support.passiveListener||!t.params.passiveListeners)&&{passive:!0,capture:!1};h?(c(),s.off("scroll",p,f)):n||(n=!0,s.on("scroll",p,f))}a("beforeInit",(()=>{t.params.lazy.enabled&&t.params.preloadImages&&(t.params.preloadImages=!1)})),a("init",(()=>{t.params.lazy.enabled&&(t.params.lazy.checkInView?p():c())})),a("scroll",(()=>{t.params.freeMode&&t.params.freeMode.enabled&&!t.params.freeMode.sticky&&c()})),a("scrollbarDragMove resize _freeModeNoMomentumRelease",(()=>{t.params.lazy.enabled&&(t.params.lazy.checkInView?p():c())})),a("transitionStart",(()=>{t.params.lazy.enabled&&(t.params.lazy.loadOnTransitionStart||!t.params.lazy.loadOnTransitionStart&&!l)&&(t.params.lazy.checkInView?p():c())})),a("transitionEnd",(()=>{t.params.lazy.enabled&&!t.params.lazy.loadOnTransitionStart&&(t.params.lazy.checkInView?p():c())})),a("slideChange",(()=>{const{lazy:e,cssMode:s,watchSlidesProgress:a,touchReleaseOnEdges:i,resistanceRatio:r}=t.params;e.enabled&&(s||a&&(i||0===r))&&c()})),a("destroy",(()=>{t.$el&&t.$el.find(`.${t.params.lazy.loadingClass}`).removeClass(t.params.lazy.loadingClass)})),Object.assign(t.lazy,{load:c,loadInSlide:o})},function(e){let{swiper:t,extendParams:s,on:a}=e;function i(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function r(){t.controller.control&&t.controller.spline&&(t.controller.spline=void 0,delete t.controller.spline)}s({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0},a("beforeInit",(()=>{t.controller.control=t.params.controller.control})),a("update",(()=>{r()})),a("resize",(()=>{r()})),a("observerUpdate",(()=>{r()})),a("setTranslate",((e,s,a)=>{t.controller.control&&t.controller.setTranslate(s,a)})),a("setTransition",((e,s,a)=>{t.controller.control&&t.controller.setTransition(s,a)})),Object.assign(t.controller,{setTranslate:function(e,s){const a=t.controller.control;let r,n;const l=t.constructor;function o(e){const s=t.rtlTranslate?-t.translate:t.translate;"slide"===t.params.controller.by&&(!function(e){t.controller.spline||(t.controller.spline=t.params.loop?new i(t.slidesGrid,e.slidesGrid):new i(t.snapGrid,e.snapGrid))}(e),n=-t.controller.spline.interpolate(-s)),n&&"container"!==t.params.controller.by||(r=(e.maxTranslate()-e.minTranslate())/(t.maxTranslate()-t.minTranslate()),n=(s-t.minTranslate())*r+e.minTranslate()),t.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,t),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e{s.updateAutoHeight()})),s.$wrapperEl.transitionEnd((()=>{i&&(s.params.loop&&"slide"===t.params.controller.by&&s.loopFix(),s.transitionEnd())})))}if(Array.isArray(i))for(r=0;r{n(e),"BUTTON"!==e[0].tagName&&(o(e,"button"),e.on("keydown",m)),p(e,s),function(e,t){e.attr("aria-controls",t)}(e,t)},w=()=>{t.a11y.clicked=!0},b=()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{t.a11y.clicked=!1}))}))},x=e=>{if(t.a11y.clicked)return;const s=e.target.closest(`.${t.params.slideClass}`);if(!s||!t.slides.includes(s))return;const a=t.slides.indexOf(s)===t.activeIndex,i=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);a||i||(t.isHorizontal()?t.el.scrollLeft=0:t.el.scrollTop=0,t.slideTo(t.slides.indexOf(s),0))},y=()=>{const e=t.params.a11y;e.itemRoleDescriptionMessage&&c(d(t.slides),e.itemRoleDescriptionMessage),e.slideRole&&o(d(t.slides),e.slideRole);const s=t.params.loop?t.slides.filter((e=>!e.classList.contains(t.params.slideDuplicateClass))).length:t.slides.length;e.slideLabelMessage&&t.slides.each(((a,i)=>{const r=d(a),n=t.params.loop?parseInt(r.attr("data-swiper-slide-index"),10):i;p(r,e.slideLabelMessage.replace(/\{\{index\}\}/,n+1).replace(/\{\{slidesLength\}\}/,s))}))},E=()=>{const e=t.params.a11y;t.$el.append(i);const s=t.$el;e.containerRoleDescriptionMessage&&c(s,e.containerRoleDescriptionMessage),e.containerMessage&&p(s,e.containerMessage);const a=t.$wrapperEl,r=e.id||a.attr("id")||`swiper-wrapper-${n=16,void 0===n&&(n=16),"x".repeat(n).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var n;const l=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";var o;let d,u;o=r,a.attr("id",o),function(e,t){e.attr("aria-live",t)}(a,l),y(),t.navigation&&t.navigation.$nextEl&&(d=t.navigation.$nextEl),t.navigation&&t.navigation.$prevEl&&(u=t.navigation.$prevEl),d&&d.length&&v(d,r,e.nextSlideMessage),u&&u.length&&v(u,r,e.prevSlideMessage),g()&&t.pagination.$el.on("keydown",U(t.params.pagination.bulletClass),m),t.$el.on("focus",x,!0),t.$el.on("pointerdown",w,!0),t.$el.on("pointerup",b,!0)};a("beforeInit",(()=>{i=d(` `)})),a("afterInit",(()=>{t.params.a11y.enabled&&E()})),a("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&y()})),a("fromEdge toEdge afterInit lock unlock",(()=>{t.params.a11y.enabled&&function(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{$nextEl:e,$prevEl:s}=t.navigation;s&&s.length>0&&(t.isBeginning?(u(s),l(s)):(h(s),n(s))),e&&e.length>0&&(t.isEnd?(u(e),l(e)):(h(e),n(e)))}()})),a("paginationUpdate",(()=>{t.params.a11y.enabled&&function(){const e=t.params.a11y;f()&&t.pagination.bullets.each((s=>{const a=d(s);t.params.pagination.clickable&&(n(a),t.params.pagination.renderBullet||(o(a,"button"),p(a,e.paginationBulletMessage.replace(/\{\{index\}\}/,a.index()+1)))),a.is(`.${t.params.pagination.bulletActiveClass}`)?a.attr("aria-current","true"):a.removeAttr("aria-current")}))}()})),a("destroy",(()=>{t.params.a11y.enabled&&function(){let e,s;i&&i.length>0&&i.remove(),t.navigation&&t.navigation.$nextEl&&(e=t.navigation.$nextEl),t.navigation&&t.navigation.$prevEl&&(s=t.navigation.$prevEl),e&&e.off("keydown",m),s&&s.off("keydown",m),g()&&t.pagination.$el.off("keydown",U(t.params.pagination.bulletClass),m),t.$el.off("focus",x,!0),t.$el.off("pointerdown",w,!0),t.$el.off("pointerup",b,!0)}()}))},function(e){let{swiper:t,extendParams:s,on:a}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},d=(e,s)=>{const a=r();if(!i||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):a.location;const o=t.slides.eq(s);let d=l(o.attr("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e}/${d}`}else n.pathname.includes(e)||(d=`${e}/${d}`);t.params.history.keepQuery&&(d+=n.search);const c=a.history.state;c&&c.value===d||(t.params.history.replaceState?a.history.replaceState({value:d},null,d):a.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i{n=o(t.params.url),c(t.params.speed,n.value,!1)};a("init",(()=>{t.params.history.enabled&&(()=>{const e=r();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);i=!0,n=o(t.params.url),(n.key||n.value)&&(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p))}})()})),a("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),a("transitionEnd _freeModeNoMomentumRelease",(()=>{i&&d(t.params.history.key,t.activeIndex)})),a("slideChange",(()=>{i&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:i,on:n}=e,l=!1;const o=a(),c=r();s({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}});const p=()=>{i("hashChange");const e=o.location.hash.replace("#","");if(e!==t.slides.eq(t.activeIndex).attr("data-hash")){const s=t.$wrapperEl.children(`.${t.params.slideClass}[data-hash="${e}"]`).index();if(void 0===s)return;t.slideTo(s)}},u=()=>{if(l&&t.params.hashNavigation.enabled)if(t.params.hashNavigation.replaceState&&c.history&&c.history.replaceState)c.history.replaceState(null,null,`#${t.slides.eq(t.activeIndex).attr("data-hash")}`||""),i("hashSet");else{const e=t.slides.eq(t.activeIndex),s=e.attr("data-hash")||e.attr("data-history");o.location.hash=s||"",i("hashSet")}};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0;for(let a=0,i=t.slides.length;a{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d(c).off("hashchange",p)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&u()})),n("slideChange",(()=>{l&&t.params.cssMode&&u()}))},function(e){let t,{swiper:s,extendParams:i,on:r,emit:n}=e;function l(){if(!s.size)return s.autoplay.running=!1,void(s.autoplay.paused=!1);const e=s.slides.eq(s.activeIndex);let a=s.params.autoplay.delay;e.attr("data-swiper-autoplay")&&(a=e.attr("data-swiper-autoplay")||s.params.autoplay.delay),clearTimeout(t),t=p((()=>{let e;s.params.autoplay.reverseDirection?s.params.loop?(s.loopFix(),e=s.slidePrev(s.params.speed,!0,!0),n("autoplay")):s.isBeginning?s.params.autoplay.stopOnLastSlide?d():(e=s.slideTo(s.slides.length-1,s.params.speed,!0,!0),n("autoplay")):(e=s.slidePrev(s.params.speed,!0,!0),n("autoplay")):s.params.loop?(s.loopFix(),e=s.slideNext(s.params.speed,!0,!0),n("autoplay")):s.isEnd?s.params.autoplay.stopOnLastSlide?d():(e=s.slideTo(0,s.params.speed,!0,!0),n("autoplay")):(e=s.slideNext(s.params.speed,!0,!0),n("autoplay")),(s.params.cssMode&&s.autoplay.running||!1===e)&&l()}),a)}function o(){return void 0===t&&(!s.autoplay.running&&(s.autoplay.running=!0,n("autoplayStart"),l(),!0))}function d(){return!!s.autoplay.running&&(void 0!==t&&(t&&(clearTimeout(t),t=void 0),s.autoplay.running=!1,n("autoplayStop"),!0))}function c(e){s.autoplay.running&&(s.autoplay.paused||(t&&clearTimeout(t),s.autoplay.paused=!0,0!==e&&s.params.autoplay.waitForTransition?["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].addEventListener(e,h)})):(s.autoplay.paused=!1,l())))}function u(){const e=a();"hidden"===e.visibilityState&&s.autoplay.running&&c(),"visible"===e.visibilityState&&s.autoplay.paused&&(l(),s.autoplay.paused=!1)}function h(e){s&&!s.destroyed&&s.$wrapperEl&&e.target===s.$wrapperEl[0]&&(["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].removeEventListener(e,h)})),s.autoplay.paused=!1,s.autoplay.running?l():d())}function m(){s.params.autoplay.disableOnInteraction?d():(n("autoplayPause"),c()),["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].removeEventListener(e,h)}))}function f(){s.params.autoplay.disableOnInteraction||(s.autoplay.paused=!1,n("autoplayResume"),l())}s.autoplay={running:!1,paused:!1},i({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}}),r("init",(()=>{if(s.params.autoplay.enabled){o();a().addEventListener("visibilitychange",u),s.params.autoplay.pauseOnMouseEnter&&(s.$el.on("mouseenter",m),s.$el.on("mouseleave",f))}})),r("beforeTransitionStart",((e,t,a)=>{s.autoplay.running&&(a||!s.params.autoplay.disableOnInteraction?s.autoplay.pause(t):d())})),r("sliderFirstMove",(()=>{s.autoplay.running&&(s.params.autoplay.disableOnInteraction?d():c())})),r("touchEnd",(()=>{s.params.cssMode&&s.autoplay.paused&&!s.params.autoplay.disableOnInteraction&&l()})),r("destroy",(()=>{s.$el.off("mouseenter",m),s.$el.off("mouseleave",f),s.autoplay.running&&d();a().removeEventListener("visibilitychange",u)})),Object.assign(s.autoplay,{pause:c,run:l,start:o,stop:d})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let i=!1,r=!1;function n(){const e=t.thumbs.swiper;if(!e||e.destroyed)return;const s=e.clickedIndex,a=e.clickedSlide;if(a&&d(a).hasClass(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;if(i=e.params.loop?parseInt(d(e.clickedSlide).attr("data-swiper-slide-index"),10):s,t.params.loop){let e=t.activeIndex;t.slides.eq(e).hasClass(t.params.slideDuplicateClass)&&(t.loopFix(),t._clientLeft=t.$wrapperEl[0].clientLeft,e=t.activeIndex);const s=t.slides.eq(e).prevAll(`[data-swiper-slide-index="${i}"]`).eq(0).index(),a=t.slides.eq(e).nextAll(`[data-swiper-slide-index="${i}"]`).eq(0).index();i=void 0===s?a:void 0===a?s:a-e1&&!t.params.centeredSlides&&(i=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(i=1),i=Math.floor(i),s.slides.removeClass(r),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let e=0;e1?a:o:a-ot.previousIndex?"next":"prev"}else i=t.realIndex,r=i>t.previousIndex?"next":"prev";l&&(i+="next"===r?n:-1*n),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(i)<0&&(s.params.centeredSlides?i=i>o?i-Math.floor(a/2)+1:i+Math.floor(a/2)-1:i>o&&s.params.slidesPerGroup,s.slideTo(i,e?0:void 0))}}t.thumbs={swiper:null},a("beforeInit",(()=>{const{thumbs:e}=t.params;e&&e.swiper&&(l(),o(!0))})),a("slideChange update resize observerUpdate",(()=>{o()})),a("setTransition",((e,s)=>{const a=t.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)})),a("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&r&&e.destroy()})),Object.assign(t.thumbs,{init:l,update:o})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:u()})},onTouchEnd:function(e){let{currentPos:s}=e;const{params:r,$wrapperEl:n,rtlTranslate:l,snapGrid:o,touchEventsData:d}=t,c=u()-d.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length1){const e=d.velocities.pop(),s=d.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)150||u()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,d.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let c=t.translate+s;l&&(c=-c);let p,h=!1;const m=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(ct.minTranslate())r.freeMode.momentumBounce?(c-t.minTranslate()>m&&(c=t.minTranslate()+m),p=t.minTranslate(),h=!0,d.allowMomentumBounce=!0):c=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t-c){e=t;break}c=Math.abs(o[e]-c){t.loopFix()})),0!==t.velocity){if(e=l?Math.abs((-c-t.translate)/t.velocity):Math.abs((c-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((l?-c:c)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s{t&&!t.destroyed&&d.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(p),n.transitionEnd((()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(c),t.setTransition(e),t.setTranslate(c),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,n.transitionEnd((()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(c),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||c>=r.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,{swiper:i,extendParams:r}=e;r({grid:{rows:1,fill:"column"}}),i.grid={initSlides:e=>{const{slidesPerView:r}=i.params,{rows:n,fill:l}=i.params.grid;s=t/n,a=Math.floor(e/n),t=Math.floor(e/n)===e/n?e:Math.ceil(e/n)*n,"auto"!==r&&"row"===l&&(t=Math.max(t,r*n))},updateSlide:(e,r,n,l)=>{const{slidesPerGroup:o,spaceBetween:d}=i.params,{rows:c,fill:p}=i.params.grid;let u,h,m;if("row"===p&&o>1){const s=Math.floor(e/(o*c)),a=e-c*o*s,i=0===s?o:Math.min(Math.ceil((n-s*c*o)/c),o);m=Math.floor(a/i),h=a-m*i+s*o,u=h+m*t/c,r.css({"-webkit-order":u,order:u})}else"column"===p?(h=Math.floor(e/c),m=e-h*c,(h>a||h===a&&m===c-1)&&(m+=1,m>=c&&(m=0,h+=1))):(m=Math.floor(e/s),h=e-m*s);r.css(l("margin-top"),0!==m?d&&`${d}px`:"")},updateWrapperSize:(e,s,a)=>{const{spaceBetween:r,centeredSlides:n,roundLengths:l}=i.params,{rows:o}=i.params.grid;if(i.virtualSize=(e+r)*t,i.virtualSize=Math.ceil(i.virtualSize/o)-r,i.$wrapperEl.css({[a("width")]:`${i.virtualSize+r}px`}),n){s.splice(0,s.length);const e=[];for(let t=0;t{const{slides:e}=t,s=t.params.fadeEffect;for(let a=0;a{const{transformEl:s}=t.params.fadeEffect;(s?t.slides.find(s):t.slides).transition(e),ae({swiper:t,duration:e,transformEl:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.find(".swiper-slide-shadow-left"):e.find(".swiper-slide-shadow-top"),i=s?e.find(".swiper-slide-shadow-right"):e.find(".swiper-slide-shadow-bottom");0===a.length&&(a=d(`
`),e.append(a)),0===i.length&&(i=d(`
`),e.append(i)),a.length&&(a[0].style.opacity=Math.max(-t,0)),i.length&&(i[0].style.opacity=Math.max(t,0))};te({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{$el:e,$wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:c}=t,p=t.params.cubeEffect,u=t.isHorizontal(),h=t.virtual&&t.params.virtual.enabled;let m,f=0;p.shadow&&(u?(m=s.find(".swiper-cube-shadow"),0===m.length&&(m=d('
'),s.append(m)),m.css({height:`${r}px`})):(m=e.find(".swiper-cube-shadow"),0===m.length&&(m=d('
'),e.append(m))));for(let e=0;e-1&&(f=90*s+90*d,l&&(f=90*-s-90*d)),t.transform(v),p.slideShadows&&i(t,d,u)}if(s.css({"-webkit-transform-origin":`50% 50% -${o/2}px`,"transform-origin":`50% 50% -${o/2}px`}),p.shadow)if(u)m.transform(`translate3d(0px, ${r/2+p.shadowOffset}px, ${-r/2}px) rotateX(90deg) rotateZ(0deg) scale(${p.shadowScale})`);else{const e=Math.abs(f)-90*Math.floor(Math.abs(f)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=p.shadowScale,a=p.shadowScale/t,i=p.shadowOffset;m.transform(`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-90deg)`)}const g=c.isSafari||c.isWebView?-o/2:0;s.transform(`translate3d(0px,0,${g}px) rotateX(${t.isHorizontal()?0:f}deg) rotateY(${t.isHorizontal()?-f:0}deg)`),s[0].style.setProperty("--swiper-cube-translate-z",`${g}px`)},setTransition:e=>{const{$el:s,slides:a}=t;a.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.cubeEffect.shadow&&!t.isHorizontal()&&s.find(".swiper-cube-shadow").transition(e)},recreateShadows:()=>{const e=t.isHorizontal();t.slides.each((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(d(t),s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0,transformEl:null}});const i=(e,s,a)=>{let i=t.isHorizontal()?e.find(".swiper-slide-shadow-left"):e.find(".swiper-slide-shadow-top"),r=t.isHorizontal()?e.find(".swiper-slide-shadow-right"):e.find(".swiper-slide-shadow-bottom");0===i.length&&(i=ie(a,e,t.isHorizontal()?"left":"top")),0===r.length&&(r=ie(a,e,t.isHorizontal()?"right":"bottom")),i.length&&(i[0].style.opacity=Math.max(-s,0)),r.length&&(r[0].style.opacity=Math.max(s,0))};te({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect;for(let r=0;r{const{transformEl:s}=t.params.flipEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),ae({swiper:t,duration:e,transformEl:s})},recreateShadows:()=>{const e=t.params.flipEffect;t.slides.each((s=>{const a=d(s);let r=a[0].progress;t.params.flipEffect.limitRotation&&(r=Math.max(Math.min(s.progress,1),-1)),i(a,r,e)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0,transformEl:null}}),te({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,t=a.length;e0?p:0),s.length&&(s[0].style.opacity=-p>0?-p:0)}}},setTransition:e=>{const{transformEl:s}=t.params.coverflowEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{transformEl:null,limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;te({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,$wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.transform(`translateX(calc(50% - ${e}px))`)}for(let s=0;s0&&(f=r.prev,m=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d*n)}))`})),h.forEach(((e,t)=>{h[t]=f.rotate[t]*Math.abs(d*n)})),a[0].style.zIndex=-Math.abs(Math.round(o))+e.length;const g=u.join(", "),v=`rotateX(${h[0]}deg) rotateY(${h[1]}deg) rotateZ(${h[2]}deg)`,w=c<0?`scale(${1+(1-f.scale)*c*n})`:`scale(${1-(1-f.scale)*c*n})`,b=c<0?1+(1-f.opacity)*c*n:1-(1-f.opacity)*c*n,x=`translate3d(${g}) ${v} ${w}`;if(m&&f.shadow||!m){let e=a.children(".swiper-slide-shadow");if(0===e.length&&f.shadow&&(e=ie(r,a)),e.length){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e[0].style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const y=se(r,a);y.transform(x).css({opacity:b}),f.origin&&y.css("transform-origin",f.origin)}},setTransition:e=>{const{transformEl:s}=t.params.creativeEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow").transition(e),ae({swiper:t,duration:e,transformEl:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,transformEl:null,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),te({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s}=t,a=t.params.cardsEffect,{startTranslate:i,isTouched:r}=t.touchEventsData,n=t.translate;for(let l=0;l0&&c<1&&(r||t.params.cssMode)&&n-1&&(r||t.params.cssMode)&&n>i;if(b||x){const e=(1-Math.abs((Math.abs(c)-.5)/.5))**.5;g+=-28*c*e,f+=-.5*e,v+=96*e,h=-25*e*Math.abs(c)+"%"}if(u=c<0?`calc(${u}px + (${v*Math.abs(c)}%))`:c>0?`calc(${u}px + (-${v*Math.abs(c)}%))`:`${u}px`,!t.isHorizontal()){const e=h;h=u,u=e}const y=c<0?""+(1+(1-f)*c):""+(1-(1-f)*c),E=`\n translate3d(${u}, ${h}, ${m}px)\n rotateZ(${a.rotate?g:0}deg)\n scale(${y})\n `;if(a.slideShadows){let e=o.find(".swiper-slide-shadow");0===e.length&&(e=ie(a,o)),e.length&&(e[0].style.opacity=Math.min(Math.max((Math.abs(c)-.5)/.5,0),1))}o[0].style.zIndex=-Math.abs(Math.round(d))+e.length;se(a,o).transform(E)}},setTransition:e=>{const{transformEl:s}=t.params.cardsEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow").transition(e),ae({swiper:t,duration:e,transformEl:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];return V.use(re),V}));
+//# sourceMappingURL=swiper-bundle.min.js.map
\ No newline at end of file
diff --git a/website/src/video/connect.mp4 b/website/src/video/connect.mp4
new file mode 100644
index 0000000000..03f0ee756e
Binary files /dev/null and b/website/src/video/connect.mp4 differ
diff --git a/website/tailwind.config.js b/website/tailwind.config.js
index e9f30401c7..515e701796 100644
--- a/website/tailwind.config.js
+++ b/website/tailwind.config.js
@@ -1,7 +1,36 @@
module.exports = {
+ darkMode : 'class',
content: ["./src/**/*.{html,js,njk}"],
theme: {
- extend: {},
+ extend: {
+ backgroundImage: {
+ 'gradient-radial': 'radial-gradient(88.77% 102.03% at 92.64% -13.22%, #17203D 0%, #0C0B13 100%)',
+ 'gradient-radial-mobile': 'radial-gradient(77.4% 73.09% at -3.68% 100%, #17203D 0%, #0C0B13 100%)',
+ },
+ colors: {
+ 'primary-light': '#0053D0',
+ 'primary-hover-light': '#1661D1',
+ 'primary-pressed-light': '#407AD2',
+ 'primary-dark': '#70F0F9',
+ 'primary-hover-dark': '#66D9E2',
+ 'primary-pressed-dark': '#52ABB4',
+
+ 'active-blue': '#0197FF',
+ 'black': '#0D0E12',
+ 'grey-black': '#3F484B',
+ 'secondary-bg-light': '#F3F6F7',
+ 'primary-bg-light': '#FFFFFF',
+ 'secondary-bg-dark': '#11182F',
+ 'primary-bg-dark': '#0C0B13',
+
+
+ // What makes SimpleX private
+ 'card-bg-light': '#ffffff',
+ 'card-desc-bg-light': '#D9E7ED',
+ 'card-bg-dark': '#17203D',
+ 'card-desc-bg-dark': '#1B325C',
+ }
+ },
},
plugins: [],
}
diff --git a/website/tailwind.css b/website/tailwind.css
index dc83d5cf59..b5c61c9567 100644
--- a/website/tailwind.css
+++ b/website/tailwind.css
@@ -1,3 +1,3 @@
-/* @tailwind base; */
+@tailwind base;
@tailwind components;
@tailwind utilities;