gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taler-ops-www] branch master updated (6fb599d -> 1486a47)


From: gnunet
Subject: [taler-taler-ops-www] branch master updated (6fb599d -> 1486a47)
Date: Sun, 25 Feb 2024 02:16:51 +0100

This is an automated email from the git hooks/post-receive script.

nora pushed a change to branch master
in repository taler-ops-www.

    from 6fb599d  Resolve a bunch of html syntax errors, translate the notice 
to english, format
     new 14948f1  fix: biel should be translated
     new 950a6bc  tailwind
     new 1486a47  move unsorted images to standalone dir

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .postcssrc                                         |   5 +
 common/base.j2                                     |  12 +-
 common/footer.j2.inc                               |   6 +-
 common/{footer.j2.inc => footer.old.j2.inc}        |   2 +-
 common/header.j2.inc                               |   4 +-
 common/navigation.j2.inc                           |   8 +-
 locale/de/LC_MESSAGES/messages.po                  | 116 ++---
 locale/en/LC_MESSAGES/messages.po                  | 114 ++---
 locale/fr/LC_MESSAGES/messages.po                  | 116 ++---
 locale/messages.pot                                | 114 ++---
 package.json                                       |   4 +-
 pnpm-lock.yaml                                     | 505 ++++++++++++++++++++-
 static/images/logo/taler-full.svg                  |  88 ++++
 static/images/{ => unsorted}/SNB.png               | Bin
 .../images/{ => unsorted}/Screenshot_Balance_1.png | Bin
 .../Screenshot_Browser_Withdrawal_Pending.png      | Bin
 .../Screenshot_Confirm_Payment_1.png               | Bin
 .../Screenshot_Confirm_Withdrawal_1.png            | Bin
 .../Screenshot_Terms_of_Service_1.png              | Bin
 .../Screenshot_Withdrawal_Confirmation_1.png       | Bin
 .../Screenshot_Withdrawal_Preparation_1.png        | Bin
 .../images/{ => unsorted}/Screenshot_history.png   | Bin
 static/images/{ => unsorted}/a1.png                | Bin
 static/images/{ => unsorted}/a2.png                | Bin
 static/images/{ => unsorted}/a3.png                | Bin
 static/images/{ => unsorted}/a4.png                | Bin
 static/images/{ => unsorted}/ara.png               | Bin
 static/images/{ => unsorted}/araup.png             | Bin
 static/images/{ => unsorted}/b1n.png               | Bin
 static/images/{ => unsorted}/baluebg.jpg           | Bin
 static/images/{ => unsorted}/banicon-br.png        | Bin
 static/images/{ => unsorted}/banicon-chr.png       | Bin
 static/images/{ => unsorted}/banicon-droid.png     | Bin
 static/images/{ => unsorted}/banicon-edg.png       | Bin
 static/images/{ => unsorted}/banicon-ff.png        | Bin
 static/images/{ => unsorted}/banicon-ios.png       | Bin
 static/images/{ => unsorted}/banicon-mac.png       | Bin
 static/images/{ => unsorted}/banicon-tux.png       | Bin
 static/images/{ => unsorted}/banicon-win.png       | Bin
 static/images/{ => unsorted}/bg1.png               | Bin
 static/images/{ => unsorted}/bg2.png               | Bin
 static/images/{ => unsorted}/bl.png                | Bin
 static/images/{ => unsorted}/bullet.png            | Bin
 static/images/{ => unsorted}/chrt.png              | Bin
 static/images/{ => unsorted}/coin.png              | Bin
 static/images/{ => unsorted}/contacticon1.png      | Bin
 static/images/{ => unsorted}/contacticon2.png      | Bin
 static/images/{ => unsorted}/contacticon3.png      | Bin
 static/images/{ => unsorted}/favicon.ico           |   0
 static/images/{ => unsorted}/favicon.png           |   0
 static/images/{ => unsorted}/footlogo.png          | Bin
 static/images/{ => unsorted}/footsos1.png          | Bin
 static/images/{ => unsorted}/footsos2.png          | Bin
 static/images/{ => unsorted}/footsos3.png          | Bin
 static/images/{ => unsorted}/footsos4.png          | Bin
 static/images/{ => unsorted}/icn1.png              | Bin
 static/images/{ => unsorted}/icn2.png              | Bin
 static/images/{ => unsorted}/icon1.png             | Bin
 static/images/{ => unsorted}/icon10.png            | Bin
 static/images/{ => unsorted}/icon11.png            | Bin
 static/images/{ => unsorted}/icon12.png            | Bin
 static/images/{ => unsorted}/icon13.png            | Bin
 static/images/{ => unsorted}/icon14.png            | Bin
 static/images/{ => unsorted}/icon15.png            | Bin
 static/images/{ => unsorted}/icon16.png            | Bin
 static/images/{ => unsorted}/icon17.png            | Bin
 static/images/{ => unsorted}/icon18.png            | Bin
 static/images/{ => unsorted}/icon19.png            | Bin
 static/images/{ => unsorted}/icon2.png             | Bin
 static/images/{ => unsorted}/icon20.png            | Bin
 static/images/{ => unsorted}/icon21.png            | Bin
 static/images/{ => unsorted}/icon3.png             | Bin
 static/images/{ => unsorted}/icon4.png             | Bin
 static/images/{ => unsorted}/icon5.png             | Bin
 static/images/{ => unsorted}/icon6.png             | Bin
 static/images/{ => unsorted}/icon7.png             | Bin
 static/images/{ => unsorted}/icon8.png             | Bin
 static/images/{ => unsorted}/icon9.png             | Bin
 static/images/{ => unsorted}/icona1.png            | Bin
 static/images/{ => unsorted}/icona1h.png           | Bin
 static/images/{ => unsorted}/icona2.png            | Bin
 static/images/{ => unsorted}/icona2h.png           | Bin
 static/images/{ => unsorted}/icons1.png            | Bin
 static/images/{ => unsorted}/icons2.png            | Bin
 static/images/{ => unsorted}/icons3.png            | Bin
 static/images/{ => unsorted}/icons4.png            | Bin
 static/images/{ => unsorted}/icons5.png            | Bin
 static/images/{ => unsorted}/icons6.png            | Bin
 static/images/{ => unsorted}/icons7.png            | Bin
 static/images/{ => unsorted}/icons8.png            | Bin
 static/images/{ => unsorted}/icons9.png            | Bin
 static/images/{ => unsorted}/insignicon1.png       | Bin
 static/images/{ => unsorted}/insignicon2.png       | Bin
 static/images/{ => unsorted}/insignicon3.png       | Bin
 static/images/{ => unsorted}/insignicon4.png       | Bin
 static/images/{ => unsorted}/insignicon5.png       | Bin
 static/images/{ => unsorted}/insignicon6.png       | Bin
 static/images/{ => unsorted}/languageicon.svg      |   0
 static/images/{ => unsorted}/lap1.png              | Bin
 static/images/{ => unsorted}/logo.png              | Bin
 static/images/{ => unsorted}/mob.jpg               | Bin
 static/images/{ => unsorted}/mob1.png              | Bin
 static/images/{ => unsorted}/mobile.png            | Bin
 static/images/{ => unsorted}/mobile4.png           | Bin
 static/images/{ => unsorted}/mobils1.png           | Bin
 static/images/{ => unsorted}/mobpic1.png           | Bin
 static/images/{ => unsorted}/mobpic2.png           | Bin
 static/images/{ => unsorted}/mobpic3.png           | Bin
 static/images/{ => unsorted}/mobs3.png             | Bin
 static/images/{ => unsorted}/mobs4.png             | Bin
 static/images/{ => unsorted}/mobs5.png             | Bin
 static/images/{ => unsorted}/mov.png               | Bin
 static/images/{ => unsorted}/newpic1.png           | Bin
 static/images/{ => unsorted}/newpic2.png           | Bin
 static/images/{ => unsorted}/nicon1.png            | Bin
 static/images/{ => unsorted}/nicon2.png            | Bin
 static/images/{ => unsorted}/nicon3.png            | Bin
 static/images/{ => unsorted}/nicon4.png            | Bin
 static/images/{ => unsorted}/nicon5.png            | Bin
 static/images/{ => unsorted}/nicon6.png            | Bin
 static/images/{ => unsorted}/nicon7.png            | Bin
 static/images/{ => unsorted}/nicon8.png            | Bin
 static/images/{ => unsorted}/pdf.png               | Bin
 static/images/{ => unsorted}/pic1.jpg              | Bin
 static/images/{ => unsorted}/pic2.jpg              | Bin
 static/images/{ => unsorted}/pic3.jpg              | Bin
 static/images/{ => unsorted}/pica1.jpg             | Bin
 static/images/{ => unsorted}/pica2.jpg             | Bin
 static/images/{ => unsorted}/pls.png               | Bin
 static/images/{ => unsorted}/pos-app.jpg           | Bin
 static/images/{ => unsorted}/pretix.png            | Bin
 .../images/{ => unsorted}/screenshot_history_1.png | Bin
 .../screenshot_withdrawal_preparation_1.png        | Bin
 static/images/{ => unsorted}/sign.png              | Bin
 static/images/{ => unsorted}/smlicon1.png          | Bin
 static/images/{ => unsorted}/smlicon2.png          | Bin
 static/images/{ => unsorted}/smlicon3.png          | Bin
 static/images/{ => unsorted}/smlicon4.png          | Bin
 static/images/{ => unsorted}/smlicon5.png          | Bin
 static/images/{ => unsorted}/smlicon6.png          | Bin
 static/images/{ => unsorted}/speclogo1.png         | Bin
 static/images/{ => unsorted}/speclogo2.png         | Bin
 static/images/{ => unsorted}/sw.png                | Bin
 static/images/{ => unsorted}/swiss_coin_5.png      | Bin
 static/images/{ => unsorted}/tick.png              | Bin
 static/images/{ => unsorted}/tick2.png             | Bin
 static/images/{ => unsorted}/topbg.png             | Bin
 static/images/{ => unsorted}/topbg2.png            | Bin
 static/images/{ => unsorted}/topbg3.png            | Bin
 static/images/{ => unsorted}/topicon1.png          | Bin
 static/images/{ => unsorted}/topicon2.png          | Bin
 static/images/{ => unsorted}/topicon3.png          | Bin
 static/images/{ => unsorted}/topicon4.png          | Bin
 static/images/{ => unsorted}/topicon5.png          | Bin
 static/images/{ => unsorted}/topicon6.png          | Bin
 static/images/{ => unsorted}/tops-qr.png           | Bin
 static/images/{ => unsorted}/usrpic1.jpg           | Bin
 static/images/{ => unsorted}/usrpic2.jpg           | Bin
 static/images/{ => unsorted}/usrpic3.jpg           | Bin
 static/images/{ => unsorted}/usrpic4.jpg           | Bin
 static/images/{ => unsorted}/valuepic1.jpg         | Bin
 static/images/{ => unsorted}/valuepic2.jpg         | Bin
 static/images/{ => unsorted}/valuepic3.jpg         | Bin
 static/images/{ => unsorted}/valuepic4.jpg         | Bin
 static/images/{ => unsorted}/vs.png                | Bin
 .../images/{ => unsorted}/woocommerce-settings.png | Bin
 static/postcss/tailwind.postcss                    |   3 +
 tailwind.config.js                                 |  11 +
 template/index.html.j2                             |   8 +-
 template/merchants.html.j2                         |  14 +-
 template/terms.html.j2                             |   6 +-
 template/users.html.j2                             |  60 +--
 172 files changed, 921 insertions(+), 275 deletions(-)
 create mode 100644 .postcssrc
 copy common/{footer.j2.inc => footer.old.j2.inc} (97%)
 create mode 100644 static/images/logo/taler-full.svg
 rename static/images/{ => unsorted}/SNB.png (100%)
 rename static/images/{ => unsorted}/Screenshot_Balance_1.png (100%)
 rename static/images/{ => unsorted}/Screenshot_Browser_Withdrawal_Pending.png 
(100%)
 rename static/images/{ => unsorted}/Screenshot_Confirm_Payment_1.png (100%)
 rename static/images/{ => unsorted}/Screenshot_Confirm_Withdrawal_1.png (100%)
 rename static/images/{ => unsorted}/Screenshot_Terms_of_Service_1.png (100%)
 rename static/images/{ => unsorted}/Screenshot_Withdrawal_Confirmation_1.png 
(100%)
 rename static/images/{ => unsorted}/Screenshot_Withdrawal_Preparation_1.png 
(100%)
 rename static/images/{ => unsorted}/Screenshot_history.png (100%)
 rename static/images/{ => unsorted}/a1.png (100%)
 rename static/images/{ => unsorted}/a2.png (100%)
 rename static/images/{ => unsorted}/a3.png (100%)
 rename static/images/{ => unsorted}/a4.png (100%)
 rename static/images/{ => unsorted}/ara.png (100%)
 rename static/images/{ => unsorted}/araup.png (100%)
 rename static/images/{ => unsorted}/b1n.png (100%)
 rename static/images/{ => unsorted}/baluebg.jpg (100%)
 rename static/images/{ => unsorted}/banicon-br.png (100%)
 rename static/images/{ => unsorted}/banicon-chr.png (100%)
 rename static/images/{ => unsorted}/banicon-droid.png (100%)
 rename static/images/{ => unsorted}/banicon-edg.png (100%)
 rename static/images/{ => unsorted}/banicon-ff.png (100%)
 rename static/images/{ => unsorted}/banicon-ios.png (100%)
 rename static/images/{ => unsorted}/banicon-mac.png (100%)
 rename static/images/{ => unsorted}/banicon-tux.png (100%)
 rename static/images/{ => unsorted}/banicon-win.png (100%)
 rename static/images/{ => unsorted}/bg1.png (100%)
 rename static/images/{ => unsorted}/bg2.png (100%)
 rename static/images/{ => unsorted}/bl.png (100%)
 rename static/images/{ => unsorted}/bullet.png (100%)
 rename static/images/{ => unsorted}/chrt.png (100%)
 rename static/images/{ => unsorted}/coin.png (100%)
 rename static/images/{ => unsorted}/contacticon1.png (100%)
 rename static/images/{ => unsorted}/contacticon2.png (100%)
 rename static/images/{ => unsorted}/contacticon3.png (100%)
 copy static/images/{ => unsorted}/favicon.ico (100%)
 copy static/images/{ => unsorted}/favicon.png (100%)
 rename static/images/{ => unsorted}/footlogo.png (100%)
 rename static/images/{ => unsorted}/footsos1.png (100%)
 rename static/images/{ => unsorted}/footsos2.png (100%)
 rename static/images/{ => unsorted}/footsos3.png (100%)
 rename static/images/{ => unsorted}/footsos4.png (100%)
 rename static/images/{ => unsorted}/icn1.png (100%)
 rename static/images/{ => unsorted}/icn2.png (100%)
 rename static/images/{ => unsorted}/icon1.png (100%)
 rename static/images/{ => unsorted}/icon10.png (100%)
 rename static/images/{ => unsorted}/icon11.png (100%)
 rename static/images/{ => unsorted}/icon12.png (100%)
 rename static/images/{ => unsorted}/icon13.png (100%)
 rename static/images/{ => unsorted}/icon14.png (100%)
 rename static/images/{ => unsorted}/icon15.png (100%)
 rename static/images/{ => unsorted}/icon16.png (100%)
 rename static/images/{ => unsorted}/icon17.png (100%)
 rename static/images/{ => unsorted}/icon18.png (100%)
 rename static/images/{ => unsorted}/icon19.png (100%)
 rename static/images/{ => unsorted}/icon2.png (100%)
 rename static/images/{ => unsorted}/icon20.png (100%)
 rename static/images/{ => unsorted}/icon21.png (100%)
 rename static/images/{ => unsorted}/icon3.png (100%)
 rename static/images/{ => unsorted}/icon4.png (100%)
 rename static/images/{ => unsorted}/icon5.png (100%)
 rename static/images/{ => unsorted}/icon6.png (100%)
 rename static/images/{ => unsorted}/icon7.png (100%)
 rename static/images/{ => unsorted}/icon8.png (100%)
 rename static/images/{ => unsorted}/icon9.png (100%)
 rename static/images/{ => unsorted}/icona1.png (100%)
 rename static/images/{ => unsorted}/icona1h.png (100%)
 rename static/images/{ => unsorted}/icona2.png (100%)
 rename static/images/{ => unsorted}/icona2h.png (100%)
 rename static/images/{ => unsorted}/icons1.png (100%)
 rename static/images/{ => unsorted}/icons2.png (100%)
 rename static/images/{ => unsorted}/icons3.png (100%)
 rename static/images/{ => unsorted}/icons4.png (100%)
 rename static/images/{ => unsorted}/icons5.png (100%)
 rename static/images/{ => unsorted}/icons6.png (100%)
 rename static/images/{ => unsorted}/icons7.png (100%)
 rename static/images/{ => unsorted}/icons8.png (100%)
 rename static/images/{ => unsorted}/icons9.png (100%)
 rename static/images/{ => unsorted}/insignicon1.png (100%)
 rename static/images/{ => unsorted}/insignicon2.png (100%)
 rename static/images/{ => unsorted}/insignicon3.png (100%)
 rename static/images/{ => unsorted}/insignicon4.png (100%)
 rename static/images/{ => unsorted}/insignicon5.png (100%)
 rename static/images/{ => unsorted}/insignicon6.png (100%)
 rename static/images/{ => unsorted}/languageicon.svg (100%)
 rename static/images/{ => unsorted}/lap1.png (100%)
 rename static/images/{ => unsorted}/logo.png (100%)
 rename static/images/{ => unsorted}/mob.jpg (100%)
 rename static/images/{ => unsorted}/mob1.png (100%)
 rename static/images/{ => unsorted}/mobile.png (100%)
 rename static/images/{ => unsorted}/mobile4.png (100%)
 rename static/images/{ => unsorted}/mobils1.png (100%)
 rename static/images/{ => unsorted}/mobpic1.png (100%)
 rename static/images/{ => unsorted}/mobpic2.png (100%)
 rename static/images/{ => unsorted}/mobpic3.png (100%)
 rename static/images/{ => unsorted}/mobs3.png (100%)
 rename static/images/{ => unsorted}/mobs4.png (100%)
 rename static/images/{ => unsorted}/mobs5.png (100%)
 rename static/images/{ => unsorted}/mov.png (100%)
 rename static/images/{ => unsorted}/newpic1.png (100%)
 rename static/images/{ => unsorted}/newpic2.png (100%)
 rename static/images/{ => unsorted}/nicon1.png (100%)
 rename static/images/{ => unsorted}/nicon2.png (100%)
 rename static/images/{ => unsorted}/nicon3.png (100%)
 rename static/images/{ => unsorted}/nicon4.png (100%)
 rename static/images/{ => unsorted}/nicon5.png (100%)
 rename static/images/{ => unsorted}/nicon6.png (100%)
 rename static/images/{ => unsorted}/nicon7.png (100%)
 rename static/images/{ => unsorted}/nicon8.png (100%)
 rename static/images/{ => unsorted}/pdf.png (100%)
 rename static/images/{ => unsorted}/pic1.jpg (100%)
 rename static/images/{ => unsorted}/pic2.jpg (100%)
 rename static/images/{ => unsorted}/pic3.jpg (100%)
 rename static/images/{ => unsorted}/pica1.jpg (100%)
 rename static/images/{ => unsorted}/pica2.jpg (100%)
 rename static/images/{ => unsorted}/pls.png (100%)
 rename static/images/{ => unsorted}/pos-app.jpg (100%)
 rename static/images/{ => unsorted}/pretix.png (100%)
 rename static/images/{ => unsorted}/screenshot_history_1.png (100%)
 rename static/images/{ => unsorted}/screenshot_withdrawal_preparation_1.png 
(100%)
 rename static/images/{ => unsorted}/sign.png (100%)
 rename static/images/{ => unsorted}/smlicon1.png (100%)
 rename static/images/{ => unsorted}/smlicon2.png (100%)
 rename static/images/{ => unsorted}/smlicon3.png (100%)
 rename static/images/{ => unsorted}/smlicon4.png (100%)
 rename static/images/{ => unsorted}/smlicon5.png (100%)
 rename static/images/{ => unsorted}/smlicon6.png (100%)
 rename static/images/{ => unsorted}/speclogo1.png (100%)
 rename static/images/{ => unsorted}/speclogo2.png (100%)
 rename static/images/{ => unsorted}/sw.png (100%)
 rename static/images/{ => unsorted}/swiss_coin_5.png (100%)
 rename static/images/{ => unsorted}/tick.png (100%)
 rename static/images/{ => unsorted}/tick2.png (100%)
 rename static/images/{ => unsorted}/topbg.png (100%)
 rename static/images/{ => unsorted}/topbg2.png (100%)
 rename static/images/{ => unsorted}/topbg3.png (100%)
 rename static/images/{ => unsorted}/topicon1.png (100%)
 rename static/images/{ => unsorted}/topicon2.png (100%)
 rename static/images/{ => unsorted}/topicon3.png (100%)
 rename static/images/{ => unsorted}/topicon4.png (100%)
 rename static/images/{ => unsorted}/topicon5.png (100%)
 rename static/images/{ => unsorted}/topicon6.png (100%)
 rename static/images/{ => unsorted}/tops-qr.png (100%)
 rename static/images/{ => unsorted}/usrpic1.jpg (100%)
 rename static/images/{ => unsorted}/usrpic2.jpg (100%)
 rename static/images/{ => unsorted}/usrpic3.jpg (100%)
 rename static/images/{ => unsorted}/usrpic4.jpg (100%)
 rename static/images/{ => unsorted}/valuepic1.jpg (100%)
 rename static/images/{ => unsorted}/valuepic2.jpg (100%)
 rename static/images/{ => unsorted}/valuepic3.jpg (100%)
 rename static/images/{ => unsorted}/valuepic4.jpg (100%)
 rename static/images/{ => unsorted}/vs.png (100%)
 rename static/images/{ => unsorted}/woocommerce-settings.png (100%)
 create mode 100644 static/postcss/tailwind.postcss
 create mode 100644 tailwind.config.js

diff --git a/.postcssrc b/.postcssrc
new file mode 100644
index 0000000..d42c370
--- /dev/null
+++ b/.postcssrc
@@ -0,0 +1,5 @@
+{
+  "plugins": {
+    "tailwindcss": {}
+  }
+}
\ No newline at end of file
diff --git a/common/base.j2 b/common/base.j2
index 384307a..fcb0ca2 100644
--- a/common/base.j2
+++ b/common/base.j2
@@ -4,18 +4,18 @@
 <head>
   <meta charset="UTF-8" />
   <link rel="shortcut icon" href="/favicon.ico">
-  <!--<link rel="icon" type="image/svg+xml" href="{{ 
url_static('images/favicon.svg') }}" sizes="any"
-    <link rel="icon" type="image/png" href="{{ 
url_static('images/android-chrome-192x192.png') }}" sizes="192x192">
-    <link rel="icon" type="image/png" href="{{ 
url_static('images/android-chrome-512x512.png') }}" sizes="512x512">>
-    <link rel="apple-touch-icon" sizes="180x180" href="{{ 
url_static('images/apple-touch-icon.png') }}">
+  <!--<link rel="icon" type="image/svg+xml" href="{{ 
url_static('images/unsorted/favicon.svg') }}" sizes="any"
+    <link rel="icon" type="image/png" href="{{ 
url_static('images/unsorted/android-chrome-192x192.png') }}" sizes="192x192">
+    <link rel="icon" type="image/png" href="{{ 
url_static('images/unsorted/android-chrome-512x512.png') }}" sizes="512x512">>
+    <link rel="apple-touch-icon" sizes="180x180" href="{{ 
url_static('images/unsorted/apple-touch-icon.png') }}">
     <meta name="msapplication-TileColor" content="#ffffff">
-    <meta name="msapplication-TileImage" content="{{ 
url_static('images/mstile-150x150.png') }}">-->
+    <meta name="msapplication-TileImage" content="{{ 
url_static('images/unsorted/mstile-150x150.png') }}">-->
   <meta property="og:title" content="Taler Operations AG, Biel, Switzerland" />
   <meta property="og:type" content="website" />
   <meta property="og:url" content="{{ url_localized('index.html') }}" />
   <meta property="og:image" content="https://taler.net/favicon.ico"; />
   <meta property="og:image" content="/favicon.ico" />
-  <meta property="og:image" content="{{ url_static('images/favicon.png') }}" />
+  <meta property="og:image" content="{{ 
url_static('images/unsorted/favicon.png') }}" />
   <meta name="description" content="{{ _('Taler Operations AG, Biel, 
Switzerland') }}" />
   {% include "common/header.j2.inc" %}
   {% block head_content %}{% endblock %}
diff --git a/common/footer.j2.inc b/common/footer.j2.inc
index edeba06..a768b8e 100644
--- a/common/footer.j2.inc
+++ b/common/footer.j2.inc
@@ -5,13 +5,13 @@
         <div class="col-md-3 col-sm-6">
           <div class="footbox text-center">
             <a href="{{ url_localized('index.html') }}" class="footlogo"><img
-                src="{{ url_static('images/footlogo.png') }}" alt="Homepage" 
/></a>
+                src="{{ url_static('images/unsorted/footlogo.png') }}" 
alt="Homepage" /></a>
           </div>
           <div class="footbox text-center">
             <p style="color: white; margin-top: 5px">
               Taler Operations AG, {% trans %}Switzerland{% endtrans %}<br />
               Höheweg 80<br />
-              CH-2502 Biel, Switzerland
+              CH-2502 {% trans %}Biel{% endtrans %}, {% trans %}Switzerland{% 
endtrans %}
             </p>
           </div>
         </div>
@@ -82,7 +82,7 @@
           © {% trans %}Copyright{% endtrans %} 2024 |
           <a href="{{ url_localized('index.html') }}">Taler Operations AG</a> |
           <a href="https://www.gnu.org/licenses/fdl-1.3.html.en"; 
target="_blank" rel="noopener noreferrer">{% trans
-            %}License{% endtrans %}: GNU Free Documentation License</a>
+            %}Licensed under the GNU Free Documentation License{% endtrans 
%}</a>
         </p>
         <p>
           {% trans %}We do not assume any liability for the correctness of
diff --git a/common/footer.j2.inc b/common/footer.old.j2.inc
similarity index 97%
copy from common/footer.j2.inc
copy to common/footer.old.j2.inc
index edeba06..1df62c2 100644
--- a/common/footer.j2.inc
+++ b/common/footer.old.j2.inc
@@ -5,7 +5,7 @@
         <div class="col-md-3 col-sm-6">
           <div class="footbox text-center">
             <a href="{{ url_localized('index.html') }}" class="footlogo"><img
-                src="{{ url_static('images/footlogo.png') }}" alt="Homepage" 
/></a>
+                src="{{ url_static('images/unsorted/footlogo.png') }}" 
alt="Homepage" /></a>
           </div>
           <div class="footbox text-center">
             <p style="color: white; margin-top: 5px">
diff --git a/common/header.j2.inc b/common/header.j2.inc
index 9b75685..8302386 100644
--- a/common/header.j2.inc
+++ b/common/header.j2.inc
@@ -44,4 +44,6 @@
 
 <link href="{{ url_static('scss/bootstrap5.scss') }}" rel="stylesheet" />
 <link href="{{ url_static('scss/doc.scss') }}" rel="stylesheet" />
-<link href="{{ url_static('scss/fonts.scss') }}" rel="stylesheet" />
\ No newline at end of file
+<link href="{{ url_static('scss/fonts.scss') }}" rel="stylesheet" />
+
+<link href="{{ url_static('postcss/tailwind.postcss') }}" rel="stylesheet" />
\ No newline at end of file
diff --git a/common/navigation.j2.inc b/common/navigation.j2.inc
index cb96062..f0b7319 100644
--- a/common/navigation.j2.inc
+++ b/common/navigation.j2.inc
@@ -4,8 +4,8 @@
   </div>
   <div class="container">
     <nav class="navbar navbar-expand-md navbar-light nav_top">
-      <a class="navbar-brand" href="{{ url_localized('index.html') }}"><img 
src="{{ url_static('images/logo.png') }}"
-          alt="Taler Operations SA" /></a>
+      <a class="navbar-brand" href="{{ url_localized('index.html') }}"><img
+          src="{{ url_static('images/unsorted/logo.png') }}" alt="Taler 
Operations SA" /></a>
       <button class="navbar-toggler" type="button" data-toggle="collapse" 
data-target="#navbarSupportedContent"
         aria-controls="navbarSupportedContent" aria-expanded="false" 
aria-label="Toggle navigation">
         <span class="icon-bar"></span>
@@ -30,10 +30,12 @@
         <div class="nav-item dropdown">
           <button class="btn btn-light dropdown-toggle" type="button" 
id="dropdownMenu1" data-toggle="dropdown"
             aria-haspopup="true" aria-expanded="true">
-            <img src="{{ url_static('images/languageicon.svg') }}" height="35" 
alt="[{{lang}}]" />
+            <img src="{{ url_static('images/unsorted/languageicon.svg') }}" 
height="35" alt="[{{lang}}]" />
             {{ lang_full }} [{{ lang }}]
           </button>
           <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
+            {# TODO: look into if it's cleaner to show all langs alongside 
some kind of indicator of which one is active
+            within the dropdown #}
             {% if lang != 'en' %}
             <li>
               <a class="dropdown-item" href="{{ self_localized('en') 
}}">English [en]</a>
diff --git a/locale/de/LC_MESSAGES/messages.po 
b/locale/de/LC_MESSAGES/messages.po
index 902fe29..6a41164 100644
--- a/locale/de/LC_MESSAGES/messages.po
+++ b/locale/de/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2024-02-25 01:50+0100\n"
+"POT-Creation-Date: 2024-02-25 02:15+0100\n"
 "PO-Revision-Date: 2024-02-24 20:06+0000\n"
 "Last-Translator: Stefan Kügel <skuegel@web.de>\n"
 "Language-Team: German <https://weblate.taler.net/projects/taler-ops/website/";
@@ -24,72 +24,78 @@ msgstr ""
 msgid "Taler Operations AG, Biel, Switzerland"
 msgstr "Taler Operations AG, Biel, Schweiz"
 
-#: common/footer.j2.inc:12
+#: common/footer.j2.inc:12 common/footer.j2.inc:14 common/footer.old.j2.inc:12
 msgid "Switzerland"
 msgstr "Schweiz"
 
-#: common/footer.j2.inc:20
+#: common/footer.j2.inc:14
+msgid "Biel"
+msgstr ""
+
+#: common/footer.j2.inc:20 common/footer.old.j2.inc:20
 msgid "Quick Links"
 msgstr "Seitenübersicht"
 
-#: common/footer.j2.inc:24
+#: common/footer.j2.inc:24 common/footer.old.j2.inc:24
 msgid "Taler Operations AG Homepage"
 msgstr "Taler Operations AG Startseite"
 
-#: common/footer.j2.inc:24 common/navigation.j2.inc:18
+#: common/footer.j2.inc:24 common/footer.old.j2.inc:24
+#: common/navigation.j2.inc:18
 msgid "Home"
 msgstr "Startseite"
 
-#: common/footer.j2.inc:31 common/navigation.j2.inc:27 template/fees.html.j2:3
-#: template/fees.html.j2:8 template/fees.html.j2:17
+#: common/footer.j2.inc:31 common/footer.old.j2.inc:31
+#: common/navigation.j2.inc:27 template/fees.html.j2:3 template/fees.html.j2:8
+#: template/fees.html.j2:17
 msgid "Fees"
 msgstr "Gebührenordnung"
 
-#: common/footer.j2.inc:34
+#: common/footer.j2.inc:34 common/footer.old.j2.inc:34
 msgid "Terms of Service"
 msgstr "AGB"
 
-#: common/footer.j2.inc:41
+#: common/footer.j2.inc:41 common/footer.old.j2.inc:41
 msgid "Partners"
 msgstr "Partner"
 
-#: common/footer.j2.inc:44
+#: common/footer.j2.inc:44 common/footer.old.j2.inc:44
 msgid "Taler Consortium"
 msgstr "Taler-Konsortium NGI TALER"
 
-#: common/footer.j2.inc:48
+#: common/footer.j2.inc:48 common/footer.old.j2.inc:48
 msgid "Bern&nbsp;University of Applied&nbsp;Sciences"
 msgstr "Berner Fachhochschule (BFH)"
 
-#: common/footer.j2.inc:53
+#: common/footer.j2.inc:53 common/footer.old.j2.inc:53
 msgid "NetzBon"
 msgstr "NetzBon"
 
-#: common/footer.j2.inc:61
+#: common/footer.j2.inc:61 common/footer.old.j2.inc:61
 msgid "Contacts"
 msgstr "Kontakt"
 
-#: common/footer.j2.inc:64
+#: common/footer.j2.inc:64 common/footer.old.j2.inc:64
 msgid "Tel:"
 msgstr "Tel:"
 
-#: common/footer.j2.inc:67
+#: common/footer.j2.inc:67 common/footer.old.j2.inc:67
 msgid "Compliance Officer"
 msgstr "Compliance-Beauftragte"
 
-#: common/footer.j2.inc:70
+#: common/footer.j2.inc:70 common/footer.old.j2.inc:70
 msgid "AML Officer"
 msgstr "AML-Beauftragte"
 
-#: common/footer.j2.inc:82
+#: common/footer.j2.inc:82 common/footer.old.j2.inc:82
 msgid "Copyright"
 msgstr "Copyright"
 
 #: common/footer.j2.inc:84
-msgid "License"
-msgstr "Lizenz"
+msgid "Licensed under the GNU Free Documentation License"
+msgstr ""
 
-#: common/footer.j2.inc:88
+#: common/footer.j2.inc:88 common/footer.old.j2.inc:88
 #, fuzzy
 #| msgid ""
 #| "We do not assume any liability for the correctness of contents. We do not "
@@ -108,6 +114,10 @@ msgstr ""
 "Besuchern. Diese werden jedoch ausschließlich zur Fehlersuche und "
 "Problembehebung ausgewertet."
 
+#: common/footer.old.j2.inc:84
+msgid "License"
+msgstr "Lizenz"
+
 #: common/navigation.j2.inc:3
 msgid "Skip to main content"
 msgstr "Navigationsmenü überspringen"
@@ -386,147 +396,147 @@ msgstr "Installationsanleitung für Kunden"
 msgid "Taler wallet"
 msgstr "Installation"
 
-#: template/users.html.j2:45 template/users.html.j2:64
-#: template/users.html.j2:80 template/users.html.j2:101
-#: template/users.html.j2:121 template/users.html.j2:138
-#: template/users.html.j2:157 template/users.html.j2:176
-#: template/users.html.j2:197
+#: template/users.html.j2:47 template/users.html.j2:66
+#: template/users.html.j2:82 template/users.html.j2:104
+#: template/users.html.j2:125 template/users.html.j2:142
+#: template/users.html.j2:161 template/users.html.j2:180
+#: template/users.html.j2:203
 msgid "Step"
 msgstr ""
 
-#: template/users.html.j2:45
+#: template/users.html.j2:47
 msgid "Select provider</span>"
 msgstr ""
 
-#: template/users.html.j2:46
+#: template/users.html.j2:48
 msgid ""
 "Initially, you may need to add Taler Operations as a payment service "
 "provider. The easiest way to do so is to scan the QR code on the right, "
 "which will also initiate the withdrawal process."
 msgstr ""
 
-#: template/users.html.j2:49
+#: template/users.html.j2:51
 msgid ""
 "If you already have a payment service provider for the \"CHF\" currency, you "
 "can also just click on the \"add\" button on the \"CHF balance\" screen."
 msgstr ""
 
-#: template/users.html.j2:64
+#: template/users.html.j2:66
 msgid "Enter amount</span>"
 msgstr ""
 
-#: template/users.html.j2:65
+#: template/users.html.j2:67
 msgid "Enter the desired amount to be withdrawn."
 msgstr ""
 
-#: template/users.html.j2:66
+#: template/users.html.j2:68
 msgid "Afterwards, select \"Withdraw\" from my bank account."
 msgstr ""
 
-#: template/users.html.j2:80
+#: template/users.html.j2:82
 msgid "Accept terms</span>"
 msgstr ""
 
-#: template/users.html.j2:81
+#: template/users.html.j2:83
 msgid "Please read the Terms of Service and accept them."
 msgstr ""
 "Bitte lesen Sie die Allgemeinen Geschäftsbedingungen (AGB) und bestätigen "
 "diese (einmalig bei der ersten Abhebung bei einem Systembetreiber und im "
 "Fall von AGB-Änderungen)."
 
-#: template/users.html.j2:82
+#: template/users.html.j2:84
 msgid ""
 "You will only need to do so the first time, or when the terms have been "
 "updated."
 msgstr ""
 
-#: template/users.html.j2:101
+#: template/users.html.j2:104
 msgid "Review</span>"
 msgstr ""
 
-#: template/users.html.j2:102
+#: template/users.html.j2:105
 msgid "Review and confirm the operation."
 msgstr ""
 
-#: template/users.html.j2:103
+#: template/users.html.j2:106
 msgid "Depending on the payment service provider, you may be shown fees."
 msgstr ""
 
-#: template/users.html.j2:121
+#: template/users.html.j2:125
 msgid "Wire transfer</span>"
 msgstr ""
 
-#: template/users.html.j2:122
+#: template/users.html.j2:126
 msgid ""
 "The wallet will show you the subject, target account and amount to transfer."
 msgstr ""
 
-#: template/users.html.j2:123
+#: template/users.html.j2:127
 msgid ""
 "Copy the information into your online banking application and wire the funds "
 "to the payment service provider."
 msgstr ""
 
-#: template/users.html.j2:138
+#: template/users.html.j2:142
 msgid "Wait!</span>"
 msgstr ""
 
-#: template/users.html.j2:139
+#: template/users.html.j2:143
 msgid ""
 "The wallet will automatically receive the digital cash once your wire "
 "transfer has arrived at the payment service provider."
 msgstr ""
 
-#: template/users.html.j2:141
+#: template/users.html.j2:145
 msgid ""
 "Depending on your bank, this may take a few days. You do not need to keep "
 "the wallet open."
 msgstr ""
 
-#: template/users.html.j2:157
+#: template/users.html.j2:161
 msgid "Shop</span>"
 msgstr ""
 
-#: template/users.html.j2:158
+#: template/users.html.j2:162
 msgid ""
 "When shopping, the wallet may be launched automatically or you may need to "
 "click a link, scan a QR code or even select the wallet extension manually "
 "depending on the context."
 msgstr ""
 
-#: template/users.html.j2:160
+#: template/users.html.j2:164
 msgid ""
 "The QR code scanner button can also be held to manually enter a \"taler://\"-"
 "URI, for example if you received one via text message."
 msgstr ""
 
-#: template/users.html.j2:176
+#: template/users.html.j2:180
 msgid "Pay</span>"
 msgstr ""
 
-#: template/users.html.j2:177
+#: template/users.html.j2:181
 msgid ""
 "The wallet will show you details about what you are buying, including the "
 "price and applicable fees."
 msgstr ""
 
-#: template/users.html.j2:179
+#: template/users.html.j2:183
 msgid "Simply press \"Pay\" to make the payment."
 msgstr ""
 
-#: template/users.html.j2:197
+#: template/users.html.j2:203
 msgid "Manage</span>"
 msgstr ""
 
-#: template/users.html.j2:198
+#: template/users.html.j2:204
 msgid "The wallet keeps track of your transaction history."
 msgstr ""
 
-#: template/users.html.j2:199
+#: template/users.html.j2:205
 msgid "You can delete transactions, erasing any trace that you were the buyer."
 msgstr ""
 
-#: template/users.html.j2:216
+#: template/users.html.j2:222
 msgid "Frequently Asked Questions"
 msgstr "FAQs (Frequently Asked Questions)"
 
diff --git a/locale/en/LC_MESSAGES/messages.po 
b/locale/en/LC_MESSAGES/messages.po
index 08706ab..f52189a 100644
--- a/locale/en/LC_MESSAGES/messages.po
+++ b/locale/en/LC_MESSAGES/messages.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2024-02-25 01:50+0100\n"
+"POT-Creation-Date: 2024-02-25 02:15+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -22,72 +22,78 @@ msgstr ""
 msgid "Taler Operations AG, Biel, Switzerland"
 msgstr ""
 
-#: common/footer.j2.inc:12
+#: common/footer.j2.inc:12 common/footer.j2.inc:14 common/footer.old.j2.inc:12
 msgid "Switzerland"
 msgstr ""
 
-#: common/footer.j2.inc:20
+#: common/footer.j2.inc:14
+msgid "Biel"
+msgstr ""
+
+#: common/footer.j2.inc:20 common/footer.old.j2.inc:20
 msgid "Quick Links"
 msgstr ""
 
-#: common/footer.j2.inc:24
+#: common/footer.j2.inc:24 common/footer.old.j2.inc:24
 msgid "Taler Operations AG Homepage"
 msgstr ""
 
-#: common/footer.j2.inc:24 common/navigation.j2.inc:18
+#: common/footer.j2.inc:24 common/footer.old.j2.inc:24
+#: common/navigation.j2.inc:18
 msgid "Home"
 msgstr ""
 
-#: common/footer.j2.inc:31 common/navigation.j2.inc:27 template/fees.html.j2:3
-#: template/fees.html.j2:8 template/fees.html.j2:17
+#: common/footer.j2.inc:31 common/footer.old.j2.inc:31
+#: common/navigation.j2.inc:27 template/fees.html.j2:3 template/fees.html.j2:8
+#: template/fees.html.j2:17
 msgid "Fees"
 msgstr ""
 
-#: common/footer.j2.inc:34
+#: common/footer.j2.inc:34 common/footer.old.j2.inc:34
 msgid "Terms of Service"
 msgstr ""
 
-#: common/footer.j2.inc:41
+#: common/footer.j2.inc:41 common/footer.old.j2.inc:41
 msgid "Partners"
 msgstr ""
 
-#: common/footer.j2.inc:44
+#: common/footer.j2.inc:44 common/footer.old.j2.inc:44
 msgid "Taler Consortium"
 msgstr ""
 
-#: common/footer.j2.inc:48
+#: common/footer.j2.inc:48 common/footer.old.j2.inc:48
 msgid "Bern&nbsp;University of Applied&nbsp;Sciences"
 msgstr ""
 
-#: common/footer.j2.inc:53
+#: common/footer.j2.inc:53 common/footer.old.j2.inc:53
 msgid "NetzBon"
 msgstr ""
 
-#: common/footer.j2.inc:61
+#: common/footer.j2.inc:61 common/footer.old.j2.inc:61
 msgid "Contacts"
 msgstr ""
 
-#: common/footer.j2.inc:64
+#: common/footer.j2.inc:64 common/footer.old.j2.inc:64
 msgid "Tel:"
 msgstr ""
 
-#: common/footer.j2.inc:67
+#: common/footer.j2.inc:67 common/footer.old.j2.inc:67
 msgid "Compliance Officer"
 msgstr ""
 
-#: common/footer.j2.inc:70
+#: common/footer.j2.inc:70 common/footer.old.j2.inc:70
 msgid "AML Officer"
 msgstr ""
 
-#: common/footer.j2.inc:82
+#: common/footer.j2.inc:82 common/footer.old.j2.inc:82
 msgid "Copyright"
 msgstr ""
 
 #: common/footer.j2.inc:84
-msgid "License"
+msgid "Licensed under the GNU Free Documentation License"
 msgstr ""
 
-#: common/footer.j2.inc:88
+#: common/footer.j2.inc:88 common/footer.old.j2.inc:88
 msgid ""
 "We do not assume any liability for the correctness of contents. We do not "
 "collect any data and do not use cookies. <br />Our web server generates a "
@@ -95,6 +101,10 @@ msgid ""
 "exclusively for troubleshooting or problem mitigation."
 msgstr ""
 
+#: common/footer.old.j2.inc:84
+msgid "License"
+msgstr ""
+
 #: common/navigation.j2.inc:3
 msgid "Skip to main content"
 msgstr ""
@@ -344,143 +354,143 @@ msgstr ""
 msgid "Taler wallet"
 msgstr ""
 
-#: template/users.html.j2:45 template/users.html.j2:64
-#: template/users.html.j2:80 template/users.html.j2:101
-#: template/users.html.j2:121 template/users.html.j2:138
-#: template/users.html.j2:157 template/users.html.j2:176
-#: template/users.html.j2:197
+#: template/users.html.j2:47 template/users.html.j2:66
+#: template/users.html.j2:82 template/users.html.j2:104
+#: template/users.html.j2:125 template/users.html.j2:142
+#: template/users.html.j2:161 template/users.html.j2:180
+#: template/users.html.j2:203
 msgid "Step"
 msgstr ""
 
-#: template/users.html.j2:45
+#: template/users.html.j2:47
 msgid "Select provider</span>"
 msgstr ""
 
-#: template/users.html.j2:46
+#: template/users.html.j2:48
 msgid ""
 "Initially, you may need to add Taler Operations as a payment service "
 "provider. The easiest way to do so is to scan the QR code on the right, "
 "which will also initiate the withdrawal process."
 msgstr ""
 
-#: template/users.html.j2:49
+#: template/users.html.j2:51
 msgid ""
 "If you already have a payment service provider for the \"CHF\" currency, you "
 "can also just click on the \"add\" button on the \"CHF balance\" screen."
 msgstr ""
 
-#: template/users.html.j2:64
+#: template/users.html.j2:66
 msgid "Enter amount</span>"
 msgstr ""
 
-#: template/users.html.j2:65
+#: template/users.html.j2:67
 msgid "Enter the desired amount to be withdrawn."
 msgstr ""
 
-#: template/users.html.j2:66
+#: template/users.html.j2:68
 msgid "Afterwards, select \"Withdraw\" from my bank account."
 msgstr ""
 
-#: template/users.html.j2:80
+#: template/users.html.j2:82
 msgid "Accept terms</span>"
 msgstr ""
 
-#: template/users.html.j2:81
+#: template/users.html.j2:83
 msgid "Please read the Terms of Service and accept them."
 msgstr ""
 
-#: template/users.html.j2:82
+#: template/users.html.j2:84
 msgid ""
 "You will only need to do so the first time, or when the terms have been "
 "updated."
 msgstr ""
 
-#: template/users.html.j2:101
+#: template/users.html.j2:104
 msgid "Review</span>"
 msgstr ""
 
-#: template/users.html.j2:102
+#: template/users.html.j2:105
 msgid "Review and confirm the operation."
 msgstr ""
 
-#: template/users.html.j2:103
+#: template/users.html.j2:106
 msgid "Depending on the payment service provider, you may be shown fees."
 msgstr ""
 
-#: template/users.html.j2:121
+#: template/users.html.j2:125
 msgid "Wire transfer</span>"
 msgstr ""
 
-#: template/users.html.j2:122
+#: template/users.html.j2:126
 msgid ""
 "The wallet will show you the subject, target account and amount to transfer."
 msgstr ""
 
-#: template/users.html.j2:123
+#: template/users.html.j2:127
 msgid ""
 "Copy the information into your online banking application and wire the funds "
 "to the payment service provider."
 msgstr ""
 
-#: template/users.html.j2:138
+#: template/users.html.j2:142
 msgid "Wait!</span>"
 msgstr ""
 
-#: template/users.html.j2:139
+#: template/users.html.j2:143
 msgid ""
 "The wallet will automatically receive the digital cash once your wire "
 "transfer has arrived at the payment service provider."
 msgstr ""
 
-#: template/users.html.j2:141
+#: template/users.html.j2:145
 msgid ""
 "Depending on your bank, this may take a few days. You do not need to keep "
 "the wallet open."
 msgstr ""
 
-#: template/users.html.j2:157
+#: template/users.html.j2:161
 msgid "Shop</span>"
 msgstr ""
 
-#: template/users.html.j2:158
+#: template/users.html.j2:162
 msgid ""
 "When shopping, the wallet may be launched automatically or you may need to "
 "click a link, scan a QR code or even select the wallet extension manually "
 "depending on the context."
 msgstr ""
 
-#: template/users.html.j2:160
+#: template/users.html.j2:164
 msgid ""
 "The QR code scanner button can also be held to manually enter a \"taler://\"-"
 "URI, for example if you received one via text message."
 msgstr ""
 
-#: template/users.html.j2:176
+#: template/users.html.j2:180
 msgid "Pay</span>"
 msgstr ""
 
-#: template/users.html.j2:177
+#: template/users.html.j2:181
 msgid ""
 "The wallet will show you details about what you are buying, including the "
 "price and applicable fees."
 msgstr ""
 
-#: template/users.html.j2:179
+#: template/users.html.j2:183
 msgid "Simply press \"Pay\" to make the payment."
 msgstr ""
 
-#: template/users.html.j2:197
+#: template/users.html.j2:203
 msgid "Manage</span>"
 msgstr ""
 
-#: template/users.html.j2:198
+#: template/users.html.j2:204
 msgid "The wallet keeps track of your transaction history."
 msgstr ""
 
-#: template/users.html.j2:199
+#: template/users.html.j2:205
 msgid "You can delete transactions, erasing any trace that you were the buyer."
 msgstr ""
 
-#: template/users.html.j2:216
+#: template/users.html.j2:222
 msgid "Frequently Asked Questions"
 msgstr ""
diff --git a/locale/fr/LC_MESSAGES/messages.po 
b/locale/fr/LC_MESSAGES/messages.po
index 890f9cb..458911e 100644
--- a/locale/fr/LC_MESSAGES/messages.po
+++ b/locale/fr/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2024-02-25 01:50+0100\n"
+"POT-Creation-Date: 2024-02-25 02:15+0100\n"
 "PO-Revision-Date: 2024-02-12 18:13+0000\n"
 "Last-Translator: Stefan Kügel <skuegel@web.de>\n"
 "Language-Team: French <https://weblate.taler.net/projects/taler-ops/website/";
@@ -24,74 +24,80 @@ msgstr ""
 msgid "Taler Operations AG, Biel, Switzerland"
 msgstr "Taler Operations AG, Bienne, Suisse"
 
-#: common/footer.j2.inc:12
+#: common/footer.j2.inc:12 common/footer.j2.inc:14 common/footer.old.j2.inc:12
 msgid "Switzerland"
 msgstr ""
 
-#: common/footer.j2.inc:20
+#: common/footer.j2.inc:14
+msgid "Biel"
+msgstr ""
+
+#: common/footer.j2.inc:20 common/footer.old.j2.inc:20
 msgid "Quick Links"
 msgstr "Liens directs"
 
-#: common/footer.j2.inc:24
+#: common/footer.j2.inc:24 common/footer.old.j2.inc:24
 msgid "Taler Operations AG Homepage"
 msgstr "Page d'accueil Taler Operations AG"
 
-#: common/footer.j2.inc:24 common/navigation.j2.inc:18
+#: common/footer.j2.inc:24 common/footer.old.j2.inc:24
+#: common/navigation.j2.inc:18
 msgid "Home"
 msgstr "Accueil"
 
-#: common/footer.j2.inc:31 common/navigation.j2.inc:27 template/fees.html.j2:3
-#: template/fees.html.j2:8 template/fees.html.j2:17
+#: common/footer.j2.inc:31 common/footer.old.j2.inc:31
+#: common/navigation.j2.inc:27 template/fees.html.j2:3 template/fees.html.j2:8
+#: template/fees.html.j2:17
 msgid "Fees"
 msgstr "Frais"
 
-#: common/footer.j2.inc:34
+#: common/footer.j2.inc:34 common/footer.old.j2.inc:34
 msgid "Terms of Service"
 msgstr "Conditions d'utilisation"
 
-#: common/footer.j2.inc:41
+#: common/footer.j2.inc:41 common/footer.old.j2.inc:41
 msgid "Partners"
 msgstr "Partenaires"
 
-#: common/footer.j2.inc:44
+#: common/footer.j2.inc:44 common/footer.old.j2.inc:44
 msgid "Taler Consortium"
 msgstr "Consortium Taler"
 
-#: common/footer.j2.inc:48
+#: common/footer.j2.inc:48 common/footer.old.j2.inc:48
 #, fuzzy
 #| msgid "Bern University of Applied Sciences"
 msgid "Bern&nbsp;University of Applied&nbsp;Sciences"
 msgstr "Haute école spécialisée bernoise"
 
-#: common/footer.j2.inc:53
+#: common/footer.j2.inc:53 common/footer.old.j2.inc:53
 msgid "NetzBon"
 msgstr "NetzBon"
 
-#: common/footer.j2.inc:61
+#: common/footer.j2.inc:61 common/footer.old.j2.inc:61
 msgid "Contacts"
 msgstr "Contacts"
 
-#: common/footer.j2.inc:64
+#: common/footer.j2.inc:64 common/footer.old.j2.inc:64
 msgid "Tel:"
 msgstr ""
 
-#: common/footer.j2.inc:67
+#: common/footer.j2.inc:67 common/footer.old.j2.inc:67
 msgid "Compliance Officer"
 msgstr "Responsable de la conformité"
 
-#: common/footer.j2.inc:70
+#: common/footer.j2.inc:70 common/footer.old.j2.inc:70
 msgid "AML Officer"
 msgstr "Agent de lutte contre le blanchiment d'argent"
 
-#: common/footer.j2.inc:82
+#: common/footer.j2.inc:82 common/footer.old.j2.inc:82
 msgid "Copyright"
 msgstr "Droits d'auteur"
 
 #: common/footer.j2.inc:84
-msgid "License"
-msgstr "Licence"
+msgid "Licensed under the GNU Free Documentation License"
+msgstr ""
 
-#: common/footer.j2.inc:88
+#: common/footer.j2.inc:88 common/footer.old.j2.inc:88
 #, fuzzy
 msgid ""
 "We do not assume any liability for the correctness of contents. We do not "
@@ -105,6 +111,10 @@ msgstr ""
 "Toutefois, celles-ci ne sont consultées exclusivement pour des besoins de "
 "dépannages ou de résolution de problème."
 
+#: common/footer.old.j2.inc:84
+msgid "License"
+msgstr "Licence"
+
 #: common/navigation.j2.inc:3
 msgid "Skip to main content"
 msgstr "Aller au menu principal"
@@ -361,144 +371,144 @@ msgstr "Guide d'installation utilisateur"
 msgid "Taler wallet"
 msgstr ""
 
-#: template/users.html.j2:45 template/users.html.j2:64
-#: template/users.html.j2:80 template/users.html.j2:101
-#: template/users.html.j2:121 template/users.html.j2:138
-#: template/users.html.j2:157 template/users.html.j2:176
-#: template/users.html.j2:197
+#: template/users.html.j2:47 template/users.html.j2:66
+#: template/users.html.j2:82 template/users.html.j2:104
+#: template/users.html.j2:125 template/users.html.j2:142
+#: template/users.html.j2:161 template/users.html.j2:180
+#: template/users.html.j2:203
 msgid "Step"
 msgstr ""
 
-#: template/users.html.j2:45
+#: template/users.html.j2:47
 msgid "Select provider</span>"
 msgstr ""
 
-#: template/users.html.j2:46
+#: template/users.html.j2:48
 msgid ""
 "Initially, you may need to add Taler Operations as a payment service "
 "provider. The easiest way to do so is to scan the QR code on the right, "
 "which will also initiate the withdrawal process."
 msgstr ""
 
-#: template/users.html.j2:49
+#: template/users.html.j2:51
 msgid ""
 "If you already have a payment service provider for the \"CHF\" currency, you "
 "can also just click on the \"add\" button on the \"CHF balance\" screen."
 msgstr ""
 
-#: template/users.html.j2:64
+#: template/users.html.j2:66
 msgid "Enter amount</span>"
 msgstr ""
 
-#: template/users.html.j2:65
+#: template/users.html.j2:67
 msgid "Enter the desired amount to be withdrawn."
 msgstr ""
 
-#: template/users.html.j2:66
+#: template/users.html.j2:68
 msgid "Afterwards, select \"Withdraw\" from my bank account."
 msgstr ""
 
-#: template/users.html.j2:80
+#: template/users.html.j2:82
 msgid "Accept terms</span>"
 msgstr ""
 
-#: template/users.html.j2:81
+#: template/users.html.j2:83
 msgid "Please read the Terms of Service and accept them."
 msgstr ""
 
-#: template/users.html.j2:82
+#: template/users.html.j2:84
 msgid ""
 "You will only need to do so the first time, or when the terms have been "
 "updated."
 msgstr ""
 
-#: template/users.html.j2:101
+#: template/users.html.j2:104
 msgid "Review</span>"
 msgstr ""
 
-#: template/users.html.j2:102
+#: template/users.html.j2:105
 msgid "Review and confirm the operation."
 msgstr ""
 
-#: template/users.html.j2:103
+#: template/users.html.j2:106
 msgid "Depending on the payment service provider, you may be shown fees."
 msgstr ""
 
-#: template/users.html.j2:121
+#: template/users.html.j2:125
 msgid "Wire transfer</span>"
 msgstr ""
 
-#: template/users.html.j2:122
+#: template/users.html.j2:126
 msgid ""
 "The wallet will show you the subject, target account and amount to transfer."
 msgstr ""
 
-#: template/users.html.j2:123
+#: template/users.html.j2:127
 msgid ""
 "Copy the information into your online banking application and wire the funds "
 "to the payment service provider."
 msgstr ""
 
-#: template/users.html.j2:138
+#: template/users.html.j2:142
 msgid "Wait!</span>"
 msgstr ""
 
-#: template/users.html.j2:139
+#: template/users.html.j2:143
 msgid ""
 "The wallet will automatically receive the digital cash once your wire "
 "transfer has arrived at the payment service provider."
 msgstr ""
 
-#: template/users.html.j2:141
+#: template/users.html.j2:145
 msgid ""
 "Depending on your bank, this may take a few days. You do not need to keep "
 "the wallet open."
 msgstr ""
 
-#: template/users.html.j2:157
+#: template/users.html.j2:161
 msgid "Shop</span>"
 msgstr ""
 
-#: template/users.html.j2:158
+#: template/users.html.j2:162
 msgid ""
 "When shopping, the wallet may be launched automatically or you may need to "
 "click a link, scan a QR code or even select the wallet extension manually "
 "depending on the context."
 msgstr ""
 
-#: template/users.html.j2:160
+#: template/users.html.j2:164
 msgid ""
 "The QR code scanner button can also be held to manually enter a \"taler://\"-"
 "URI, for example if you received one via text message."
 msgstr ""
 
-#: template/users.html.j2:176
+#: template/users.html.j2:180
 msgid "Pay</span>"
 msgstr ""
 
-#: template/users.html.j2:177
+#: template/users.html.j2:181
 msgid ""
 "The wallet will show you details about what you are buying, including the "
 "price and applicable fees."
 msgstr ""
 
-#: template/users.html.j2:179
+#: template/users.html.j2:183
 msgid "Simply press \"Pay\" to make the payment."
 msgstr ""
 
-#: template/users.html.j2:197
+#: template/users.html.j2:203
 msgid "Manage</span>"
 msgstr ""
 
-#: template/users.html.j2:198
+#: template/users.html.j2:204
 msgid "The wallet keeps track of your transaction history."
 msgstr ""
 
-#: template/users.html.j2:199
+#: template/users.html.j2:205
 msgid "You can delete transactions, erasing any trace that you were the buyer."
 msgstr ""
 
-#: template/users.html.j2:216
+#: template/users.html.j2:222
 msgid "Frequently Asked Questions"
 msgstr ""
 
diff --git a/locale/messages.pot b/locale/messages.pot
index 7a92e43..38df06a 100644
--- a/locale/messages.pot
+++ b/locale/messages.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2024-02-25 01:50+0100\n"
+"POT-Creation-Date: 2024-02-25 02:15+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -21,72 +21,78 @@ msgstr ""
 msgid "Taler Operations AG, Biel, Switzerland"
 msgstr ""
 
-#: common/footer.j2.inc:12
+#: common/footer.j2.inc:12 common/footer.j2.inc:14 common/footer.old.j2.inc:12
 msgid "Switzerland"
 msgstr ""
 
-#: common/footer.j2.inc:20
+#: common/footer.j2.inc:14
+msgid "Biel"
+msgstr ""
+
+#: common/footer.j2.inc:20 common/footer.old.j2.inc:20
 msgid "Quick Links"
 msgstr ""
 
-#: common/footer.j2.inc:24
+#: common/footer.j2.inc:24 common/footer.old.j2.inc:24
 msgid "Taler Operations AG Homepage"
 msgstr ""
 
-#: common/footer.j2.inc:24 common/navigation.j2.inc:18
+#: common/footer.j2.inc:24 common/footer.old.j2.inc:24
+#: common/navigation.j2.inc:18
 msgid "Home"
 msgstr ""
 
-#: common/footer.j2.inc:31 common/navigation.j2.inc:27 template/fees.html.j2:3
-#: template/fees.html.j2:8 template/fees.html.j2:17
+#: common/footer.j2.inc:31 common/footer.old.j2.inc:31
+#: common/navigation.j2.inc:27 template/fees.html.j2:3 template/fees.html.j2:8
+#: template/fees.html.j2:17
 msgid "Fees"
 msgstr ""
 
-#: common/footer.j2.inc:34
+#: common/footer.j2.inc:34 common/footer.old.j2.inc:34
 msgid "Terms of Service"
 msgstr ""
 
-#: common/footer.j2.inc:41
+#: common/footer.j2.inc:41 common/footer.old.j2.inc:41
 msgid "Partners"
 msgstr ""
 
-#: common/footer.j2.inc:44
+#: common/footer.j2.inc:44 common/footer.old.j2.inc:44
 msgid "Taler Consortium"
 msgstr ""
 
-#: common/footer.j2.inc:48
+#: common/footer.j2.inc:48 common/footer.old.j2.inc:48
 msgid "Bern&nbsp;University of Applied&nbsp;Sciences"
 msgstr ""
 
-#: common/footer.j2.inc:53
+#: common/footer.j2.inc:53 common/footer.old.j2.inc:53
 msgid "NetzBon"
 msgstr ""
 
-#: common/footer.j2.inc:61
+#: common/footer.j2.inc:61 common/footer.old.j2.inc:61
 msgid "Contacts"
 msgstr ""
 
-#: common/footer.j2.inc:64
+#: common/footer.j2.inc:64 common/footer.old.j2.inc:64
 msgid "Tel:"
 msgstr ""
 
-#: common/footer.j2.inc:67
+#: common/footer.j2.inc:67 common/footer.old.j2.inc:67
 msgid "Compliance Officer"
 msgstr ""
 
-#: common/footer.j2.inc:70
+#: common/footer.j2.inc:70 common/footer.old.j2.inc:70
 msgid "AML Officer"
 msgstr ""
 
-#: common/footer.j2.inc:82
+#: common/footer.j2.inc:82 common/footer.old.j2.inc:82
 msgid "Copyright"
 msgstr ""
 
 #: common/footer.j2.inc:84
-msgid "License"
+msgid "Licensed under the GNU Free Documentation License"
 msgstr ""
 
-#: common/footer.j2.inc:88
+#: common/footer.j2.inc:88 common/footer.old.j2.inc:88
 msgid ""
 "We do not assume any liability for the correctness of contents. We do not"
 " collect any data and do not use cookies. <br />Our web server generates "
@@ -94,6 +100,10 @@ msgid ""
 "exclusively for troubleshooting or problem mitigation."
 msgstr ""
 
+#: common/footer.old.j2.inc:84
+msgid "License"
+msgstr ""
+
 #: common/navigation.j2.inc:3
 msgid "Skip to main content"
 msgstr ""
@@ -342,146 +352,146 @@ msgstr ""
 msgid "Taler wallet"
 msgstr ""
 
-#: template/users.html.j2:45 template/users.html.j2:64
-#: template/users.html.j2:80 template/users.html.j2:101
-#: template/users.html.j2:121 template/users.html.j2:138
-#: template/users.html.j2:157 template/users.html.j2:176
-#: template/users.html.j2:197
+#: template/users.html.j2:47 template/users.html.j2:66
+#: template/users.html.j2:82 template/users.html.j2:104
+#: template/users.html.j2:125 template/users.html.j2:142
+#: template/users.html.j2:161 template/users.html.j2:180
+#: template/users.html.j2:203
 msgid "Step"
 msgstr ""
 
-#: template/users.html.j2:45
+#: template/users.html.j2:47
 msgid "Select provider</span>"
 msgstr ""
 
-#: template/users.html.j2:46
+#: template/users.html.j2:48
 msgid ""
 "Initially, you may need to add Taler Operations as a payment service "
 "provider. The easiest way to do so is to scan the QR code on the right, "
 "which will also initiate the withdrawal process."
 msgstr ""
 
-#: template/users.html.j2:49
+#: template/users.html.j2:51
 msgid ""
 "If you already have a payment service provider for the \"CHF\" currency, "
 "you can also just click on the \"add\" button on the \"CHF balance\" "
 "screen."
 msgstr ""
 
-#: template/users.html.j2:64
+#: template/users.html.j2:66
 msgid "Enter amount</span>"
 msgstr ""
 
-#: template/users.html.j2:65
+#: template/users.html.j2:67
 msgid "Enter the desired amount to be withdrawn."
 msgstr ""
 
-#: template/users.html.j2:66
+#: template/users.html.j2:68
 msgid "Afterwards, select \"Withdraw\" from my bank account."
 msgstr ""
 
-#: template/users.html.j2:80
+#: template/users.html.j2:82
 msgid "Accept terms</span>"
 msgstr ""
 
-#: template/users.html.j2:81
+#: template/users.html.j2:83
 msgid "Please read the Terms of Service and accept them."
 msgstr ""
 
-#: template/users.html.j2:82
+#: template/users.html.j2:84
 msgid ""
 "You will only need to do so the first time, or when the terms have been "
 "updated."
 msgstr ""
 
-#: template/users.html.j2:101
+#: template/users.html.j2:104
 msgid "Review</span>"
 msgstr ""
 
-#: template/users.html.j2:102
+#: template/users.html.j2:105
 msgid "Review and confirm the operation."
 msgstr ""
 
-#: template/users.html.j2:103
+#: template/users.html.j2:106
 msgid "Depending on the payment service provider, you may be shown fees."
 msgstr ""
 
-#: template/users.html.j2:121
+#: template/users.html.j2:125
 msgid "Wire transfer</span>"
 msgstr ""
 
-#: template/users.html.j2:122
+#: template/users.html.j2:126
 msgid ""
 "The wallet will show you the subject, target account and amount to "
 "transfer."
 msgstr ""
 
-#: template/users.html.j2:123
+#: template/users.html.j2:127
 msgid ""
 "Copy the information into your online banking application and wire the "
 "funds to the payment service provider."
 msgstr ""
 
-#: template/users.html.j2:138
+#: template/users.html.j2:142
 msgid "Wait!</span>"
 msgstr ""
 
-#: template/users.html.j2:139
+#: template/users.html.j2:143
 msgid ""
 "The wallet will automatically receive the digital cash once your wire "
 "transfer has arrived at the payment service provider."
 msgstr ""
 
-#: template/users.html.j2:141
+#: template/users.html.j2:145
 msgid ""
 "Depending on your bank, this may take a few days. You do not need to keep"
 " the wallet open."
 msgstr ""
 
-#: template/users.html.j2:157
+#: template/users.html.j2:161
 msgid "Shop</span>"
 msgstr ""
 
-#: template/users.html.j2:158
+#: template/users.html.j2:162
 msgid ""
 "When shopping, the wallet may be launched automatically or you may need "
 "to click a link, scan a QR code or even select the wallet extension "
 "manually depending on the context."
 msgstr ""
 
-#: template/users.html.j2:160
+#: template/users.html.j2:164
 msgid ""
 "The QR code scanner button can also be held to manually enter a "
 "\"taler://\"-URI, for example if you received one via text message."
 msgstr ""
 
-#: template/users.html.j2:176
+#: template/users.html.j2:180
 msgid "Pay</span>"
 msgstr ""
 
-#: template/users.html.j2:177
+#: template/users.html.j2:181
 msgid ""
 "The wallet will show you details about what you are buying, including the"
 " price and applicable fees."
 msgstr ""
 
-#: template/users.html.j2:179
+#: template/users.html.j2:183
 msgid "Simply press \"Pay\" to make the payment."
 msgstr ""
 
-#: template/users.html.j2:197
+#: template/users.html.j2:203
 msgid "Manage</span>"
 msgstr ""
 
-#: template/users.html.j2:198
+#: template/users.html.j2:204
 msgid "The wallet keeps track of your transaction history."
 msgstr ""
 
-#: template/users.html.j2:199
+#: template/users.html.j2:205
 msgid "You can delete transactions, erasing any trace that you were the buyer."
 msgstr ""
 
-#: template/users.html.j2:216
+#: template/users.html.j2:222
 msgid "Frequently Asked Questions"
 msgstr ""
 
diff --git a/package.json b/package.json
index 3da7e7e..837b2be 100644
--- a/package.json
+++ b/package.json
@@ -20,8 +20,10 @@
     "concurrently": "^8.2.2",
     "nodemon": "^3.1.0",
     "parcel": "^2.11.0",
+    "postcss": "^8.4.35",
     "purify-css": "^1.2.5",
-    "sass": "^1.71.1"
+    "sass": "^1.71.1",
+    "tailwindcss": "^3.4.1"
   },
   "browserslist": "> 0.5%, last 4 versions, not dead"
 }
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index abc8512..4961300 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -7,7 +7,7 @@ settings:
 devDependencies:
   '@parcel/config-default':
     specifier: ^2.11.0
-    version: 2.11.0(@parcel/core@2.11.0)
+    version: 2.11.0(@parcel/core@2.11.0)(postcss@8.4.35)
   '@parcel/plugin':
     specifier: ^2.11.0
     version: 2.11.0(@parcel/core@2.11.0)
@@ -22,16 +22,27 @@ devDependencies:
     version: 3.1.0
   parcel:
     specifier: ^2.11.0
-    version: 2.11.0
+    version: 2.11.0(postcss@8.4.35)
+  postcss:
+    specifier: ^8.4.35
+    version: 8.4.35
   purify-css:
     specifier: ^1.2.5
     version: 1.2.5
   sass:
     specifier: ^1.71.1
     version: 1.71.1
+  tailwindcss:
+    specifier: ^3.4.1
+    version: 3.4.1
 
 packages:
 
+  /@alloc/quick-lru@5.2.0:
+    resolution: {integrity: 
sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
+    engines: {node: '>=10'}
+    dev: true
+
   /@babel/code-frame@7.23.5:
     resolution: {integrity: 
sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
     engines: {node: '>=6.9.0'}
@@ -61,6 +72,48 @@ packages:
       regenerator-runtime: 0.14.1
     dev: true
 
+  /@isaacs/cliui@8.0.2:
+    resolution: {integrity: 
sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+    engines: {node: '>=12'}
+    dependencies:
+      string-width: 5.1.2
+      string-width-cjs: /string-width@4.2.3
+      strip-ansi: 7.1.0
+      strip-ansi-cjs: /strip-ansi@6.0.1
+      wrap-ansi: 8.1.0
+      wrap-ansi-cjs: /wrap-ansi@7.0.0
+    dev: true
+
+  /@jridgewell/gen-mapping@0.3.4:
+    resolution: {integrity: 
sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==}
+    engines: {node: '>=6.0.0'}
+    dependencies:
+      '@jridgewell/set-array': 1.1.2
+      '@jridgewell/sourcemap-codec': 1.4.15
+      '@jridgewell/trace-mapping': 0.3.23
+    dev: true
+
+  /@jridgewell/resolve-uri@3.1.2:
+    resolution: {integrity: 
sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+    engines: {node: '>=6.0.0'}
+    dev: true
+
+  /@jridgewell/set-array@1.1.2:
+    resolution: {integrity: 
sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
+    engines: {node: '>=6.0.0'}
+    dev: true
+
+  /@jridgewell/sourcemap-codec@1.4.15:
+    resolution: {integrity: 
sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+    dev: true
+
+  /@jridgewell/trace-mapping@0.3.23:
+    resolution: {integrity: 
sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==}
+    dependencies:
+      '@jridgewell/resolve-uri': 3.1.2
+      '@jridgewell/sourcemap-codec': 1.4.15
+    dev: true
+
   /@lezer/common@1.2.1:
     resolution: {integrity: 
sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==}
     dev: true
@@ -176,6 +229,27 @@ packages:
     dev: true
     optional: true
 
+  /@nodelib/fs.scandir@2.1.5:
+    resolution: {integrity: 
sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+    engines: {node: '>= 8'}
+    dependencies:
+      '@nodelib/fs.stat': 2.0.5
+      run-parallel: 1.2.0
+    dev: true
+
+  /@nodelib/fs.stat@2.0.5:
+    resolution: {integrity: 
sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+    engines: {node: '>= 8'}
+    dev: true
+
+  /@nodelib/fs.walk@1.2.8:
+    resolution: {integrity: 
sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+    engines: {node: '>= 8'}
+    dependencies:
+      '@nodelib/fs.scandir': 2.1.5
+      fastq: 1.17.1
+    dev: true
+
   /@parcel/bundler-default@2.11.0(@parcel/core@2.11.0):
     resolution: {integrity: 
sha512-ZIs0865Lp871ZK83k5I9L4DeeE26muNMrHa7j8bvls6fKBJKAn8djrhfU4XOLyziU4aAOobcPwXU0+npWqs52g==}
     engines: {node: '>= 12.0.0', parcel: ^2.11.0}
@@ -219,7 +293,7 @@ packages:
       - '@parcel/core'
     dev: true
 
-  /@parcel/config-default@2.11.0(@parcel/core@2.11.0):
+  /@parcel/config-default@2.11.0(@parcel/core@2.11.0)(postcss@8.4.35):
     resolution: {integrity: 
sha512-1e2+qcZkm5/0f4eI20p/DemcYiSxq9d/eyjpTXA7PulJaHbL1wonwUAuy3mvnAvDnLOJmAk/obDVgX1ZfxMGtg==}
     peerDependencies:
       '@parcel/core': ^2.11.0
@@ -229,7 +303,7 @@ packages:
       '@parcel/core': 2.11.0
       '@parcel/namer-default': 2.11.0(@parcel/core@2.11.0)
       '@parcel/optimizer-css': 2.11.0(@parcel/core@2.11.0)
-      '@parcel/optimizer-htmlnano': 2.11.0(@parcel/core@2.11.0)
+      '@parcel/optimizer-htmlnano': 2.11.0(@parcel/core@2.11.0)(postcss@8.4.35)
       '@parcel/optimizer-image': 2.11.0(@parcel/core@2.11.0)
       '@parcel/optimizer-svgo': 2.11.0(@parcel/core@2.11.0)
       '@parcel/optimizer-swc': 2.11.0(@parcel/core@2.11.0)
@@ -389,12 +463,12 @@ packages:
       - '@parcel/core'
     dev: true
 
-  /@parcel/optimizer-htmlnano@2.11.0(@parcel/core@2.11.0):
+  /@parcel/optimizer-htmlnano@2.11.0(@parcel/core@2.11.0)(postcss@8.4.35):
     resolution: {integrity: 
sha512-c20pz4EFF5DNFmqYgptlIj49eT6xjGLkDTdHH3RRzxKovuSXWfYSPs3GED3ZsjVuQyjNQif+/MAk9547F7hrdQ==}
     engines: {node: '>= 12.0.0', parcel: ^2.11.0}
     dependencies:
       '@parcel/plugin': 2.11.0(@parcel/core@2.11.0)
-      htmlnano: 2.1.0(svgo@2.8.0)
+      htmlnano: 2.1.0(postcss@8.4.35)(svgo@2.8.0)
       nullthrows: 1.1.1
       posthtml: 0.16.6
       svgo: 2.8.0
@@ -1004,6 +1078,13 @@ packages:
       nullthrows: 1.1.1
     dev: true
 
+  /@pkgjs/parseargs@0.11.0:
+    resolution: {integrity: 
sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
+    engines: {node: '>=14'}
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@swc/core-darwin-arm64@1.4.2:
     resolution: {integrity: 
sha512-1uSdAn1MRK5C1m/TvLZ2RDvr0zLvochgrZ2xL+lRzugLlCTlSA+Q4TWtrZaOz+vnnFVliCpw7c7qu0JouhgQIw==}
     engines: {node: '>=10'}
@@ -1161,6 +1242,11 @@ packages:
     engines: {node: '>=8'}
     dev: true
 
+  /ansi-regex@6.0.1:
+    resolution: {integrity: 
sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
+    engines: {node: '>=12'}
+    dev: true
+
   /ansi-styles@3.2.1:
     resolution: {integrity: 
sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
     engines: {node: '>=4'}
@@ -1175,6 +1261,15 @@ packages:
       color-convert: 2.0.1
     dev: true
 
+  /ansi-styles@6.2.1:
+    resolution: {integrity: 
sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+    engines: {node: '>=12'}
+    dev: true
+
+  /any-promise@1.3.0:
+    resolution: {integrity: 
sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
+    dev: true
+
   /anymatch@3.1.3:
     resolution: {integrity: 
sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
     engines: {node: '>= 8'}
@@ -1183,6 +1278,10 @@ packages:
       picomatch: 2.3.1
     dev: true
 
+  /arg@5.0.2:
+    resolution: {integrity: 
sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
+    dev: true
+
   /argparse@2.0.1:
     resolution: {integrity: 
sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
     dev: true
@@ -1219,6 +1318,12 @@ packages:
       concat-map: 0.0.1
     dev: true
 
+  /brace-expansion@2.0.1:
+    resolution: {integrity: 
sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+    dependencies:
+      balanced-match: 1.0.2
+    dev: true
+
   /braces@3.0.2:
     resolution: {integrity: 
sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
     engines: {node: '>=8'}
@@ -1242,6 +1347,11 @@ packages:
     engines: {node: '>=6'}
     dev: true
 
+  /camelcase-css@2.0.1:
+    resolution: {integrity: 
sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
+    engines: {node: '>= 6'}
+    dev: true
+
   /camelcase@4.1.0:
     resolution: {integrity: 
sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==}
     engines: {node: '>=4'}
@@ -1350,6 +1460,11 @@ packages:
     resolution: {integrity: 
sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
     dev: true
 
+  /commander@4.1.1:
+    resolution: {integrity: 
sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+    engines: {node: '>= 6'}
+    dev: true
+
   /commander@7.2.0:
     resolution: {integrity: 
sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
     engines: {node: '>= 10'}
@@ -1402,6 +1517,15 @@ packages:
       which: 1.3.1
     dev: true
 
+  /cross-spawn@7.0.3:
+    resolution: {integrity: 
sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+    engines: {node: '>= 8'}
+    dependencies:
+      path-key: 3.1.1
+      shebang-command: 2.0.0
+      which: 2.0.2
+    dev: true
+
   /css-select@4.3.0:
     resolution: {integrity: 
sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
     dependencies:
@@ -1434,6 +1558,12 @@ packages:
       urix: 0.1.0
     dev: true
 
+  /cssesc@3.0.0:
+    resolution: {integrity: 
sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+    engines: {node: '>=4'}
+    hasBin: true
+    dev: true
+
   /csso@4.2.0:
     resolution: {integrity: 
sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
     engines: {node: '>=8.0.0'}
@@ -1482,6 +1612,14 @@ packages:
     engines: {node: '>=8'}
     dev: true
 
+  /didyoumean@1.2.2:
+    resolution: {integrity: 
sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
+    dev: true
+
+  /dlv@1.1.3:
+    resolution: {integrity: 
sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
+    dev: true
+
   /dom-serializer@1.4.1:
     resolution: {integrity: 
sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
     dependencies:
@@ -1518,6 +1656,10 @@ packages:
     engines: {node: '>=6'}
     dev: true
 
+  /eastasianwidth@0.2.0:
+    resolution: {integrity: 
sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+    dev: true
+
   /electron-to-chromium@1.4.681:
     resolution: {integrity: 
sha512-1PpuqJUFWoXZ1E54m8bsLPVYwIVCRzvaL+n5cjigGga4z854abDnFRc+cTa2th4S79kyGqya/1xoR7h+Y5G5lg==}
     dev: true
@@ -1526,6 +1668,10 @@ packages:
     resolution: {integrity: 
sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
     dev: true
 
+  /emoji-regex@9.2.2:
+    resolution: {integrity: 
sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+    dev: true
+
   /entities@2.2.0:
     resolution: {integrity: 
sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
     dev: true
@@ -1564,6 +1710,23 @@ packages:
       strip-eof: 1.0.0
     dev: true
 
+  /fast-glob@3.3.2:
+    resolution: {integrity: 
sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
+    engines: {node: '>=8.6.0'}
+    dependencies:
+      '@nodelib/fs.stat': 2.0.5
+      '@nodelib/fs.walk': 1.2.8
+      glob-parent: 5.1.2
+      merge2: 1.4.1
+      micromatch: 4.0.5
+    dev: true
+
+  /fastq@1.17.1:
+    resolution: {integrity: 
sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
+    dependencies:
+      reusify: 1.0.4
+    dev: true
+
   /fill-range@7.0.1:
     resolution: {integrity: 
sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
     engines: {node: '>=8'}
@@ -1578,6 +1741,14 @@ packages:
       locate-path: 2.0.0
     dev: true
 
+  /foreground-child@3.1.1:
+    resolution: {integrity: 
sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
+    engines: {node: '>=14'}
+    dependencies:
+      cross-spawn: 7.0.3
+      signal-exit: 4.1.0
+    dev: true
+
   /fs.realpath@1.0.0:
     resolution: {integrity: 
sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
     dev: true
@@ -1620,6 +1791,25 @@ packages:
       is-glob: 4.0.3
     dev: true
 
+  /glob-parent@6.0.2:
+    resolution: {integrity: 
sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+    engines: {node: '>=10.13.0'}
+    dependencies:
+      is-glob: 4.0.3
+    dev: true
+
+  /glob@10.3.10:
+    resolution: {integrity: 
sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
+    engines: {node: '>=16 || 14 >=14.17'}
+    hasBin: true
+    dependencies:
+      foreground-child: 3.1.1
+      jackspeak: 2.3.6
+      minimatch: 9.0.3
+      minipass: 7.0.4
+      path-scurry: 1.10.1
+    dev: true
+
   /glob@7.2.3:
     resolution: {integrity: 
sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
     dependencies:
@@ -1663,7 +1853,7 @@ packages:
     resolution: {integrity: 
sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
     dev: true
 
-  /htmlnano@2.1.0(svgo@2.8.0):
+  /htmlnano@2.1.0(postcss@8.4.35)(svgo@2.8.0):
     resolution: {integrity: 
sha512-jVGRE0Ep9byMBKEu0Vxgl8dhXYOUk0iNQ2pjsG+BcRB0u0oDF5A9p/iBGMg/PGKYUyMD0OAGu8dVT5Lzj8S58g==}
     peerDependencies:
       cssnano: ^6.0.0
@@ -1693,6 +1883,7 @@ packages:
         optional: true
     dependencies:
       cosmiconfig: 8.3.6
+      postcss: 8.4.35
       posthtml: 0.16.6
       svgo: 2.8.0
       timsort: 0.3.0
@@ -1805,6 +1996,20 @@ packages:
     resolution: {integrity: 
sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
     dev: true
 
+  /jackspeak@2.3.6:
+    resolution: {integrity: 
sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
+    engines: {node: '>=14'}
+    dependencies:
+      '@isaacs/cliui': 8.0.2
+    optionalDependencies:
+      '@pkgjs/parseargs': 0.11.0
+    dev: true
+
+  /jiti@1.21.0:
+    resolution: {integrity: 
sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
+    hasBin: true
+    dev: true
+
   /js-tokens@4.0.0:
     resolution: {integrity: 
sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
     dev: true
@@ -1931,6 +2136,16 @@ packages:
       lightningcss-win32-x64-msvc: 1.24.0
     dev: true
 
+  /lilconfig@2.1.0:
+    resolution: {integrity: 
sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
+    engines: {node: '>=10'}
+    dev: true
+
+  /lilconfig@3.1.1:
+    resolution: {integrity: 
sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==}
+    engines: {node: '>=14'}
+    dev: true
+
   /lines-and-columns@1.2.4:
     resolution: {integrity: 
sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
     dev: true
@@ -1976,6 +2191,11 @@ packages:
     resolution: {integrity: 
sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
     dev: true
 
+  /lru-cache@10.2.0:
+    resolution: {integrity: 
sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
+    engines: {node: 14 || >=16.14}
+    dev: true
+
   /lru-cache@4.1.5:
     resolution: {integrity: 
sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
     dependencies:
@@ -2001,6 +2221,11 @@ packages:
       mimic-fn: 1.2.0
     dev: true
 
+  /merge2@1.4.1:
+    resolution: {integrity: 
sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+    engines: {node: '>= 8'}
+    dev: true
+
   /micromatch@4.0.5:
     resolution: {integrity: 
sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
     engines: {node: '>=8.6'}
@@ -2020,6 +2245,18 @@ packages:
       brace-expansion: 1.1.11
     dev: true
 
+  /minimatch@9.0.3:
+    resolution: {integrity: 
sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
+    engines: {node: '>=16 || 14 >=14.17'}
+    dependencies:
+      brace-expansion: 2.0.1
+    dev: true
+
+  /minipass@7.0.4:
+    resolution: {integrity: 
sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
+    engines: {node: '>=16 || 14 >=14.17'}
+    dev: true
+
   /ms@2.1.2:
     resolution: {integrity: 
sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
     dev: true
@@ -2046,6 +2283,20 @@ packages:
       msgpackr-extract: 3.0.2
     dev: true
 
+  /mz@2.7.0:
+    resolution: {integrity: 
sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+    dependencies:
+      any-promise: 1.3.0
+      object-assign: 4.1.1
+      thenify-all: 1.6.0
+    dev: true
+
+  /nanoid@3.3.7:
+    resolution: {integrity: 
sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
+    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+    hasBin: true
+    dev: true
+
   /node-addon-api@6.1.0:
     resolution: {integrity: 
sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==}
     dev: true
@@ -2133,6 +2384,16 @@ packages:
     engines: {node: '>=0.10.0'}
     dev: true
 
+  /object-assign@4.1.1:
+    resolution: {integrity: 
sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+    engines: {node: '>=0.10.0'}
+    dev: true
+
+  /object-hash@3.0.0:
+    resolution: {integrity: 
sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
+    engines: {node: '>= 6'}
+    dev: true
+
   /once@1.4.0:
     resolution: {integrity: 
sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
     dependencies:
@@ -2176,12 +2437,12 @@ packages:
     engines: {node: '>=4'}
     dev: true
 
-  /parcel@2.11.0:
+  /parcel@2.11.0(postcss@8.4.35):
     resolution: {integrity: 
sha512-H/RI1/DmuOkL8RuG/EpNPvtzrbF+7jA/R56ydEEm+lqFbYktKB4COR7JXdHkZXRgbSJyimrFB8d0r9+SaRnj0Q==}
     engines: {node: '>= 12.0.0'}
     hasBin: true
     dependencies:
-      '@parcel/config-default': 2.11.0(@parcel/core@2.11.0)
+      '@parcel/config-default': 2.11.0(@parcel/core@2.11.0)(postcss@8.4.35)
       '@parcel/core': 2.11.0
       '@parcel/diagnostic': 2.11.0
       '@parcel/events': 2.11.0
@@ -2246,10 +2507,23 @@ packages:
     engines: {node: '>=4'}
     dev: true
 
+  /path-key@3.1.1:
+    resolution: {integrity: 
sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+    engines: {node: '>=8'}
+    dev: true
+
   /path-parse@1.0.7:
     resolution: {integrity: 
sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
     dev: true
 
+  /path-scurry@1.10.1:
+    resolution: {integrity: 
sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
+    engines: {node: '>=16 || 14 >=14.17'}
+    dependencies:
+      lru-cache: 10.2.0
+      minipass: 7.0.4
+    dev: true
+
   /path-type@2.0.0:
     resolution: {integrity: 
sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==}
     engines: {node: '>=4'}
@@ -2276,10 +2550,81 @@ packages:
     engines: {node: '>=0.10.0'}
     dev: true
 
+  /pirates@4.0.6:
+    resolution: {integrity: 
sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
+    engines: {node: '>= 6'}
+    dev: true
+
+  /postcss-import@15.1.0(postcss@8.4.35):
+    resolution: {integrity: 
sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
+    engines: {node: '>=14.0.0'}
+    peerDependencies:
+      postcss: ^8.0.0
+    dependencies:
+      postcss: 8.4.35
+      postcss-value-parser: 4.2.0
+      read-cache: 1.0.0
+      resolve: 1.22.8
+    dev: true
+
+  /postcss-js@4.0.1(postcss@8.4.35):
+    resolution: {integrity: 
sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
+    engines: {node: ^12 || ^14 || >= 16}
+    peerDependencies:
+      postcss: ^8.4.21
+    dependencies:
+      camelcase-css: 2.0.1
+      postcss: 8.4.35
+    dev: true
+
+  /postcss-load-config@4.0.2(postcss@8.4.35):
+    resolution: {integrity: 
sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
+    engines: {node: '>= 14'}
+    peerDependencies:
+      postcss: '>=8.0.9'
+      ts-node: '>=9.0.0'
+    peerDependenciesMeta:
+      postcss:
+        optional: true
+      ts-node:
+        optional: true
+    dependencies:
+      lilconfig: 3.1.1
+      postcss: 8.4.35
+      yaml: 2.3.4
+    dev: true
+
+  /postcss-nested@6.0.1(postcss@8.4.35):
+    resolution: {integrity: 
sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
+    engines: {node: '>=12.0'}
+    peerDependencies:
+      postcss: ^8.2.14
+    dependencies:
+      postcss: 8.4.35
+      postcss-selector-parser: 6.0.15
+    dev: true
+
+  /postcss-selector-parser@6.0.15:
+    resolution: {integrity: 
sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==}
+    engines: {node: '>=4'}
+    dependencies:
+      cssesc: 3.0.0
+      util-deprecate: 1.0.2
+    dev: true
+
   /postcss-value-parser@4.2.0:
     resolution: {integrity: 
sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
     dev: true
 
+  /postcss@8.4.35:
+    resolution: {integrity: 
sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==}
+    engines: {node: ^10 || ^12 || >=14}
+    dependencies:
+      nanoid: 3.3.7
+      picocolors: 1.0.0
+      source-map-js: 1.0.2
+    dev: true
+
   /posthtml-parser@0.10.2:
     resolution: {integrity: 
sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==}
     engines: {node: '>=12'}
@@ -2328,6 +2673,10 @@ packages:
       yargs: 8.0.2
     dev: true
 
+  /queue-microtask@1.2.3:
+    resolution: {integrity: 
sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+    dev: true
+
   /react-error-overlay@6.0.9:
     resolution: {integrity: 
sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==}
     dev: true
@@ -2337,6 +2686,12 @@ packages:
     engines: {node: '>=0.10.0'}
     dev: true
 
+  /read-cache@1.0.0:
+    resolution: {integrity: 
sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
+    dependencies:
+      pify: 2.3.0
+    dev: true
+
   /read-pkg-up@2.0.0:
     resolution: {integrity: 
sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==}
     engines: {node: '>=4'}
@@ -2397,6 +2752,11 @@ packages:
       supports-preserve-symlinks-flag: 1.0.0
     dev: true
 
+  /reusify@1.0.4:
+    resolution: {integrity: 
sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+    dev: true
+
   /rework@1.0.1:
     resolution: {integrity: 
sha512-eEjL8FdkdsxApd0yWVZgBGzfCQiT8yqSc2H1p4jpZpQdtz7ohETiDMoje5PlM8I9WgkqkreVxFUKYOiJdVWDXw==}
     dependencies:
@@ -2404,6 +2764,12 @@ packages:
       css: 2.2.4
     dev: true
 
+  /run-parallel@1.2.0:
+    resolution: {integrity: 
sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+    dependencies:
+      queue-microtask: 1.2.3
+    dev: true
+
   /rxjs@7.8.1:
     resolution: {integrity: 
sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
     dependencies:
@@ -2448,11 +2814,23 @@ packages:
       shebang-regex: 1.0.0
     dev: true
 
+  /shebang-command@2.0.0:
+    resolution: {integrity: 
sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+    engines: {node: '>=8'}
+    dependencies:
+      shebang-regex: 3.0.0
+    dev: true
+
   /shebang-regex@1.0.0:
     resolution: {integrity: 
sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
     engines: {node: '>=0.10.0'}
     dev: true
 
+  /shebang-regex@3.0.0:
+    resolution: {integrity: 
sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+    engines: {node: '>=8'}
+    dev: true
+
   /shell-quote@1.8.1:
     resolution: {integrity: 
sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
     dev: true
@@ -2461,6 +2839,11 @@ packages:
     resolution: {integrity: 
sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
     dev: true
 
+  /signal-exit@4.1.0:
+    resolution: {integrity: 
sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+    engines: {node: '>=14'}
+    dev: true
+
   /simple-update-notifier@2.0.0:
     resolution: {integrity: 
sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==}
     engines: {node: '>=10'}
@@ -2556,6 +2939,15 @@ packages:
       strip-ansi: 6.0.1
     dev: true
 
+  /string-width@5.1.2:
+    resolution: {integrity: 
sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+    engines: {node: '>=12'}
+    dependencies:
+      eastasianwidth: 0.2.0
+      emoji-regex: 9.2.2
+      strip-ansi: 7.1.0
+    dev: true
+
   /strip-ansi@3.0.1:
     resolution: {integrity: 
sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
     engines: {node: '>=0.10.0'}
@@ -2577,6 +2969,13 @@ packages:
       ansi-regex: 5.0.1
     dev: true
 
+  /strip-ansi@7.1.0:
+    resolution: {integrity: 
sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+    engines: {node: '>=12'}
+    dependencies:
+      ansi-regex: 6.0.1
+    dev: true
+
   /strip-bom@3.0.0:
     resolution: {integrity: 
sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
     engines: {node: '>=4'}
@@ -2587,6 +2986,20 @@ packages:
     engines: {node: '>=0.10.0'}
     dev: true
 
+  /sucrase@3.35.0:
+    resolution: {integrity: 
sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
+    engines: {node: '>=16 || 14 >=14.17'}
+    hasBin: true
+    dependencies:
+      '@jridgewell/gen-mapping': 0.3.4
+      commander: 4.1.1
+      glob: 10.3.10
+      lines-and-columns: 1.2.4
+      mz: 2.7.0
+      pirates: 4.0.6
+      ts-interface-checker: 0.1.13
+    dev: true
+
   /supports-color@5.5.0:
     resolution: {integrity: 
sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
     engines: {node: '>=4'}
@@ -2627,11 +3040,55 @@ packages:
       stable: 0.1.8
     dev: true
 
+  /tailwindcss@3.4.1:
+    resolution: {integrity: 
sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
+    engines: {node: '>=14.0.0'}
+    hasBin: true
+    dependencies:
+      '@alloc/quick-lru': 5.2.0
+      arg: 5.0.2
+      chokidar: 3.6.0
+      didyoumean: 1.2.2
+      dlv: 1.1.3
+      fast-glob: 3.3.2
+      glob-parent: 6.0.2
+      is-glob: 4.0.3
+      jiti: 1.21.0
+      lilconfig: 2.1.0
+      micromatch: 4.0.5
+      normalize-path: 3.0.0
+      object-hash: 3.0.0
+      picocolors: 1.0.0
+      postcss: 8.4.35
+      postcss-import: 15.1.0(postcss@8.4.35)
+      postcss-js: 4.0.1(postcss@8.4.35)
+      postcss-load-config: 4.0.2(postcss@8.4.35)
+      postcss-nested: 6.0.1(postcss@8.4.35)
+      postcss-selector-parser: 6.0.15
+      resolve: 1.22.8
+      sucrase: 3.35.0
+    transitivePeerDependencies:
+      - ts-node
+    dev: true
+
   /term-size@2.2.1:
     resolution: {integrity: 
sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
     engines: {node: '>=8'}
     dev: true
 
+  /thenify-all@1.6.0:
+    resolution: {integrity: 
sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
+    engines: {node: '>=0.8'}
+    dependencies:
+      thenify: 3.3.1
+    dev: true
+
+  /thenify@3.3.1:
+    resolution: {integrity: 
sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+    dependencies:
+      any-promise: 1.3.0
+    dev: true
+
   /timsort@0.3.0:
     resolution: {integrity: 
sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==}
     dev: true
@@ -2655,6 +3112,10 @@ packages:
     hasBin: true
     dev: true
 
+  /ts-interface-checker@0.1.13:
+    resolution: {integrity: 
sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
+    dev: true
+
   /tslib@2.6.2:
     resolution: {integrity: 
sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
     dev: true
@@ -2690,6 +3151,10 @@ packages:
     deprecated: Please see https://github.com/lydell/urix#deprecated
     dev: true
 
+  /util-deprecate@1.0.2:
+    resolution: {integrity: 
sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+    dev: true
+
   /utility-types@3.11.0:
     resolution: {integrity: 
sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
     engines: {node: '>= 4'}
@@ -2717,6 +3182,14 @@ packages:
       isexe: 2.0.0
     dev: true
 
+  /which@2.0.2:
+    resolution: {integrity: 
sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+    engines: {node: '>= 8'}
+    hasBin: true
+    dependencies:
+      isexe: 2.0.0
+    dev: true
+
   /wrap-ansi@2.1.0:
     resolution: {integrity: 
sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==}
     engines: {node: '>=0.10.0'}
@@ -2734,6 +3207,15 @@ packages:
       strip-ansi: 6.0.1
     dev: true
 
+  /wrap-ansi@8.1.0:
+    resolution: {integrity: 
sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+    engines: {node: '>=12'}
+    dependencies:
+      ansi-styles: 6.2.1
+      string-width: 5.1.2
+      strip-ansi: 7.1.0
+    dev: true
+
   /wrappy@1.0.2:
     resolution: {integrity: 
sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
     dev: true
@@ -2755,6 +3237,11 @@ packages:
     resolution: {integrity: 
sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
     dev: true
 
+  /yaml@2.3.4:
+    resolution: {integrity: 
sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==}
+    engines: {node: '>= 14'}
+    dev: true
+
   /yargs-parser@21.1.1:
     resolution: {integrity: 
sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
     engines: {node: '>=12'}
diff --git a/static/images/logo/taler-full.svg 
b/static/images/logo/taler-full.svg
new file mode 100644
index 0000000..fc0d37f
--- /dev/null
+++ b/static/images/logo/taler-full.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="670"
+   height="300"
+   viewBox="0 0 201 90"
+   version="1.1"
+   id="svg8"
+   sodipodi:docname="taler-logo-2021-inkscape.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1009"
+     id="namedview18"
+     showgrid="false"
+     inkscape:zoom="2.3522388"
+     inkscape:cx="95.803701"
+     inkscape:cy="148.33935"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="logo"
+     inkscape:document-rotation="0"
+     viewbox-width="201"
+     scale-x="0.3" />
+  <metadata
+     id="metadata20">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs18" />
+  <g
+     id="logo">
+    <g
+       id="circles"
+       
style="fill:#0042b3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.327943">
+      <path
+         d="m 86.662153,1.1211936 c 15.589697,0 29.129227,9.4011664 
35.961027,23.2018054 h -5.81736 C 110.4866,13.623304 99.349002,6.5180852 
86.662153,6.5180852 c -19.690571,0 -35.652876,17.1120008 -35.652876,38.2205688 
0,10.331797 3.825597,19.704678 10.03957,26.582945 -1.342357,1.120912 
-2.771532,2.127905 -4.275488,3.006754 C 50.071485,66.553412 45.974857,56.15992 
45.974857,44.738654 c 0,-24.089211 18.216325,-43.6174604 40.687296,-43.6174604 
z M 122.51416,65.375898 c -6.86645,13.680134  [...]
+         id="path2350" />
+      <path
+         d="m 64.212372,1.1211936 c 1.052607,0 2.095998,0.042919 
3.128684,0.1270583 C 64.288864,2.8094199 61.427378,4.728606 58.802653,6.9555572 
41.679542,9.7498571 28.559494,25.601563 28.559494,44.738654 c 0,14.264563 
7.29059,26.702023 18.093843,33.268925 -1.593656,0.26719 -3.226966,0.406948 
-4.890748,0.406948 -1.239545,0 -2.46151,-0.07952 -3.663522,-0.229364 C 
29.191129,70.184015 23.525076,58.171633 23.525076,44.738654 23.525076,20.649443 
41.7414,1.1211936 64.212372,1.1211936 Z M 69.62 [...]
+         id="path2352" />
+      <path
+         d="m 41.762589,1.1211936 c 1.064296,0 2.118804,0.044379 
3.162607,0.1302161 -3.046523,1.558961 -5.903162,3.4745139 -8.52358,5.6968133 C 
19.254624,9.7205882 6.1097128,25.583465 6.1097128,44.738654 c 0,21.108568 
15.9624012,38.22057 35.6528762,38.22057 12.599746,0 23.672446,-7.007056 
30.013748,-17.583802 h 5.838515 C 70.748498,79.055727 57.26924,88.356116 
41.762589,88.356116 c -22.470907,0 -40.6871998,-19.52825 -40.6871998,-43.617462 
0,-24.089211 18.2162928,-43.6174604 40.6871998,-4 [...]
+         id="path2354" />
+    </g>
+    <g
+       id="letters">
+      <path
+         d="m 76.135411,34.409066 h 9.161042 V 29.36588 H 61.857537 v 5.043186 
h 9.161137 v 25.92317 h 5.116737 z"
+         id="path2346" />
+      <path
+         d="m 92.647571,52.856334 h 13.659009 l 2.93009,7.476072 h 5.36461 L 
101.89122,29.144903 H 97.187186 L 84.477089,60.332406 h 5.199533 z m 
11.802109,-4.822276 h -9.944771 l 4.951718,-12.386462 z"
+         id="path2362" />
+      <path
+         d="m 123.80641,29.366084 h -4.58038 v 30.966322 h 20.54728 v 
-4.910253 c -5.32227,0 -10.64463,0 -15.9669,0 z"
+         id="path2356" />
+      <path
+         d="m 166.4722,29.366084 h -21.37564 v 30.966322 h 21.58203 v 
-4.910253 h -16.54771 v -8.27275 h 14.48439 V 42.23925 h -14.48439 v -7.962811 
h 16.34132 z"
+         id="path2360" />
+      <path
+         d="m 191.19035,39.474593 c 0,1.59947 -0.53646,2.87535 
-1.61628,3.818883 -1.07281,0.95124 -2.52409,1.422837 -4.34678,1.422837 h 
-7.44851 V 34.276439 h 7.4073 c 1.9051,0 3.38376,0.435027 4.42939,1.312178 
1.05226,0.870258 1.57488,2.167734 1.57488,3.885976 z m 6.06602,20.857813 
-7.79911,-11.723191 c 1.01771,-0.294794 1.94631,-0.714813 2.78553,-1.260566 
0.83885,-0.545619 1.56122,-1.209263 2.16629,-1.990627 0.60541,-0.781738 
1.07981,-1.681096 1.42369,-2.698345 0.34378,-1.017553 0.5156 [...]
+         id="path2358" />
+    </g>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/static/images/SNB.png b/static/images/unsorted/SNB.png
similarity index 100%
rename from static/images/SNB.png
rename to static/images/unsorted/SNB.png
diff --git a/static/images/Screenshot_Balance_1.png 
b/static/images/unsorted/Screenshot_Balance_1.png
similarity index 100%
rename from static/images/Screenshot_Balance_1.png
rename to static/images/unsorted/Screenshot_Balance_1.png
diff --git a/static/images/Screenshot_Browser_Withdrawal_Pending.png 
b/static/images/unsorted/Screenshot_Browser_Withdrawal_Pending.png
similarity index 100%
rename from static/images/Screenshot_Browser_Withdrawal_Pending.png
rename to static/images/unsorted/Screenshot_Browser_Withdrawal_Pending.png
diff --git a/static/images/Screenshot_Confirm_Payment_1.png 
b/static/images/unsorted/Screenshot_Confirm_Payment_1.png
similarity index 100%
rename from static/images/Screenshot_Confirm_Payment_1.png
rename to static/images/unsorted/Screenshot_Confirm_Payment_1.png
diff --git a/static/images/Screenshot_Confirm_Withdrawal_1.png 
b/static/images/unsorted/Screenshot_Confirm_Withdrawal_1.png
similarity index 100%
rename from static/images/Screenshot_Confirm_Withdrawal_1.png
rename to static/images/unsorted/Screenshot_Confirm_Withdrawal_1.png
diff --git a/static/images/Screenshot_Terms_of_Service_1.png 
b/static/images/unsorted/Screenshot_Terms_of_Service_1.png
similarity index 100%
rename from static/images/Screenshot_Terms_of_Service_1.png
rename to static/images/unsorted/Screenshot_Terms_of_Service_1.png
diff --git a/static/images/Screenshot_Withdrawal_Confirmation_1.png 
b/static/images/unsorted/Screenshot_Withdrawal_Confirmation_1.png
similarity index 100%
rename from static/images/Screenshot_Withdrawal_Confirmation_1.png
rename to static/images/unsorted/Screenshot_Withdrawal_Confirmation_1.png
diff --git a/static/images/Screenshot_Withdrawal_Preparation_1.png 
b/static/images/unsorted/Screenshot_Withdrawal_Preparation_1.png
similarity index 100%
rename from static/images/Screenshot_Withdrawal_Preparation_1.png
rename to static/images/unsorted/Screenshot_Withdrawal_Preparation_1.png
diff --git a/static/images/Screenshot_history.png 
b/static/images/unsorted/Screenshot_history.png
similarity index 100%
rename from static/images/Screenshot_history.png
rename to static/images/unsorted/Screenshot_history.png
diff --git a/static/images/a1.png b/static/images/unsorted/a1.png
similarity index 100%
rename from static/images/a1.png
rename to static/images/unsorted/a1.png
diff --git a/static/images/a2.png b/static/images/unsorted/a2.png
similarity index 100%
rename from static/images/a2.png
rename to static/images/unsorted/a2.png
diff --git a/static/images/a3.png b/static/images/unsorted/a3.png
similarity index 100%
rename from static/images/a3.png
rename to static/images/unsorted/a3.png
diff --git a/static/images/a4.png b/static/images/unsorted/a4.png
similarity index 100%
rename from static/images/a4.png
rename to static/images/unsorted/a4.png
diff --git a/static/images/ara.png b/static/images/unsorted/ara.png
similarity index 100%
rename from static/images/ara.png
rename to static/images/unsorted/ara.png
diff --git a/static/images/araup.png b/static/images/unsorted/araup.png
similarity index 100%
rename from static/images/araup.png
rename to static/images/unsorted/araup.png
diff --git a/static/images/b1n.png b/static/images/unsorted/b1n.png
similarity index 100%
rename from static/images/b1n.png
rename to static/images/unsorted/b1n.png
diff --git a/static/images/baluebg.jpg b/static/images/unsorted/baluebg.jpg
similarity index 100%
rename from static/images/baluebg.jpg
rename to static/images/unsorted/baluebg.jpg
diff --git a/static/images/banicon-br.png 
b/static/images/unsorted/banicon-br.png
similarity index 100%
rename from static/images/banicon-br.png
rename to static/images/unsorted/banicon-br.png
diff --git a/static/images/banicon-chr.png 
b/static/images/unsorted/banicon-chr.png
similarity index 100%
rename from static/images/banicon-chr.png
rename to static/images/unsorted/banicon-chr.png
diff --git a/static/images/banicon-droid.png 
b/static/images/unsorted/banicon-droid.png
similarity index 100%
rename from static/images/banicon-droid.png
rename to static/images/unsorted/banicon-droid.png
diff --git a/static/images/banicon-edg.png 
b/static/images/unsorted/banicon-edg.png
similarity index 100%
rename from static/images/banicon-edg.png
rename to static/images/unsorted/banicon-edg.png
diff --git a/static/images/banicon-ff.png 
b/static/images/unsorted/banicon-ff.png
similarity index 100%
rename from static/images/banicon-ff.png
rename to static/images/unsorted/banicon-ff.png
diff --git a/static/images/banicon-ios.png 
b/static/images/unsorted/banicon-ios.png
similarity index 100%
rename from static/images/banicon-ios.png
rename to static/images/unsorted/banicon-ios.png
diff --git a/static/images/banicon-mac.png 
b/static/images/unsorted/banicon-mac.png
similarity index 100%
rename from static/images/banicon-mac.png
rename to static/images/unsorted/banicon-mac.png
diff --git a/static/images/banicon-tux.png 
b/static/images/unsorted/banicon-tux.png
similarity index 100%
rename from static/images/banicon-tux.png
rename to static/images/unsorted/banicon-tux.png
diff --git a/static/images/banicon-win.png 
b/static/images/unsorted/banicon-win.png
similarity index 100%
rename from static/images/banicon-win.png
rename to static/images/unsorted/banicon-win.png
diff --git a/static/images/bg1.png b/static/images/unsorted/bg1.png
similarity index 100%
rename from static/images/bg1.png
rename to static/images/unsorted/bg1.png
diff --git a/static/images/bg2.png b/static/images/unsorted/bg2.png
similarity index 100%
rename from static/images/bg2.png
rename to static/images/unsorted/bg2.png
diff --git a/static/images/bl.png b/static/images/unsorted/bl.png
similarity index 100%
rename from static/images/bl.png
rename to static/images/unsorted/bl.png
diff --git a/static/images/bullet.png b/static/images/unsorted/bullet.png
similarity index 100%
rename from static/images/bullet.png
rename to static/images/unsorted/bullet.png
diff --git a/static/images/chrt.png b/static/images/unsorted/chrt.png
similarity index 100%
rename from static/images/chrt.png
rename to static/images/unsorted/chrt.png
diff --git a/static/images/coin.png b/static/images/unsorted/coin.png
similarity index 100%
rename from static/images/coin.png
rename to static/images/unsorted/coin.png
diff --git a/static/images/contacticon1.png 
b/static/images/unsorted/contacticon1.png
similarity index 100%
rename from static/images/contacticon1.png
rename to static/images/unsorted/contacticon1.png
diff --git a/static/images/contacticon2.png 
b/static/images/unsorted/contacticon2.png
similarity index 100%
rename from static/images/contacticon2.png
rename to static/images/unsorted/contacticon2.png
diff --git a/static/images/contacticon3.png 
b/static/images/unsorted/contacticon3.png
similarity index 100%
rename from static/images/contacticon3.png
rename to static/images/unsorted/contacticon3.png
diff --git a/static/images/favicon.ico b/static/images/unsorted/favicon.ico
similarity index 100%
copy from static/images/favicon.ico
copy to static/images/unsorted/favicon.ico
diff --git a/static/images/favicon.png b/static/images/unsorted/favicon.png
similarity index 100%
copy from static/images/favicon.png
copy to static/images/unsorted/favicon.png
diff --git a/static/images/footlogo.png b/static/images/unsorted/footlogo.png
similarity index 100%
rename from static/images/footlogo.png
rename to static/images/unsorted/footlogo.png
diff --git a/static/images/footsos1.png b/static/images/unsorted/footsos1.png
similarity index 100%
rename from static/images/footsos1.png
rename to static/images/unsorted/footsos1.png
diff --git a/static/images/footsos2.png b/static/images/unsorted/footsos2.png
similarity index 100%
rename from static/images/footsos2.png
rename to static/images/unsorted/footsos2.png
diff --git a/static/images/footsos3.png b/static/images/unsorted/footsos3.png
similarity index 100%
rename from static/images/footsos3.png
rename to static/images/unsorted/footsos3.png
diff --git a/static/images/footsos4.png b/static/images/unsorted/footsos4.png
similarity index 100%
rename from static/images/footsos4.png
rename to static/images/unsorted/footsos4.png
diff --git a/static/images/icn1.png b/static/images/unsorted/icn1.png
similarity index 100%
rename from static/images/icn1.png
rename to static/images/unsorted/icn1.png
diff --git a/static/images/icn2.png b/static/images/unsorted/icn2.png
similarity index 100%
rename from static/images/icn2.png
rename to static/images/unsorted/icn2.png
diff --git a/static/images/icon1.png b/static/images/unsorted/icon1.png
similarity index 100%
rename from static/images/icon1.png
rename to static/images/unsorted/icon1.png
diff --git a/static/images/icon10.png b/static/images/unsorted/icon10.png
similarity index 100%
rename from static/images/icon10.png
rename to static/images/unsorted/icon10.png
diff --git a/static/images/icon11.png b/static/images/unsorted/icon11.png
similarity index 100%
rename from static/images/icon11.png
rename to static/images/unsorted/icon11.png
diff --git a/static/images/icon12.png b/static/images/unsorted/icon12.png
similarity index 100%
rename from static/images/icon12.png
rename to static/images/unsorted/icon12.png
diff --git a/static/images/icon13.png b/static/images/unsorted/icon13.png
similarity index 100%
rename from static/images/icon13.png
rename to static/images/unsorted/icon13.png
diff --git a/static/images/icon14.png b/static/images/unsorted/icon14.png
similarity index 100%
rename from static/images/icon14.png
rename to static/images/unsorted/icon14.png
diff --git a/static/images/icon15.png b/static/images/unsorted/icon15.png
similarity index 100%
rename from static/images/icon15.png
rename to static/images/unsorted/icon15.png
diff --git a/static/images/icon16.png b/static/images/unsorted/icon16.png
similarity index 100%
rename from static/images/icon16.png
rename to static/images/unsorted/icon16.png
diff --git a/static/images/icon17.png b/static/images/unsorted/icon17.png
similarity index 100%
rename from static/images/icon17.png
rename to static/images/unsorted/icon17.png
diff --git a/static/images/icon18.png b/static/images/unsorted/icon18.png
similarity index 100%
rename from static/images/icon18.png
rename to static/images/unsorted/icon18.png
diff --git a/static/images/icon19.png b/static/images/unsorted/icon19.png
similarity index 100%
rename from static/images/icon19.png
rename to static/images/unsorted/icon19.png
diff --git a/static/images/icon2.png b/static/images/unsorted/icon2.png
similarity index 100%
rename from static/images/icon2.png
rename to static/images/unsorted/icon2.png
diff --git a/static/images/icon20.png b/static/images/unsorted/icon20.png
similarity index 100%
rename from static/images/icon20.png
rename to static/images/unsorted/icon20.png
diff --git a/static/images/icon21.png b/static/images/unsorted/icon21.png
similarity index 100%
rename from static/images/icon21.png
rename to static/images/unsorted/icon21.png
diff --git a/static/images/icon3.png b/static/images/unsorted/icon3.png
similarity index 100%
rename from static/images/icon3.png
rename to static/images/unsorted/icon3.png
diff --git a/static/images/icon4.png b/static/images/unsorted/icon4.png
similarity index 100%
rename from static/images/icon4.png
rename to static/images/unsorted/icon4.png
diff --git a/static/images/icon5.png b/static/images/unsorted/icon5.png
similarity index 100%
rename from static/images/icon5.png
rename to static/images/unsorted/icon5.png
diff --git a/static/images/icon6.png b/static/images/unsorted/icon6.png
similarity index 100%
rename from static/images/icon6.png
rename to static/images/unsorted/icon6.png
diff --git a/static/images/icon7.png b/static/images/unsorted/icon7.png
similarity index 100%
rename from static/images/icon7.png
rename to static/images/unsorted/icon7.png
diff --git a/static/images/icon8.png b/static/images/unsorted/icon8.png
similarity index 100%
rename from static/images/icon8.png
rename to static/images/unsorted/icon8.png
diff --git a/static/images/icon9.png b/static/images/unsorted/icon9.png
similarity index 100%
rename from static/images/icon9.png
rename to static/images/unsorted/icon9.png
diff --git a/static/images/icona1.png b/static/images/unsorted/icona1.png
similarity index 100%
rename from static/images/icona1.png
rename to static/images/unsorted/icona1.png
diff --git a/static/images/icona1h.png b/static/images/unsorted/icona1h.png
similarity index 100%
rename from static/images/icona1h.png
rename to static/images/unsorted/icona1h.png
diff --git a/static/images/icona2.png b/static/images/unsorted/icona2.png
similarity index 100%
rename from static/images/icona2.png
rename to static/images/unsorted/icona2.png
diff --git a/static/images/icona2h.png b/static/images/unsorted/icona2h.png
similarity index 100%
rename from static/images/icona2h.png
rename to static/images/unsorted/icona2h.png
diff --git a/static/images/icons1.png b/static/images/unsorted/icons1.png
similarity index 100%
rename from static/images/icons1.png
rename to static/images/unsorted/icons1.png
diff --git a/static/images/icons2.png b/static/images/unsorted/icons2.png
similarity index 100%
rename from static/images/icons2.png
rename to static/images/unsorted/icons2.png
diff --git a/static/images/icons3.png b/static/images/unsorted/icons3.png
similarity index 100%
rename from static/images/icons3.png
rename to static/images/unsorted/icons3.png
diff --git a/static/images/icons4.png b/static/images/unsorted/icons4.png
similarity index 100%
rename from static/images/icons4.png
rename to static/images/unsorted/icons4.png
diff --git a/static/images/icons5.png b/static/images/unsorted/icons5.png
similarity index 100%
rename from static/images/icons5.png
rename to static/images/unsorted/icons5.png
diff --git a/static/images/icons6.png b/static/images/unsorted/icons6.png
similarity index 100%
rename from static/images/icons6.png
rename to static/images/unsorted/icons6.png
diff --git a/static/images/icons7.png b/static/images/unsorted/icons7.png
similarity index 100%
rename from static/images/icons7.png
rename to static/images/unsorted/icons7.png
diff --git a/static/images/icons8.png b/static/images/unsorted/icons8.png
similarity index 100%
rename from static/images/icons8.png
rename to static/images/unsorted/icons8.png
diff --git a/static/images/icons9.png b/static/images/unsorted/icons9.png
similarity index 100%
rename from static/images/icons9.png
rename to static/images/unsorted/icons9.png
diff --git a/static/images/insignicon1.png 
b/static/images/unsorted/insignicon1.png
similarity index 100%
rename from static/images/insignicon1.png
rename to static/images/unsorted/insignicon1.png
diff --git a/static/images/insignicon2.png 
b/static/images/unsorted/insignicon2.png
similarity index 100%
rename from static/images/insignicon2.png
rename to static/images/unsorted/insignicon2.png
diff --git a/static/images/insignicon3.png 
b/static/images/unsorted/insignicon3.png
similarity index 100%
rename from static/images/insignicon3.png
rename to static/images/unsorted/insignicon3.png
diff --git a/static/images/insignicon4.png 
b/static/images/unsorted/insignicon4.png
similarity index 100%
rename from static/images/insignicon4.png
rename to static/images/unsorted/insignicon4.png
diff --git a/static/images/insignicon5.png 
b/static/images/unsorted/insignicon5.png
similarity index 100%
rename from static/images/insignicon5.png
rename to static/images/unsorted/insignicon5.png
diff --git a/static/images/insignicon6.png 
b/static/images/unsorted/insignicon6.png
similarity index 100%
rename from static/images/insignicon6.png
rename to static/images/unsorted/insignicon6.png
diff --git a/static/images/languageicon.svg 
b/static/images/unsorted/languageicon.svg
similarity index 100%
rename from static/images/languageicon.svg
rename to static/images/unsorted/languageicon.svg
diff --git a/static/images/lap1.png b/static/images/unsorted/lap1.png
similarity index 100%
rename from static/images/lap1.png
rename to static/images/unsorted/lap1.png
diff --git a/static/images/logo.png b/static/images/unsorted/logo.png
similarity index 100%
rename from static/images/logo.png
rename to static/images/unsorted/logo.png
diff --git a/static/images/mob.jpg b/static/images/unsorted/mob.jpg
similarity index 100%
rename from static/images/mob.jpg
rename to static/images/unsorted/mob.jpg
diff --git a/static/images/mob1.png b/static/images/unsorted/mob1.png
similarity index 100%
rename from static/images/mob1.png
rename to static/images/unsorted/mob1.png
diff --git a/static/images/mobile.png b/static/images/unsorted/mobile.png
similarity index 100%
rename from static/images/mobile.png
rename to static/images/unsorted/mobile.png
diff --git a/static/images/mobile4.png b/static/images/unsorted/mobile4.png
similarity index 100%
rename from static/images/mobile4.png
rename to static/images/unsorted/mobile4.png
diff --git a/static/images/mobils1.png b/static/images/unsorted/mobils1.png
similarity index 100%
rename from static/images/mobils1.png
rename to static/images/unsorted/mobils1.png
diff --git a/static/images/mobpic1.png b/static/images/unsorted/mobpic1.png
similarity index 100%
rename from static/images/mobpic1.png
rename to static/images/unsorted/mobpic1.png
diff --git a/static/images/mobpic2.png b/static/images/unsorted/mobpic2.png
similarity index 100%
rename from static/images/mobpic2.png
rename to static/images/unsorted/mobpic2.png
diff --git a/static/images/mobpic3.png b/static/images/unsorted/mobpic3.png
similarity index 100%
rename from static/images/mobpic3.png
rename to static/images/unsorted/mobpic3.png
diff --git a/static/images/mobs3.png b/static/images/unsorted/mobs3.png
similarity index 100%
rename from static/images/mobs3.png
rename to static/images/unsorted/mobs3.png
diff --git a/static/images/mobs4.png b/static/images/unsorted/mobs4.png
similarity index 100%
rename from static/images/mobs4.png
rename to static/images/unsorted/mobs4.png
diff --git a/static/images/mobs5.png b/static/images/unsorted/mobs5.png
similarity index 100%
rename from static/images/mobs5.png
rename to static/images/unsorted/mobs5.png
diff --git a/static/images/mov.png b/static/images/unsorted/mov.png
similarity index 100%
rename from static/images/mov.png
rename to static/images/unsorted/mov.png
diff --git a/static/images/newpic1.png b/static/images/unsorted/newpic1.png
similarity index 100%
rename from static/images/newpic1.png
rename to static/images/unsorted/newpic1.png
diff --git a/static/images/newpic2.png b/static/images/unsorted/newpic2.png
similarity index 100%
rename from static/images/newpic2.png
rename to static/images/unsorted/newpic2.png
diff --git a/static/images/nicon1.png b/static/images/unsorted/nicon1.png
similarity index 100%
rename from static/images/nicon1.png
rename to static/images/unsorted/nicon1.png
diff --git a/static/images/nicon2.png b/static/images/unsorted/nicon2.png
similarity index 100%
rename from static/images/nicon2.png
rename to static/images/unsorted/nicon2.png
diff --git a/static/images/nicon3.png b/static/images/unsorted/nicon3.png
similarity index 100%
rename from static/images/nicon3.png
rename to static/images/unsorted/nicon3.png
diff --git a/static/images/nicon4.png b/static/images/unsorted/nicon4.png
similarity index 100%
rename from static/images/nicon4.png
rename to static/images/unsorted/nicon4.png
diff --git a/static/images/nicon5.png b/static/images/unsorted/nicon5.png
similarity index 100%
rename from static/images/nicon5.png
rename to static/images/unsorted/nicon5.png
diff --git a/static/images/nicon6.png b/static/images/unsorted/nicon6.png
similarity index 100%
rename from static/images/nicon6.png
rename to static/images/unsorted/nicon6.png
diff --git a/static/images/nicon7.png b/static/images/unsorted/nicon7.png
similarity index 100%
rename from static/images/nicon7.png
rename to static/images/unsorted/nicon7.png
diff --git a/static/images/nicon8.png b/static/images/unsorted/nicon8.png
similarity index 100%
rename from static/images/nicon8.png
rename to static/images/unsorted/nicon8.png
diff --git a/static/images/pdf.png b/static/images/unsorted/pdf.png
similarity index 100%
rename from static/images/pdf.png
rename to static/images/unsorted/pdf.png
diff --git a/static/images/pic1.jpg b/static/images/unsorted/pic1.jpg
similarity index 100%
rename from static/images/pic1.jpg
rename to static/images/unsorted/pic1.jpg
diff --git a/static/images/pic2.jpg b/static/images/unsorted/pic2.jpg
similarity index 100%
rename from static/images/pic2.jpg
rename to static/images/unsorted/pic2.jpg
diff --git a/static/images/pic3.jpg b/static/images/unsorted/pic3.jpg
similarity index 100%
rename from static/images/pic3.jpg
rename to static/images/unsorted/pic3.jpg
diff --git a/static/images/pica1.jpg b/static/images/unsorted/pica1.jpg
similarity index 100%
rename from static/images/pica1.jpg
rename to static/images/unsorted/pica1.jpg
diff --git a/static/images/pica2.jpg b/static/images/unsorted/pica2.jpg
similarity index 100%
rename from static/images/pica2.jpg
rename to static/images/unsorted/pica2.jpg
diff --git a/static/images/pls.png b/static/images/unsorted/pls.png
similarity index 100%
rename from static/images/pls.png
rename to static/images/unsorted/pls.png
diff --git a/static/images/pos-app.jpg b/static/images/unsorted/pos-app.jpg
similarity index 100%
rename from static/images/pos-app.jpg
rename to static/images/unsorted/pos-app.jpg
diff --git a/static/images/pretix.png b/static/images/unsorted/pretix.png
similarity index 100%
rename from static/images/pretix.png
rename to static/images/unsorted/pretix.png
diff --git a/static/images/screenshot_history_1.png 
b/static/images/unsorted/screenshot_history_1.png
similarity index 100%
rename from static/images/screenshot_history_1.png
rename to static/images/unsorted/screenshot_history_1.png
diff --git a/static/images/screenshot_withdrawal_preparation_1.png 
b/static/images/unsorted/screenshot_withdrawal_preparation_1.png
similarity index 100%
rename from static/images/screenshot_withdrawal_preparation_1.png
rename to static/images/unsorted/screenshot_withdrawal_preparation_1.png
diff --git a/static/images/sign.png b/static/images/unsorted/sign.png
similarity index 100%
rename from static/images/sign.png
rename to static/images/unsorted/sign.png
diff --git a/static/images/smlicon1.png b/static/images/unsorted/smlicon1.png
similarity index 100%
rename from static/images/smlicon1.png
rename to static/images/unsorted/smlicon1.png
diff --git a/static/images/smlicon2.png b/static/images/unsorted/smlicon2.png
similarity index 100%
rename from static/images/smlicon2.png
rename to static/images/unsorted/smlicon2.png
diff --git a/static/images/smlicon3.png b/static/images/unsorted/smlicon3.png
similarity index 100%
rename from static/images/smlicon3.png
rename to static/images/unsorted/smlicon3.png
diff --git a/static/images/smlicon4.png b/static/images/unsorted/smlicon4.png
similarity index 100%
rename from static/images/smlicon4.png
rename to static/images/unsorted/smlicon4.png
diff --git a/static/images/smlicon5.png b/static/images/unsorted/smlicon5.png
similarity index 100%
rename from static/images/smlicon5.png
rename to static/images/unsorted/smlicon5.png
diff --git a/static/images/smlicon6.png b/static/images/unsorted/smlicon6.png
similarity index 100%
rename from static/images/smlicon6.png
rename to static/images/unsorted/smlicon6.png
diff --git a/static/images/speclogo1.png b/static/images/unsorted/speclogo1.png
similarity index 100%
rename from static/images/speclogo1.png
rename to static/images/unsorted/speclogo1.png
diff --git a/static/images/speclogo2.png b/static/images/unsorted/speclogo2.png
similarity index 100%
rename from static/images/speclogo2.png
rename to static/images/unsorted/speclogo2.png
diff --git a/static/images/sw.png b/static/images/unsorted/sw.png
similarity index 100%
rename from static/images/sw.png
rename to static/images/unsorted/sw.png
diff --git a/static/images/swiss_coin_5.png 
b/static/images/unsorted/swiss_coin_5.png
similarity index 100%
rename from static/images/swiss_coin_5.png
rename to static/images/unsorted/swiss_coin_5.png
diff --git a/static/images/tick.png b/static/images/unsorted/tick.png
similarity index 100%
rename from static/images/tick.png
rename to static/images/unsorted/tick.png
diff --git a/static/images/tick2.png b/static/images/unsorted/tick2.png
similarity index 100%
rename from static/images/tick2.png
rename to static/images/unsorted/tick2.png
diff --git a/static/images/topbg.png b/static/images/unsorted/topbg.png
similarity index 100%
rename from static/images/topbg.png
rename to static/images/unsorted/topbg.png
diff --git a/static/images/topbg2.png b/static/images/unsorted/topbg2.png
similarity index 100%
rename from static/images/topbg2.png
rename to static/images/unsorted/topbg2.png
diff --git a/static/images/topbg3.png b/static/images/unsorted/topbg3.png
similarity index 100%
rename from static/images/topbg3.png
rename to static/images/unsorted/topbg3.png
diff --git a/static/images/topicon1.png b/static/images/unsorted/topicon1.png
similarity index 100%
rename from static/images/topicon1.png
rename to static/images/unsorted/topicon1.png
diff --git a/static/images/topicon2.png b/static/images/unsorted/topicon2.png
similarity index 100%
rename from static/images/topicon2.png
rename to static/images/unsorted/topicon2.png
diff --git a/static/images/topicon3.png b/static/images/unsorted/topicon3.png
similarity index 100%
rename from static/images/topicon3.png
rename to static/images/unsorted/topicon3.png
diff --git a/static/images/topicon4.png b/static/images/unsorted/topicon4.png
similarity index 100%
rename from static/images/topicon4.png
rename to static/images/unsorted/topicon4.png
diff --git a/static/images/topicon5.png b/static/images/unsorted/topicon5.png
similarity index 100%
rename from static/images/topicon5.png
rename to static/images/unsorted/topicon5.png
diff --git a/static/images/topicon6.png b/static/images/unsorted/topicon6.png
similarity index 100%
rename from static/images/topicon6.png
rename to static/images/unsorted/topicon6.png
diff --git a/static/images/tops-qr.png b/static/images/unsorted/tops-qr.png
similarity index 100%
rename from static/images/tops-qr.png
rename to static/images/unsorted/tops-qr.png
diff --git a/static/images/usrpic1.jpg b/static/images/unsorted/usrpic1.jpg
similarity index 100%
rename from static/images/usrpic1.jpg
rename to static/images/unsorted/usrpic1.jpg
diff --git a/static/images/usrpic2.jpg b/static/images/unsorted/usrpic2.jpg
similarity index 100%
rename from static/images/usrpic2.jpg
rename to static/images/unsorted/usrpic2.jpg
diff --git a/static/images/usrpic3.jpg b/static/images/unsorted/usrpic3.jpg
similarity index 100%
rename from static/images/usrpic3.jpg
rename to static/images/unsorted/usrpic3.jpg
diff --git a/static/images/usrpic4.jpg b/static/images/unsorted/usrpic4.jpg
similarity index 100%
rename from static/images/usrpic4.jpg
rename to static/images/unsorted/usrpic4.jpg
diff --git a/static/images/valuepic1.jpg b/static/images/unsorted/valuepic1.jpg
similarity index 100%
rename from static/images/valuepic1.jpg
rename to static/images/unsorted/valuepic1.jpg
diff --git a/static/images/valuepic2.jpg b/static/images/unsorted/valuepic2.jpg
similarity index 100%
rename from static/images/valuepic2.jpg
rename to static/images/unsorted/valuepic2.jpg
diff --git a/static/images/valuepic3.jpg b/static/images/unsorted/valuepic3.jpg
similarity index 100%
rename from static/images/valuepic3.jpg
rename to static/images/unsorted/valuepic3.jpg
diff --git a/static/images/valuepic4.jpg b/static/images/unsorted/valuepic4.jpg
similarity index 100%
rename from static/images/valuepic4.jpg
rename to static/images/unsorted/valuepic4.jpg
diff --git a/static/images/vs.png b/static/images/unsorted/vs.png
similarity index 100%
rename from static/images/vs.png
rename to static/images/unsorted/vs.png
diff --git a/static/images/woocommerce-settings.png 
b/static/images/unsorted/woocommerce-settings.png
similarity index 100%
rename from static/images/woocommerce-settings.png
rename to static/images/unsorted/woocommerce-settings.png
diff --git a/static/postcss/tailwind.postcss b/static/postcss/tailwind.postcss
new file mode 100644
index 0000000..b5c61c9
--- /dev/null
+++ b/static/postcss/tailwind.postcss
@@ -0,0 +1,3 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
diff --git a/tailwind.config.js b/tailwind.config.js
new file mode 100644
index 0000000..3da5d1b
--- /dev/null
+++ b/tailwind.config.js
@@ -0,0 +1,11 @@
+/** @type {import('tailwindcss').Config} */
+module.exports = {
+  content: [
+    'rendered/**/*.{html,tsx,jsx,ts,js}',
+    'rendered/*.{html,tsx,jsx,ts,js}',
+  ],
+  theme: {
+    extend: {},
+  },
+  plugins: [],
+};
diff --git a/template/index.html.j2 b/template/index.html.j2
index 35b940b..09f7f84 100644
--- a/template/index.html.j2
+++ b/template/index.html.j2
@@ -19,8 +19,8 @@
                                        </div>
                                        <div class="col-sm-5">
                                                <div class="ban_rt">
-                                                       <img src="{{ 
url_static('images/swiss_coin_5.png') }}" alt="Swiss Franc coin with GNU head 
as face value"
-                                                               width=100px>
+                                                       <img src="{{ 
url_static('images/unsorted/swiss_coin_5.png') }}"
+                                                               alt="Swiss 
Franc coin with GNU head as face value" width=100px>
                                                </div>
                                        </div>
                                </div>
@@ -39,7 +39,7 @@
                                        <div class="row">
                                                <div class="col-lg-6 col-sm-6">
                                                        <div 
class="digital_box">
-                                                               <img src="{{ 
url_static('images/newpic2.png') }}" alt="" />
+                                                               <img src="{{ 
url_static('images/unsorted/newpic2.png') }}" alt="" />
                                                                <b>{% trans 
%}For Users{% endtrans %}</b>
                                                                <p>{% trans 
%}Taler provides the world with a payment solution that definitely makes
                                                                        sense 
in a society where privacy, data safety, technical security, and reliability
@@ -50,7 +50,7 @@
                                                </div>
                                                <div class="col-lg-6 col-sm-6">
                                                        <div 
class="digital_box">
-                                                               <img src="{{ 
url_static('images/newpic1.png') }}" alt="" />
+                                                               <img src="{{ 
url_static('images/unsorted/newpic1.png') }}" alt="" />
                                                                <b>{% trans 
%}For Merchants{% endtrans %}</b>
                                                                <p>{% trans 
%}Taler offers efficient payments and backoffice procedures with security,
                                                                        privacy 
and data minimization by design. Payers and payees can rely on technology,
diff --git a/template/merchants.html.j2 b/template/merchants.html.j2
index 6d8c70c..3275171 100644
--- a/template/merchants.html.j2
+++ b/template/merchants.html.j2
@@ -19,7 +19,7 @@
                                </div>
                                <div class="col-sm-6">
                                        <div class="img">
-                                               <img src="{{ 
url_static('images/pica1.jpg') }}" alt="" width=400px>
+                                               <img src="{{ 
url_static('images/unsorted/pica1.jpg') }}" alt="" width=400px>
                                        </div>
                                </div>
                        </div>
@@ -37,7 +37,7 @@
                                <div class="col-sm-6">
                                        <div class="img">
                                                <!-- FIXME: find a better 
picture! -->
-                                               <img src="{{ 
url_static('images/valuepic1.jpg') }}" alt="" width=350px>
+                                               <img src="{{ 
url_static('images/unsorted/valuepic1.jpg') }}" alt="" width=350px>
                                        </div>
                                </div>
                        </div>
@@ -54,7 +54,7 @@
                                </div>
                                <div class="col-sm-6">
                                        <div class="img">
-                                               <img src="{{ 
url_static('images/woocommerce-settings.png') }}" alt="" width=350px>
+                                               <img src="{{ 
url_static('images/unsorted/woocommerce-settings.png') }}" alt="" width=350px>
                                        </div>
                                </div>
                        </div>
@@ -72,7 +72,7 @@
                                <div class="col-sm-6">
                                        <div class="img">
                                                <!-- FIXME: replace with 
screenshot of pretix settings? -->
-                                               <img src="{{ 
url_static('images/pretix.png') }}" alt="" width=350px>
+                                               <img src="{{ 
url_static('images/unsorted/pretix.png') }}" alt="" width=350px>
                                        </div>
                                </div>
                        </div>
@@ -90,7 +90,7 @@
                                </div>
                                <div class="col-sm-6">
                                        <div class="img">
-                                               <img src="{{ 
url_static('images/woocommerce-settings.png') }}" alt="" width=350px>
+                                               <img src="{{ 
url_static('images/unsorted/woocommerce-settings.png') }}" alt="" width=350px>
                                        </div>
                                </div>
                        </div>
@@ -110,7 +110,7 @@
                                <div class="col-sm-6">
                                        <div class="img">
                                                <!-- FIXME: why JPG!? -->
-                                               <img src="{{ 
url_static('images/pos-app.jpg') }}" alt="" width=350px>
+                                               <img src="{{ 
url_static('images/unsorted/pos-app.jpg') }}" alt="" width=350px>
                                        </div>
                                </div>
                        </div>
@@ -128,7 +128,7 @@
                                </div>
                                <div class="col-sm-6">
                                        <div class="img">
-                                               <img src="{{ 
url_static('images/valuepic4.jpg') }}" alt="" width=350px>
+                                               <img src="{{ 
url_static('images/unsorted/valuepic4.jpg') }}" alt="" width=350px>
                                        </div>
                                </div>
                        </div>
diff --git a/template/terms.html.j2 b/template/terms.html.j2
index 988e245..209b850 100644
--- a/template/terms.html.j2
+++ b/template/terms.html.j2
@@ -390,21 +390,21 @@
                                <div class="row">
                                        <div class="col-md-4">
                                                <div class="cotact_todayBox">
-                                                       <img src="{{ 
url_static('images/contacticon1.png') }}" alt="">
+                                                       <img src="{{ 
url_static('images/unsorted/contacticon1.png') }}" alt="">
                                                        <h4>{% trans %}Reach 
Us{% endtrans %}</h4>
                                                        <p>Taler Operations 
AG<br>Höheweg 80, CH-2502 Biel</p>
                                                </div>
                                        </div>
                                        <div class="col-md-4">
                                                <div class="cotact_todayBox">
-                                                       <img src="{{ 
url_static('images/contacticon2.png') }}" alt="">
+                                                       <img src="{{ 
url_static('images/unsorted/contacticon2.png') }}" alt="">
                                                        <h4>{% trans %}Email 
Us</h4>
                                                        <p>Get into touch with 
us via <br>one of the email contacts below{% endtrans %}</p>
                                                </div>
                                        </div>
                                        <div class="col-md-4">
                                                <div class="cotact_todayBox">
-                                                       <img src="{{ 
url_static('images/contacticon3.png') }}" alt="">
+                                                       <img src="{{ 
url_static('images/unsorted/contacticon3.png') }}" alt="">
                                                        <h4>{% trans %}Call 
Us{% endtrans %}</h4>
                                                        <p>{% trans %}Have a 
question?{% endtrans %} <br><a class="phone" href="tel:0041442801200">Tel: +41 
44 280
                                                                        
1200</a></p>
diff --git a/template/users.html.j2 b/template/users.html.j2
index a79af48..4c84335 100644
--- a/template/users.html.j2
+++ b/template/users.html.j2
@@ -21,20 +21,22 @@
                                </div>
                                <div class="col-sm-6">
                                        <a 
href="javascript:selectGroup('android')">
-                                               <img src="{{ 
url_static('images/banicon-droid.png') }}" alt="Android"></a>
+                                               <img src="{{ 
url_static('images/unsorted/banicon-droid.png') }}" alt="Android"></a>
                                        <a href="javascript:selectGroup('ios')">
-                                               <img src="{{ 
url_static('images/banicon-ios.png') }}" alt="iOS"></a>
+                                               <img src="{{ 
url_static('images/unsorted/banicon-ios.png') }}" alt="iOS"></a>
                                        <a 
href="javascript:selectGroup('firefox')">
-                                               <img src="{{ 
url_static('images/banicon-ff.png') }}" alt="Firefox"></a>
+                                               <img src="{{ 
url_static('images/unsorted/banicon-ff.png') }}" alt="Firefox"></a>
                                        <a 
href="javascript:selectGroup('chrome')">
-                                               <img src="{{ 
url_static('images/banicon-chr.png') }}" alt="Chrome"></a>
+                                               <img src="{{ 
url_static('images/unsorted/banicon-chr.png') }}" alt="Chrome"></a>
 
                                        <div class="img">
                                                <!-- FIXME: General welcome 
screen of wallet -->
-                                               <img class="group-android" 
src="{{ url_static('images/tops-qr.png') }}" alt="" width=350px>
-                                               <img class="group-chrome" 
src="{{ url_static('images/screenshot_history_1.png') }}" alt="" width=450px>
-                                               <img class="group-firefox" 
src="{{ url_static('images/tops-qr.png') }}" alt="" width=350px>
-                                               <img class="group-ios" src="{{ 
url_static('images/Screenshot_Balance_1.png') }}" alt="" width=350px>
+                                               <img class="group-android" 
src="{{ url_static('images/unsorted/tops-qr.png') }}" alt="" width=350px>
+                                               <img class="group-chrome" 
src="{{ url_static('images/unsorted/screenshot_history_1.png') }}" alt=""
+                                                       width=450px>
+                                               <img class="group-firefox" 
src="{{ url_static('images/unsorted/tops-qr.png') }}" alt="" width=350px>
+                                               <img class="group-ios" src="{{ 
url_static('images/unsorted/Screenshot_Balance_1.png') }}" alt=""
+                                                       width=350px>
                                        </div>
                                </div>
                        </div>
@@ -53,7 +55,7 @@
                                <div class="col-sm-6">
                                        <div class="img">
                                                <!-- FIXME: show correct QR 
code to scan! -->
-                                               <img src="{{ 
url_static('images/tops-qr.png') }}" alt="" width=350px>
+                                               <img src="{{ 
url_static('images/unsorted/tops-qr.png') }}" alt="" width=350px>
                                        </div>
                                </div>
                        </div>
@@ -69,7 +71,7 @@
                                <div class="col-sm-6">
                                        <div class="img">
                                                <!-- FIXME: Dialog: "Specify 
the amount and the origin" -->
-                                               <img src="{{ 
url_static('images/Screenshot_Withdrawal_Preparation_1.png') }}" alt="" 
width=350px>
+                                               <img src="{{ 
url_static('images/unsorted/Screenshot_Withdrawal_Preparation_1.png') }}" 
alt="" width=350px>
                                        </div>
                                </div>
                        </div>
@@ -86,10 +88,11 @@
                                <div class="col-sm-6">
                                        <div class="img">
                                                <!-- FIXME: Dialog: "Accept 
ToS" -->
-                                               <img class="group-android" 
src="{{ url_static('images/tops-qr.png') }}" alt="" width=350px>
-                                               <img class="group-chrome" 
src="{{ url_static('images/screenshot_history_1.png') }}" alt="" width=450px>
-                                               <img class="group-firefox" 
src="{{ url_static('images/tops-qr.png') }}" alt="" width=350px>
-                                               <img class="group-ios" src="{{ 
url_static('images/Screenshot_Terms_of_Service_1.png') }}" alt=""
+                                               <img class="group-android" 
src="{{ url_static('images/unsorted/tops-qr.png') }}" alt="" width=350px>
+                                               <img class="group-chrome" 
src="{{ url_static('images/unsorted/screenshot_history_1.png') }}" alt=""
+                                                       width=450px>
+                                               <img class="group-firefox" 
src="{{ url_static('images/unsorted/tops-qr.png') }}" alt="" width=350px>
+                                               <img class="group-ios" src="{{ 
url_static('images/unsorted/Screenshot_Terms_of_Service_1.png') }}" alt=""
                                                        width=350px>
                                        </div>
                                </div>
@@ -106,11 +109,12 @@
                                <div class="col-sm-6">
                                        <div class="img">
                                                <!-- FIXME: Dialog: "Digital 
cash withdrawal" -->
-                                               <img class="group-android" 
src="{{ url_static('images/tops-qr.png') }}" alt="" width=350px>
-                                               <img class="group-chrome" 
src="{{ url_static('images/screenshot_history_1.png') }}" alt="" width=450px>
-                                               <img class="group-firefox" 
src="{{ url_static('images/tops-qr.png') }}" alt="" width=350px>
-                                               <img class="group-ios" src="{{ 
url_static('images/Screenshot_Withdrawal_Confirmation_1.png') }}" alt=""
-                                                       width=350px>
+                                               <img class="group-android" 
src="{{ url_static('images/unsorted/tops-qr.png') }}" alt="" width=350px>
+                                               <img class="group-chrome" 
src="{{ url_static('images/unsorted/screenshot_history_1.png') }}" alt=""
+                                                       width=450px>
+                                               <img class="group-firefox" 
src="{{ url_static('images/unsorted/tops-qr.png') }}" alt="" width=350px>
+                                               <img class="group-ios" src="{{ 
url_static('images/unsorted/Screenshot_Withdrawal_Confirmation_1.png') }}"
+                                                       alt="" width=350px>
                                        </div>
                                </div>
                        </div>
@@ -127,7 +131,7 @@
                                <div class="col-sm-6">
                                        <div class="img">
                                                <!-- FIXME: Dialog: "Withdraw 
screen (no good title!)" -->
-                                               <img src="{{ 
url_static('images/Screenshot_Browser_Withdrawal_Pending.png') }}" alt="" 
width=550px>
+                                               <img src="{{ 
url_static('images/unsorted/Screenshot_Browser_Withdrawal_Pending.png') }}" 
alt="" width=550px>
                                        </div>
                                </div>
                        </div>
@@ -145,7 +149,7 @@
                                <div class="col-sm-6">
                                        <div class="img">
                                                <!-- FIXME: Dialog: "Withdraw 
finished screen (no good title!)" -->
-                                               <img src="{{ 
url_static('images/Screenshot_Withdrawal_Preparation_1.png') }}" alt="" 
width=350px>
+                                               <img src="{{ 
url_static('images/unsorted/Screenshot_Withdrawal_Preparation_1.png') }}" 
alt="" width=350px>
                                        </div>
                                </div>
                        </div>
@@ -164,7 +168,7 @@
                                <div class="col-sm-6">
                                        <div class="img">
                                                <!-- FIXME: Dialog: "QR scan" 
-->
-                                               <img src="{{ 
url_static('images/Screenshot_Withdrawal_Preparation_1.png') }}" alt="" 
width=350px>
+                                               <img src="{{ 
url_static('images/unsorted/Screenshot_Withdrawal_Preparation_1.png') }}" 
alt="" width=350px>
                                        </div>
                                </div>
                        </div>
@@ -182,10 +186,12 @@
                                <div class="col-sm-6">
                                        <div class="img">
                                                <!-- FIXME: Dialog: "Digital 
cash payment" -->
-                                               <img class="group-android" 
src="{{ url_static('images/tops-qr.png') }}" alt="" width=350px>
-                                               <img class="group-chrome" 
src="{{ url_static('images/screenshot_history_1.png') }}" alt="" width=450px>
-                                               <img class="group-firefox" 
src="{{ url_static('images/tops-qr.png') }}" alt="" width=350px>
-                                               <img class="group-ios" src="{{ 
url_static('images/Screenshot_Confirm_Payment_1.png') }}" alt="" width=350px>
+                                               <img class="group-android" 
src="{{ url_static('images/unsorted/tops-qr.png') }}" alt="" width=350px>
+                                               <img class="group-chrome" 
src="{{ url_static('images/unsorted/screenshot_history_1.png') }}" alt=""
+                                                       width=450px>
+                                               <img class="group-firefox" 
src="{{ url_static('images/unsorted/tops-qr.png') }}" alt="" width=350px>
+                                               <img class="group-ios" src="{{ 
url_static('images/unsorted/Screenshot_Confirm_Payment_1.png') }}" alt=""
+                                                       width=350px>
                                        </div>
                                </div>
                        </div>
@@ -202,7 +208,7 @@
                                <div class="col-sm-6">
                                        <div class="img">
                                                <!-- FIXME: Dialog: "Deletion" 
-->
-                                               <img src="{{ 
url_static('images/screenshot_history_1.png') }}" alt="" width=450px>
+                                               <img src="{{ 
url_static('images/unsorted/screenshot_history_1.png') }}" alt="" width=450px>
                                        </div>
                                </div>
                        </div>

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]