summaryrefslogtreecommitdiffstats
path: root/assets
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--assets/bubble.pngbin0 -> 232874 bytes
-rw-r--r--assets/caw.pngbin0 -> 1106705 bytes
-rw-r--r--assets/fonts/Diolce-Regular.woff2bin0 -> 20584 bytes
-rw-r--r--assets/fonts/Millimetre-Regular.otfbin0 -> 56956 bytes
-rw-r--r--assets/fonts/k2d-1.woff2bin0 -> 12100 bytes
-rw-r--r--assets/fonts/k2d-10.woff2bin0 -> 5020 bytes
-rw-r--r--assets/fonts/k2d-11.woff2bin0 -> 12824 bytes
-rw-r--r--assets/fonts/k2d-12.woff2bin0 -> 15600 bytes
-rw-r--r--assets/fonts/k2d-13.woff2bin0 -> 12196 bytes
-rw-r--r--assets/fonts/k2d-14.woff2bin0 -> 4984 bytes
-rw-r--r--assets/fonts/k2d-15.woff2bin0 -> 12532 bytes
-rw-r--r--assets/fonts/k2d-16.woff2bin0 -> 15060 bytes
-rw-r--r--assets/fonts/k2d-17.woff2bin0 -> 12536 bytes
-rw-r--r--assets/fonts/k2d-18.woff2bin0 -> 5040 bytes
-rw-r--r--assets/fonts/k2d-19.woff2bin0 -> 12980 bytes
-rw-r--r--assets/fonts/k2d-2.woff2bin0 -> 4864 bytes
-rw-r--r--assets/fonts/k2d-20.woff2bin0 -> 15608 bytes
-rw-r--r--assets/fonts/k2d-21.woff2bin0 -> 12524 bytes
-rw-r--r--assets/fonts/k2d-22.woff2bin0 -> 5100 bytes
-rw-r--r--assets/fonts/k2d-23.woff2bin0 -> 12912 bytes
-rw-r--r--assets/fonts/k2d-24.woff2bin0 -> 15592 bytes
-rw-r--r--assets/fonts/k2d-25.woff2bin0 -> 12504 bytes
-rw-r--r--assets/fonts/k2d-26.woff2bin0 -> 5084 bytes
-rw-r--r--assets/fonts/k2d-27.woff2bin0 -> 13016 bytes
-rw-r--r--assets/fonts/k2d-28.woff2bin0 -> 15728 bytes
-rw-r--r--assets/fonts/k2d-29.woff2bin0 -> 11892 bytes
-rw-r--r--assets/fonts/k2d-3.woff2bin0 -> 12468 bytes
-rw-r--r--assets/fonts/k2d-30.woff2bin0 -> 5076 bytes
-rw-r--r--assets/fonts/k2d-31.woff2bin0 -> 12772 bytes
-rw-r--r--assets/fonts/k2d-32.woff2bin0 -> 15156 bytes
-rw-r--r--assets/fonts/k2d-33.woff2bin0 -> 10876 bytes
-rw-r--r--assets/fonts/k2d-34.woff2bin0 -> 4544 bytes
-rw-r--r--assets/fonts/k2d-35.woff2bin0 -> 11552 bytes
-rw-r--r--assets/fonts/k2d-36.woff2bin0 -> 13840 bytes
-rw-r--r--assets/fonts/k2d-37.woff2bin0 -> 10968 bytes
-rw-r--r--assets/fonts/k2d-38.woff2bin0 -> 4656 bytes
-rw-r--r--assets/fonts/k2d-39.woff2bin0 -> 11872 bytes
-rw-r--r--assets/fonts/k2d-4.woff2bin0 -> 15068 bytes
-rw-r--r--assets/fonts/k2d-40.woff2bin0 -> 14216 bytes
-rw-r--r--assets/fonts/k2d-41.woff2bin0 -> 10944 bytes
-rw-r--r--assets/fonts/k2d-42.woff2bin0 -> 4744 bytes
-rw-r--r--assets/fonts/k2d-43.woff2bin0 -> 11976 bytes
-rw-r--r--assets/fonts/k2d-44.woff2bin0 -> 14344 bytes
-rw-r--r--assets/fonts/k2d-45.woff2bin0 -> 10484 bytes
-rw-r--r--assets/fonts/k2d-46.woff2bin0 -> 4676 bytes
-rw-r--r--assets/fonts/k2d-47.woff2bin0 -> 11768 bytes
-rw-r--r--assets/fonts/k2d-48.woff2bin0 -> 13812 bytes
-rw-r--r--assets/fonts/k2d-49.woff2bin0 -> 10872 bytes
-rw-r--r--assets/fonts/k2d-5.woff2bin0 -> 12504 bytes
-rw-r--r--assets/fonts/k2d-50.woff2bin0 -> 4720 bytes
-rw-r--r--assets/fonts/k2d-51.woff2bin0 -> 12116 bytes
-rw-r--r--assets/fonts/k2d-52.woff2bin0 -> 14488 bytes
-rw-r--r--assets/fonts/k2d-53.woff2bin0 -> 10760 bytes
-rw-r--r--assets/fonts/k2d-54.woff2bin0 -> 4740 bytes
-rw-r--r--assets/fonts/k2d-55.woff2bin0 -> 12016 bytes
-rw-r--r--assets/fonts/k2d-56.woff2bin0 -> 14348 bytes
-rw-r--r--assets/fonts/k2d-57.woff2bin0 -> 10804 bytes
-rw-r--r--assets/fonts/k2d-58.woff2bin0 -> 4732 bytes
-rw-r--r--assets/fonts/k2d-59.woff2bin0 -> 12140 bytes
-rw-r--r--assets/fonts/k2d-6.woff2bin0 -> 4936 bytes
-rw-r--r--assets/fonts/k2d-60.woff2bin0 -> 14564 bytes
-rw-r--r--assets/fonts/k2d-61.woff2bin0 -> 10116 bytes
-rw-r--r--assets/fonts/k2d-62.woff2bin0 -> 4616 bytes
-rw-r--r--assets/fonts/k2d-63.woff2bin0 -> 11860 bytes
-rw-r--r--assets/fonts/k2d-64.woff2bin0 -> 13736 bytes
-rw-r--r--assets/fonts/k2d-7.woff2bin0 -> 12764 bytes
-rw-r--r--assets/fonts/k2d-8.woff2bin0 -> 15540 bytes
-rw-r--r--assets/fonts/k2d-9.woff2bin0 -> 12584 bytes
-rw-r--r--assets/icon.pngbin0 -> 33964 bytes
-rw-r--r--assets/icons/addcontact24.svg5
-rw-r--r--assets/icons/attachment24.svg3
-rw-r--r--assets/icons/available16color.svg3
-rw-r--r--assets/icons/away16.svg10
-rw-r--r--assets/icons/away16color.svg10
-rw-r--r--assets/icons/bubble16.svg3
-rw-r--r--assets/icons/bubble16color.svg3
-rw-r--r--assets/icons/bubble24.svg10
-rw-r--r--assets/icons/chat16color.svg10
-rw-r--r--assets/icons/close24.svg4
-rw-r--r--assets/icons/contact24.svg4
-rw-r--r--assets/icons/delivered16.svg4
-rw-r--r--assets/icons/dnd16.svg3
-rw-r--r--assets/icons/dnd16color.svg3
-rw-r--r--assets/icons/error16color.svg10
-rw-r--r--assets/icons/forward24.svg10
-rw-r--r--assets/icons/heart24.svg3
-rw-r--r--assets/icons/newbubble24.svg4
-rw-r--r--assets/icons/reply24.svg10
-rw-r--r--assets/icons/sending16.svg5
-rw-r--r--assets/icons/sent16.svg3
-rw-r--r--assets/icons/xa16color.svg10
-rw-r--r--assets/lovely.svg3
-rw-r--r--assets/macaw-icon.pngbin33964 -> 1300928 bytes
-rw-r--r--assets/no-avatar.pngbin0 -> 34768 bytes
-rw-r--r--assets/overlayscrollbars.browser.es6.min.js10
-rw-r--r--assets/overlayscrollbars.min.css9
-rw-r--r--assets/style.scss1605
97 files changed, 1757 insertions, 0 deletions
diff --git a/assets/bubble.png b/assets/bubble.png
new file mode 100644
index 0000000..003a141
--- /dev/null
+++ b/assets/bubble.png
Binary files differ
diff --git a/assets/caw.png b/assets/caw.png
new file mode 100644
index 0000000..0e26169
--- /dev/null
+++ b/assets/caw.png
Binary files differ
diff --git a/assets/fonts/Diolce-Regular.woff2 b/assets/fonts/Diolce-Regular.woff2
new file mode 100644
index 0000000..e38e949
--- /dev/null
+++ b/assets/fonts/Diolce-Regular.woff2
Binary files differ
diff --git a/assets/fonts/Millimetre-Regular.otf b/assets/fonts/Millimetre-Regular.otf
new file mode 100644
index 0000000..71f31b7
--- /dev/null
+++ b/assets/fonts/Millimetre-Regular.otf
Binary files differ
diff --git a/assets/fonts/k2d-1.woff2 b/assets/fonts/k2d-1.woff2
new file mode 100644
index 0000000..0762015
--- /dev/null
+++ b/assets/fonts/k2d-1.woff2
Binary files differ
diff --git a/assets/fonts/k2d-10.woff2 b/assets/fonts/k2d-10.woff2
new file mode 100644
index 0000000..715af48
--- /dev/null
+++ b/assets/fonts/k2d-10.woff2
Binary files differ
diff --git a/assets/fonts/k2d-11.woff2 b/assets/fonts/k2d-11.woff2
new file mode 100644
index 0000000..dc5570f
--- /dev/null
+++ b/assets/fonts/k2d-11.woff2
Binary files differ
diff --git a/assets/fonts/k2d-12.woff2 b/assets/fonts/k2d-12.woff2
new file mode 100644
index 0000000..a690e54
--- /dev/null
+++ b/assets/fonts/k2d-12.woff2
Binary files differ
diff --git a/assets/fonts/k2d-13.woff2 b/assets/fonts/k2d-13.woff2
new file mode 100644
index 0000000..1b52974
--- /dev/null
+++ b/assets/fonts/k2d-13.woff2
Binary files differ
diff --git a/assets/fonts/k2d-14.woff2 b/assets/fonts/k2d-14.woff2
new file mode 100644
index 0000000..4eb449b
--- /dev/null
+++ b/assets/fonts/k2d-14.woff2
Binary files differ
diff --git a/assets/fonts/k2d-15.woff2 b/assets/fonts/k2d-15.woff2
new file mode 100644
index 0000000..714a104
--- /dev/null
+++ b/assets/fonts/k2d-15.woff2
Binary files differ
diff --git a/assets/fonts/k2d-16.woff2 b/assets/fonts/k2d-16.woff2
new file mode 100644
index 0000000..14c3b72
--- /dev/null
+++ b/assets/fonts/k2d-16.woff2
Binary files differ
diff --git a/assets/fonts/k2d-17.woff2 b/assets/fonts/k2d-17.woff2
new file mode 100644
index 0000000..229e9a5
--- /dev/null
+++ b/assets/fonts/k2d-17.woff2
Binary files differ
diff --git a/assets/fonts/k2d-18.woff2 b/assets/fonts/k2d-18.woff2
new file mode 100644
index 0000000..3ddcb33
--- /dev/null
+++ b/assets/fonts/k2d-18.woff2
Binary files differ
diff --git a/assets/fonts/k2d-19.woff2 b/assets/fonts/k2d-19.woff2
new file mode 100644
index 0000000..945aeb8
--- /dev/null
+++ b/assets/fonts/k2d-19.woff2
Binary files differ
diff --git a/assets/fonts/k2d-2.woff2 b/assets/fonts/k2d-2.woff2
new file mode 100644
index 0000000..530d179
--- /dev/null
+++ b/assets/fonts/k2d-2.woff2
Binary files differ
diff --git a/assets/fonts/k2d-20.woff2 b/assets/fonts/k2d-20.woff2
new file mode 100644
index 0000000..16602ee
--- /dev/null
+++ b/assets/fonts/k2d-20.woff2
Binary files differ
diff --git a/assets/fonts/k2d-21.woff2 b/assets/fonts/k2d-21.woff2
new file mode 100644
index 0000000..117a373
--- /dev/null
+++ b/assets/fonts/k2d-21.woff2
Binary files differ
diff --git a/assets/fonts/k2d-22.woff2 b/assets/fonts/k2d-22.woff2
new file mode 100644
index 0000000..1375154
--- /dev/null
+++ b/assets/fonts/k2d-22.woff2
Binary files differ
diff --git a/assets/fonts/k2d-23.woff2 b/assets/fonts/k2d-23.woff2
new file mode 100644
index 0000000..4b803e3
--- /dev/null
+++ b/assets/fonts/k2d-23.woff2
Binary files differ
diff --git a/assets/fonts/k2d-24.woff2 b/assets/fonts/k2d-24.woff2
new file mode 100644
index 0000000..67922b6
--- /dev/null
+++ b/assets/fonts/k2d-24.woff2
Binary files differ
diff --git a/assets/fonts/k2d-25.woff2 b/assets/fonts/k2d-25.woff2
new file mode 100644
index 0000000..4a3f885
--- /dev/null
+++ b/assets/fonts/k2d-25.woff2
Binary files differ
diff --git a/assets/fonts/k2d-26.woff2 b/assets/fonts/k2d-26.woff2
new file mode 100644
index 0000000..14354c8
--- /dev/null
+++ b/assets/fonts/k2d-26.woff2
Binary files differ
diff --git a/assets/fonts/k2d-27.woff2 b/assets/fonts/k2d-27.woff2
new file mode 100644
index 0000000..516392f
--- /dev/null
+++ b/assets/fonts/k2d-27.woff2
Binary files differ
diff --git a/assets/fonts/k2d-28.woff2 b/assets/fonts/k2d-28.woff2
new file mode 100644
index 0000000..5ae329f
--- /dev/null
+++ b/assets/fonts/k2d-28.woff2
Binary files differ
diff --git a/assets/fonts/k2d-29.woff2 b/assets/fonts/k2d-29.woff2
new file mode 100644
index 0000000..4d013f6
--- /dev/null
+++ b/assets/fonts/k2d-29.woff2
Binary files differ
diff --git a/assets/fonts/k2d-3.woff2 b/assets/fonts/k2d-3.woff2
new file mode 100644
index 0000000..6ac5214
--- /dev/null
+++ b/assets/fonts/k2d-3.woff2
Binary files differ
diff --git a/assets/fonts/k2d-30.woff2 b/assets/fonts/k2d-30.woff2
new file mode 100644
index 0000000..5d2f74b
--- /dev/null
+++ b/assets/fonts/k2d-30.woff2
Binary files differ
diff --git a/assets/fonts/k2d-31.woff2 b/assets/fonts/k2d-31.woff2
new file mode 100644
index 0000000..400134e
--- /dev/null
+++ b/assets/fonts/k2d-31.woff2
Binary files differ
diff --git a/assets/fonts/k2d-32.woff2 b/assets/fonts/k2d-32.woff2
new file mode 100644
index 0000000..635281e
--- /dev/null
+++ b/assets/fonts/k2d-32.woff2
Binary files differ
diff --git a/assets/fonts/k2d-33.woff2 b/assets/fonts/k2d-33.woff2
new file mode 100644
index 0000000..a4d4a59
--- /dev/null
+++ b/assets/fonts/k2d-33.woff2
Binary files differ
diff --git a/assets/fonts/k2d-34.woff2 b/assets/fonts/k2d-34.woff2
new file mode 100644
index 0000000..eb8c874
--- /dev/null
+++ b/assets/fonts/k2d-34.woff2
Binary files differ
diff --git a/assets/fonts/k2d-35.woff2 b/assets/fonts/k2d-35.woff2
new file mode 100644
index 0000000..e294b67
--- /dev/null
+++ b/assets/fonts/k2d-35.woff2
Binary files differ
diff --git a/assets/fonts/k2d-36.woff2 b/assets/fonts/k2d-36.woff2
new file mode 100644
index 0000000..da5fb33
--- /dev/null
+++ b/assets/fonts/k2d-36.woff2
Binary files differ
diff --git a/assets/fonts/k2d-37.woff2 b/assets/fonts/k2d-37.woff2
new file mode 100644
index 0000000..072e115
--- /dev/null
+++ b/assets/fonts/k2d-37.woff2
Binary files differ
diff --git a/assets/fonts/k2d-38.woff2 b/assets/fonts/k2d-38.woff2
new file mode 100644
index 0000000..85de65e
--- /dev/null
+++ b/assets/fonts/k2d-38.woff2
Binary files differ
diff --git a/assets/fonts/k2d-39.woff2 b/assets/fonts/k2d-39.woff2
new file mode 100644
index 0000000..3c216ca
--- /dev/null
+++ b/assets/fonts/k2d-39.woff2
Binary files differ
diff --git a/assets/fonts/k2d-4.woff2 b/assets/fonts/k2d-4.woff2
new file mode 100644
index 0000000..149837d
--- /dev/null
+++ b/assets/fonts/k2d-4.woff2
Binary files differ
diff --git a/assets/fonts/k2d-40.woff2 b/assets/fonts/k2d-40.woff2
new file mode 100644
index 0000000..2a50843
--- /dev/null
+++ b/assets/fonts/k2d-40.woff2
Binary files differ
diff --git a/assets/fonts/k2d-41.woff2 b/assets/fonts/k2d-41.woff2
new file mode 100644
index 0000000..1db6313
--- /dev/null
+++ b/assets/fonts/k2d-41.woff2
Binary files differ
diff --git a/assets/fonts/k2d-42.woff2 b/assets/fonts/k2d-42.woff2
new file mode 100644
index 0000000..365ab35
--- /dev/null
+++ b/assets/fonts/k2d-42.woff2
Binary files differ
diff --git a/assets/fonts/k2d-43.woff2 b/assets/fonts/k2d-43.woff2
new file mode 100644
index 0000000..49de7b4
--- /dev/null
+++ b/assets/fonts/k2d-43.woff2
Binary files differ
diff --git a/assets/fonts/k2d-44.woff2 b/assets/fonts/k2d-44.woff2
new file mode 100644
index 0000000..586639d
--- /dev/null
+++ b/assets/fonts/k2d-44.woff2
Binary files differ
diff --git a/assets/fonts/k2d-45.woff2 b/assets/fonts/k2d-45.woff2
new file mode 100644
index 0000000..9b0e17d
--- /dev/null
+++ b/assets/fonts/k2d-45.woff2
Binary files differ
diff --git a/assets/fonts/k2d-46.woff2 b/assets/fonts/k2d-46.woff2
new file mode 100644
index 0000000..a1ff3d3
--- /dev/null
+++ b/assets/fonts/k2d-46.woff2
Binary files differ
diff --git a/assets/fonts/k2d-47.woff2 b/assets/fonts/k2d-47.woff2
new file mode 100644
index 0000000..60c7aab
--- /dev/null
+++ b/assets/fonts/k2d-47.woff2
Binary files differ
diff --git a/assets/fonts/k2d-48.woff2 b/assets/fonts/k2d-48.woff2
new file mode 100644
index 0000000..5c7db90
--- /dev/null
+++ b/assets/fonts/k2d-48.woff2
Binary files differ
diff --git a/assets/fonts/k2d-49.woff2 b/assets/fonts/k2d-49.woff2
new file mode 100644
index 0000000..52fa1f3
--- /dev/null
+++ b/assets/fonts/k2d-49.woff2
Binary files differ
diff --git a/assets/fonts/k2d-5.woff2 b/assets/fonts/k2d-5.woff2
new file mode 100644
index 0000000..fa98a3f
--- /dev/null
+++ b/assets/fonts/k2d-5.woff2
Binary files differ
diff --git a/assets/fonts/k2d-50.woff2 b/assets/fonts/k2d-50.woff2
new file mode 100644
index 0000000..25167d2
--- /dev/null
+++ b/assets/fonts/k2d-50.woff2
Binary files differ
diff --git a/assets/fonts/k2d-51.woff2 b/assets/fonts/k2d-51.woff2
new file mode 100644
index 0000000..08c1e97
--- /dev/null
+++ b/assets/fonts/k2d-51.woff2
Binary files differ
diff --git a/assets/fonts/k2d-52.woff2 b/assets/fonts/k2d-52.woff2
new file mode 100644
index 0000000..a137c1e
--- /dev/null
+++ b/assets/fonts/k2d-52.woff2
Binary files differ
diff --git a/assets/fonts/k2d-53.woff2 b/assets/fonts/k2d-53.woff2
new file mode 100644
index 0000000..da5174f
--- /dev/null
+++ b/assets/fonts/k2d-53.woff2
Binary files differ
diff --git a/assets/fonts/k2d-54.woff2 b/assets/fonts/k2d-54.woff2
new file mode 100644
index 0000000..dda2732
--- /dev/null
+++ b/assets/fonts/k2d-54.woff2
Binary files differ
diff --git a/assets/fonts/k2d-55.woff2 b/assets/fonts/k2d-55.woff2
new file mode 100644
index 0000000..d942dbe
--- /dev/null
+++ b/assets/fonts/k2d-55.woff2
Binary files differ
diff --git a/assets/fonts/k2d-56.woff2 b/assets/fonts/k2d-56.woff2
new file mode 100644
index 0000000..95cf728
--- /dev/null
+++ b/assets/fonts/k2d-56.woff2
Binary files differ
diff --git a/assets/fonts/k2d-57.woff2 b/assets/fonts/k2d-57.woff2
new file mode 100644
index 0000000..cbd1b64
--- /dev/null
+++ b/assets/fonts/k2d-57.woff2
Binary files differ
diff --git a/assets/fonts/k2d-58.woff2 b/assets/fonts/k2d-58.woff2
new file mode 100644
index 0000000..bf9a06d
--- /dev/null
+++ b/assets/fonts/k2d-58.woff2
Binary files differ
diff --git a/assets/fonts/k2d-59.woff2 b/assets/fonts/k2d-59.woff2
new file mode 100644
index 0000000..77b4fec
--- /dev/null
+++ b/assets/fonts/k2d-59.woff2
Binary files differ
diff --git a/assets/fonts/k2d-6.woff2 b/assets/fonts/k2d-6.woff2
new file mode 100644
index 0000000..224fe51
--- /dev/null
+++ b/assets/fonts/k2d-6.woff2
Binary files differ
diff --git a/assets/fonts/k2d-60.woff2 b/assets/fonts/k2d-60.woff2
new file mode 100644
index 0000000..97924a5
--- /dev/null
+++ b/assets/fonts/k2d-60.woff2
Binary files differ
diff --git a/assets/fonts/k2d-61.woff2 b/assets/fonts/k2d-61.woff2
new file mode 100644
index 0000000..231ce99
--- /dev/null
+++ b/assets/fonts/k2d-61.woff2
Binary files differ
diff --git a/assets/fonts/k2d-62.woff2 b/assets/fonts/k2d-62.woff2
new file mode 100644
index 0000000..651d107
--- /dev/null
+++ b/assets/fonts/k2d-62.woff2
Binary files differ
diff --git a/assets/fonts/k2d-63.woff2 b/assets/fonts/k2d-63.woff2
new file mode 100644
index 0000000..f1761bb
--- /dev/null
+++ b/assets/fonts/k2d-63.woff2
Binary files differ
diff --git a/assets/fonts/k2d-64.woff2 b/assets/fonts/k2d-64.woff2
new file mode 100644
index 0000000..6b8b201
--- /dev/null
+++ b/assets/fonts/k2d-64.woff2
Binary files differ
diff --git a/assets/fonts/k2d-7.woff2 b/assets/fonts/k2d-7.woff2
new file mode 100644
index 0000000..c3ed121
--- /dev/null
+++ b/assets/fonts/k2d-7.woff2
Binary files differ
diff --git a/assets/fonts/k2d-8.woff2 b/assets/fonts/k2d-8.woff2
new file mode 100644
index 0000000..edf39af
--- /dev/null
+++ b/assets/fonts/k2d-8.woff2
Binary files differ
diff --git a/assets/fonts/k2d-9.woff2 b/assets/fonts/k2d-9.woff2
new file mode 100644
index 0000000..fe8117b
--- /dev/null
+++ b/assets/fonts/k2d-9.woff2
Binary files differ
diff --git a/assets/icon.png b/assets/icon.png
new file mode 100644
index 0000000..18536a8
--- /dev/null
+++ b/assets/icon.png
Binary files differ
diff --git a/assets/icons/addcontact24.svg b/assets/icons/addcontact24.svg
new file mode 100644
index 0000000..3324996
--- /dev/null
+++ b/assets/icons/addcontact24.svg
@@ -0,0 +1,5 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M16.0004 11C16.6281 10.1643 17 9.12561 17 8C17 5.23858 14.7614 3 12 3C9.23858 3 7 5.23858 7 8C7 9.12561 7.37194 10.1643 7.99963 11" stroke="black" stroke-width="2"/>
+<path d="M7 14.0014C3.60117 15.6755 3.00884 19.0504 3 21H21.0264C21.0264 19.2423 20.4151 15.7748 17 14.0399" stroke="black" stroke-width="2"/>
+<path d="M12 13H15M12 13H9M12 13V10M12 13V16" stroke="black" stroke-width="2"/>
+</svg>
diff --git a/assets/icons/attachment24.svg b/assets/icons/attachment24.svg
new file mode 100644
index 0000000..ee808e6
--- /dev/null
+++ b/assets/icons/attachment24.svg
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M21 13.3329C16.6369 19.9724 12.4124 20.8255 9.33666 20.8255C5.60908 20.8255 3 17.7955 3 15.1645C3 9.12539 9.09537 3.30998 15.6733 3.30998C19.1978 3.30998 22.3753 8.59036 15.5935 15.0402C11.6522 18.7886 8.39541 17.6137 7.57871 16.3206C5.87141 13.6174 9.33666 10.3925 12.0841 8.87491" stroke="black" stroke-width="2"/>
+</svg>
diff --git a/assets/icons/available16color.svg b/assets/icons/available16color.svg
new file mode 100644
index 0000000..e54c2f7
--- /dev/null
+++ b/assets/icons/available16color.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="8" cy="8" r="6" fill="#87EE23" stroke="#66BF10" stroke-width="2"/>
+</svg>
diff --git a/assets/icons/away16.svg b/assets/icons/away16.svg
new file mode 100644
index 0000000..5d78da1
--- /dev/null
+++ b/assets/icons/away16.svg
@@ -0,0 +1,10 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_204_583)">
+<path d="M12.3949 3.68876C14.4905 5.78437 14.3985 9.52573 11.8703 12.0539C9.3422 14.582 5.60084 14.674 3.50523 12.5784C2.7029 11.7761 2.22277 10.747 2.07449 9.63325C2.10824 9.63849 2.14189 9.64327 2.17541 9.64762C2.83698 9.73336 3.54898 9.66529 4.21793 9.51478C5.52363 9.22102 6.93329 8.5485 7.73555 7.67748C8.50721 6.83967 9.11302 5.50754 9.35486 4.24412C9.47772 3.60222 9.51846 2.91991 9.40702 2.28141C9.4053 2.27156 9.40354 2.2617 9.40175 2.25184C10.5339 2.39262 11.5812 2.87506 12.3949 3.68876Z" stroke="black" stroke-width="2"/>
+</g>
+<defs>
+<clipPath id="clip0_204_583">
+<rect width="16" height="16" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/assets/icons/away16color.svg b/assets/icons/away16color.svg
new file mode 100644
index 0000000..8803c51
--- /dev/null
+++ b/assets/icons/away16color.svg
@@ -0,0 +1,10 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_204_583)">
+<path d="M3.50535 12.5786C2.70294 11.7762 2.22417 10.7466 2.07594 9.63274C2.10924 9.6379 2.1423 9.64365 2.17538 9.64793C2.83692 9.73367 3.54906 9.66584 4.21798 9.51535C5.52368 9.22158 6.9333 8.54817 7.73556 7.67715C8.50707 6.83941 9.11299 5.50773 9.35486 4.2445C9.47773 3.60261 9.51808 2.91981 9.40665 2.28132C9.40504 2.27208 9.40281 2.26294 9.40112 2.25369C10.5335 2.39442 11.5815 2.87482 12.3953 3.68862C14.4907 5.78422 14.3984 9.52565 11.8705 12.0538C9.34237 14.5819 5.60098 14.674 3.50535 12.5786Z" fill="#FFCE07" stroke="#D0A700" stroke-width="2"/>
+</g>
+<defs>
+<clipPath id="clip0_204_583">
+<rect width="16" height="16" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/assets/icons/bubble16.svg b/assets/icons/bubble16.svg
new file mode 100644
index 0000000..8775127
--- /dev/null
+++ b/assets/icons/bubble16.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M8.82231 12.4711L8.5106 11.499C8.70361 11.4713 8.89168 11.4358 9.07333 11.3943C10.1138 11.1566 11.0459 10.7001 11.6435 10.2423C13.6639 8.69425 14.4 6.1447 12.9614 4.2671C12.0904 3.13031 10.6908 2.71605 9.30488 2.79833C7.91203 2.88103 6.41494 3.45992 5.1034 4.46482C3.79187 5.46971 2.84338 6.76461 2.40112 8.08797C1.96106 9.40473 1.99689 10.8639 2.86789 12.0007C3.719 13.1115 5.83101 13.9667 8.82231 12.4711Z" stroke="black" stroke-width="2" stroke-miterlimit="1.41421"/>
+</svg>
diff --git a/assets/icons/bubble16color.svg b/assets/icons/bubble16color.svg
new file mode 100644
index 0000000..c3c01d8
--- /dev/null
+++ b/assets/icons/bubble16color.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M8.82231 12.4711L8.5106 11.499C8.70361 11.4713 8.89168 11.4358 9.07333 11.3943C10.1138 11.1566 11.0459 10.7001 11.6435 10.2423C13.6639 8.69425 14.4 6.1447 12.9614 4.2671C12.0904 3.13031 10.6908 2.71605 9.30488 2.79833C7.91203 2.88103 6.41494 3.45992 5.1034 4.46482C3.79187 5.46971 2.84338 6.76461 2.40112 8.08797C1.96106 9.40473 1.99689 10.8639 2.86789 12.0007C3.719 13.1115 5.83101 13.9667 8.82231 12.4711Z" fill="#52CF6E" stroke="black" stroke-width="2" stroke-miterlimit="1.41421"/>
+</svg>
diff --git a/assets/icons/bubble24.svg b/assets/icons/bubble24.svg
new file mode 100644
index 0000000..19decc2
--- /dev/null
+++ b/assets/icons/bubble24.svg
@@ -0,0 +1,10 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_218_10)">
+<path d="M3.39687 10.1647C3.96179 8.56349 5.17184 6.84 7.48298 5.27824L7.95995 4.96762C9.13922 4.22996 11.2635 3.42663 13.4985 3.29304C15.5828 3.16849 17.6272 3.62867 19.1355 5.10846L19.4299 5.41748C21.0253 7.21643 21.253 9.34884 20.5361 11.3095C19.8528 13.1777 18.3016 14.8937 16.2258 15.9073L15.8035 16.1003C13.2542 17.1912 11.1923 17.1182 9.42282 17.1818L8.35117 17.2206L8.46464 18.2874C8.49948 18.6139 8.64191 18.9983 8.79409 19.3362C8.95987 19.7043 9.1863 20.124 9.46151 20.5462C9.49056 20.5908 9.52181 20.635 9.55236 20.6802C8.51755 20.3814 7.5274 19.8863 6.64017 19.245C5.1113 18.1398 3.95211 16.6527 3.40236 15.1427L3.30015 14.8405C2.89914 13.5433 2.79033 11.884 3.39687 10.1647Z" stroke="black" stroke-width="2"/>
+</g>
+<defs>
+<clipPath id="clip0_218_10">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/assets/icons/chat16color.svg b/assets/icons/chat16color.svg
new file mode 100644
index 0000000..d4a2479
--- /dev/null
+++ b/assets/icons/chat16color.svg
@@ -0,0 +1,10 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_214_198)">
+<path d="M2.32171 6.75399C2.68825 5.71497 3.48076 4.5717 5.03364 3.5225L5.3547 3.31455C6.12876 2.83032 7.54957 2.29008 9.04407 2.20066C10.4342 2.11758 11.7523 2.42625 12.7153 3.37165L12.9029 3.56876C13.9254 4.72163 14.072 6.07691 13.6105 7.33885C13.1668 8.55207 12.1506 9.68103 10.7797 10.3505L10.5014 10.4785C8.79928 11.2069 7.43339 11.1579 6.19304 11.2025L5.12138 11.2413L5.23485 12.3081C5.2644 12.5851 5.38057 12.8882 5.48855 13.128C5.52044 13.1988 5.5553 13.2722 5.59296 13.3471C5.19706 13.1688 4.81599 12.9476 4.45863 12.6893C3.44189 11.9544 2.68078 10.9727 2.32417 9.99369L2.25848 9.79823C1.99751 8.95405 1.92678 7.87353 2.32171 6.75399Z" fill="#87EE23" stroke="#66BF10" stroke-width="2"/>
+</g>
+<defs>
+<clipPath id="clip0_214_198">
+<rect width="16" height="16" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/assets/icons/close24.svg b/assets/icons/close24.svg
new file mode 100644
index 0000000..d7e82ba
--- /dev/null
+++ b/assets/icons/close24.svg
@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M3 3L21 21" stroke="black" stroke-width="2"/>
+<path d="M3 21L21 3" stroke="black" stroke-width="2"/>
+</svg>
diff --git a/assets/icons/contact24.svg b/assets/icons/contact24.svg
new file mode 100644
index 0000000..da03215
--- /dev/null
+++ b/assets/icons/contact24.svg
@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="12.0678" cy="8" r="5" stroke="black" stroke-width="2"/>
+<path d="M12 13C4.11584 13 3.01209 18.3333 3 21H21.0264C21.0264 18.5973 19.8842 13 12 13Z" stroke="black" stroke-width="2"/>
+</svg>
diff --git a/assets/icons/delivered16.svg b/assets/icons/delivered16.svg
new file mode 100644
index 0000000..feec0c2
--- /dev/null
+++ b/assets/icons/delivered16.svg
@@ -0,0 +1,4 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M14.1667 7.00724C12.9795 8.54119 10.9029 9.18264 10.0046 9.18264C9.88343 9.18264 9.27537 9.13373 9.21829 9.07586" stroke="black" stroke-width="2"/>
+<path d="M2.13982 7.66744C2.51405 8.66834 3.48325 9.1754 4.49578 9.1754C5.39405 9.1754 7.47067 8.53395 8.6579 7" stroke="black" stroke-width="2"/>
+</svg>
diff --git a/assets/icons/dnd16.svg b/assets/icons/dnd16.svg
new file mode 100644
index 0000000..d13d54b
--- /dev/null
+++ b/assets/icons/dnd16.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M6 14L2 10V6L6 2H10L14 6V10L10 14H6Z" stroke="black" stroke-width="2"/>
+</svg>
diff --git a/assets/icons/dnd16color.svg b/assets/icons/dnd16color.svg
new file mode 100644
index 0000000..8e18fae
--- /dev/null
+++ b/assets/icons/dnd16color.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M6 14L2 10V6L6 2H10L14 6V10L10 14H6Z" fill="#C1173C" stroke="#8B0C28" stroke-width="2"/>
+</svg>
diff --git a/assets/icons/error16color.svg b/assets/icons/error16color.svg
new file mode 100644
index 0000000..21e28fc
--- /dev/null
+++ b/assets/icons/error16color.svg
@@ -0,0 +1,10 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_204_962)">
+<path d="M2.80385 12.6928L8 3.6928L13.1962 12.6928H2.80385Z" fill="#C1173C" stroke="black" stroke-width="2"/>
+</g>
+<defs>
+<clipPath id="clip0_204_962">
+<rect width="16" height="16" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/assets/icons/forward24.svg b/assets/icons/forward24.svg
new file mode 100644
index 0000000..a2fdaba
--- /dev/null
+++ b/assets/icons/forward24.svg
@@ -0,0 +1,10 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_204_235)">
+<path d="M15.674 3.11258L15.674 9M15.674 3.11258L8.5 3.11258M15.674 3.11258C14.4547 3.63965 13.2902 4.34718 12.1355 5.23196C6.92147 9.22691 4.88415 15.323 7.58502 18.8481C8.26848 19.7401 9.84336 20.6926 12.1355 20.8434" stroke="black" stroke-width="2" stroke-miterlimit="16"/>
+</g>
+<defs>
+<clipPath id="clip0_204_235">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/assets/icons/heart24.svg b/assets/icons/heart24.svg
new file mode 100644
index 0000000..dd63532
--- /dev/null
+++ b/assets/icons/heart24.svg
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M11.4455 5.90719L12.0788 6.42557L12.7122 5.90719C14.9006 4.11609 16.6254 3.44822 17.8564 3.39835C19.0193 3.35124 19.8258 3.84682 20.342 4.6883C20.8877 5.57785 21.1387 6.92101 20.9232 8.51425C20.7097 10.0929 20.0454 11.8434 18.8646 13.4786C17.0975 15.9258 15.7674 17.3884 14.6372 18.3999C13.6976 19.2408 12.8806 19.7855 12.0015 20.3471C11.1396 19.79 10.3533 19.2443 9.44622 18.4039C8.35343 17.3914 7.06118 15.9272 5.29303 13.4786C4.11223 11.8434 3.4479 10.0929 3.2344 8.51425C3.01893 6.92101 3.26991 5.57785 3.81561 4.6883C4.33182 3.84682 5.13833 3.35124 6.30121 3.39835C7.53222 3.44822 9.25705 4.11609 11.4455 5.90719Z" stroke="black" stroke-width="2"/>
+</svg>
diff --git a/assets/icons/newbubble24.svg b/assets/icons/newbubble24.svg
new file mode 100644
index 0000000..5a43f46
--- /dev/null
+++ b/assets/icons/newbubble24.svg
@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M7.42972 4.12007C10.0635 2.47254 16.5712 0.68783 20.1778 4.75386C23.0466 7.98855 22.1245 12.2329 19.2481 15H19V12.1699C19.2458 11.7798 19.4469 11.3763 19.5967 10.9668C20.1624 9.42006 20.0308 7.79602 18.918 6.36519L18.6817 6.08101C17.4247 4.66391 15.5976 4.16921 13.5586 4.29097C11.4955 4.41429 9.53189 5.16479 8.49026 5.81636C6.03172 7.35447 4.85726 9.03081 4.33987 10.497C3.84746 11.8928 3.89933 13.2434 4.19339 14.331L4.25589 14.5449C4.68025 15.9173 5.7417 17.3611 7.22659 18.4345C7.31876 18.5011 7.41171 18.567 7.50589 18.6298C7.49082 18.5514 7.47911 18.472 7.47073 18.3935L7.24222 16.2597L9.38675 16.1826C10.2341 16.1521 11.0902 16.1483 12 16.0537V18.0664C11.0537 18.1544 10.2051 18.1548 9.45901 18.1816C9.52823 18.8267 10.6974 21.119 12.2637 21.9834C7.92689 22.2587 3.75854 19.0513 2.46097 15.4824L2.34476 15.1357C1.43441 12.1908 1.85165 7.60958 7.42972 4.12007Z" fill="black"/>
+<path d="M17 13V17M17 17V21M17 17H21M17 17H13" stroke="black" stroke-width="2"/>
+</svg>
diff --git a/assets/icons/reply24.svg b/assets/icons/reply24.svg
new file mode 100644
index 0000000..7136614
--- /dev/null
+++ b/assets/icons/reply24.svg
@@ -0,0 +1,10 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_204_246)">
+<path d="M2.96446 13.4001L8.69828 13.4001M2.96446 13.4001L2.96446 7.25968M2.96446 13.4001C3.79279 12.3092 4.8179 11.2726 6.01902 10.3523C11.0135 6.5255 17.1596 6.16059 19.7468 9.5372C21.8385 12.2673 20.7102 16.0351 18.5396 18.6512" stroke="black" stroke-width="2" stroke-miterlimit="16"/>
+</g>
+<defs>
+<clipPath id="clip0_204_246">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/assets/icons/sending16.svg b/assets/icons/sending16.svg
new file mode 100644
index 0000000..a74179a
--- /dev/null
+++ b/assets/icons/sending16.svg
@@ -0,0 +1,5 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="3" cy="8" r="2" fill="black"/>
+<circle cx="8" cy="8" r="2" fill="black"/>
+<circle cx="13" cy="8" r="2" fill="black"/>
+</svg>
diff --git a/assets/icons/sent16.svg b/assets/icons/sent16.svg
new file mode 100644
index 0000000..5b7f3fa
--- /dev/null
+++ b/assets/icons/sent16.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2.13982 7.66744C2.51405 8.66834 3.48325 9.1754 4.49578 9.1754C5.39405 9.1754 7.47067 8.53395 8.6579 7" stroke="black" stroke-width="2"/>
+</svg>
diff --git a/assets/icons/xa16color.svg b/assets/icons/xa16color.svg
new file mode 100644
index 0000000..1e3643e
--- /dev/null
+++ b/assets/icons/xa16color.svg
@@ -0,0 +1,10 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_214_392)">
+<path d="M3.50535 12.5786C2.70294 11.7762 2.22417 10.7466 2.07594 9.63274C2.10924 9.6379 2.1423 9.64365 2.17538 9.64793C2.83692 9.73367 3.54906 9.66584 4.21798 9.51535C5.52368 9.22158 6.9333 8.54817 7.73556 7.67715C8.50707 6.83941 9.11299 5.50773 9.35486 4.2445C9.47773 3.60261 9.51808 2.91981 9.40665 2.28132C9.40504 2.27208 9.40281 2.26294 9.40112 2.25369C10.5335 2.39442 11.5815 2.87482 12.3953 3.68862C14.4907 5.78422 14.3984 9.52565 11.8705 12.0538C9.34237 14.5819 5.60098 14.674 3.50535 12.5786Z" fill="#F99E36" stroke="#D06F00" stroke-width="2"/>
+</g>
+<defs>
+<clipPath id="clip0_214_392">
+<rect width="16" height="16" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/assets/lovely.svg b/assets/lovely.svg
new file mode 100644
index 0000000..789b98d
--- /dev/null
+++ b/assets/lovely.svg
@@ -0,0 +1,3 @@
+<svg width="444" height="165" viewBox="0 0 444 165" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2.5 91.3333C40.181 77.7175 56.2407 66.921 89.7778 45C96.4349 40.6487 119.631 25.0708 125.333 14.1111C125.944 12.9373 123.922 11.0434 122.611 11.2222C115.382 12.208 102.897 23.9096 99.4444 27.2222C89.0964 37.1514 81.8461 46.1667 74.2222 58.2778C71.762 62.1861 57.4043 84.0505 63.5556 91C67.4795 95.4331 82.8889 88.0805 83.3333 87.8889C99.4875 80.9249 114.556 71.4351 129.722 62.6111C134.628 59.7566 128.427 64.1201 126.667 65.7778C122.525 69.6778 117.699 74.248 115.5 79.7222C113.861 83.8017 113.906 87.3252 119.222 87.6667C127.813 88.2183 137.823 81.3961 143.222 75.3333C147.246 70.8147 148.348 64.0202 142.556 60.6667C138.782 58.4819 143.208 61.9764 144.778 62.6667C161.165 69.8724 182.305 79.2827 200 82.5C202.907 83.0286 188.841 72.8929 188 72C187.01 70.9486 179.218 66.7409 179 64.5C178.924 63.7222 196 54.2467 199.5 52.3333C212 45.5 219.492 40.8 234 38.5C237.702 37.9131 247 38.5 247.833 42.7222C249.028 48.7761 243.554 51.1204 240 53.5C235.5 56 231.38 56.758 225.556 59.2222C219.574 61.7529 223.169 61.263 228.167 62.5555C235.779 64.5243 258.608 72.2347 251.222 84.6667C248.815 88.7191 221.183 98.2441 220.722 91.3333C220.394 86.4044 233.492 81.3894 236.333 80C259.726 68.5615 281.069 56.1032 300.944 38.9444C312.002 29.3986 325.559 17.7447 331.833 3.99999C332.526 2.4822 332.807 1.85607 331 2.88888C324.285 6.72592 318.224 13.6692 313.556 19.5555C300.664 35.8096 289.999 55.3187 286 75.8333C283.206 90.1703 295.684 84.7776 304.667 80.6667C317.201 74.9301 327.055 65.9382 338.778 59.2222C340.109 58.4593 338.62 62.33 338.111 63.7778C336.445 68.517 329.745 82.2511 339.389 84.2222C355.578 87.5309 374.583 70.5925 386.667 62C387.864 61.1487 385.025 64.4363 384.222 65.6667C378.957 73.7399 373.851 81.8891 369.389 90.4444C360.746 107.017 354.469 124.681 345.778 141.222C343.489 145.578 336.876 160.448 330.667 162C329.349 162.329 330 158.109 331.5 155.5C343 135.5 354.064 118.488 373 106.5C391.936 94.5115 408 83.5 442 72" stroke="black" stroke-width="4" stroke-linecap="round"/>
+</svg>
diff --git a/assets/macaw-icon.png b/assets/macaw-icon.png
index 18536a8..b352ac0 100644
--- a/assets/macaw-icon.png
+++ b/assets/macaw-icon.png
Binary files differ
diff --git a/assets/no-avatar.png b/assets/no-avatar.png
new file mode 100644
index 0000000..953b263
--- /dev/null
+++ b/assets/no-avatar.png
Binary files differ
diff --git a/assets/overlayscrollbars.browser.es6.min.js b/assets/overlayscrollbars.browser.es6.min.js
new file mode 100644
index 0000000..7f44ae6
--- /dev/null
+++ b/assets/overlayscrollbars.browser.es6.min.js
@@ -0,0 +1,10 @@
+/*!
+ * OverlayScrollbars
+ * Version: 2.11.0
+ *
+ * Copyright (c) Rene Haas | KingSora.
+ * https://github.com/KingSora
+ *
+ * Released under the MIT license.
+ */
+var OverlayScrollbarsGlobal=function(t){"use strict";const e=(t,e)=>{const{o:n,i:r,u:o}=t;let s,i=n;const l=(t,e)=>{const n=i,l=t,c=e||(r?!r(n,l):n!==l);return(c||o)&&(i=l,s=n),[i,c,s]};return[e?t=>l(e(i,s),t):l,t=>[i,!!t,s]]},n="undefined"!=typeof window&&"undefined"!=typeof HTMLElement&&window.document?window:{},r=Math.max,o=Math.min,s=Math.round,i=Math.abs,l=Math.sign,c=n.cancelAnimationFrame,a=n.requestAnimationFrame,u=n.setTimeout,d=n.clearTimeout,p=t=>void 0!==n[t]?n[t]:void 0,y=p("MutationObserver"),h=p("IntersectionObserver"),f=p("ResizeObserver"),v=p("ScrollTimeline"),x=t=>void 0===t,b=t=>null===t,g=t=>"number"==typeof t,w=t=>"string"==typeof t,m=t=>"boolean"==typeof t,$=t=>"function"==typeof t,S=t=>Array.isArray(t),O=t=>"object"==typeof t&&!S(t)&&!b(t),M=t=>{const e=!!t&&t.length,n=g(e)&&e>-1&&e%1==0;return!(!(S(t)||!$(t)&&n)||e>0&&O(t)&&!(e-1 in t))},C=t=>!!t&&t.constructor===Object,D=t=>t instanceof HTMLElement,T=t=>t instanceof Element,k=()=>performance.now(),P=(t,e,n,o,s)=>{let i=0;const l=k(),u=r(0,n),d=n=>{const c=k(),p=c-l>=u,y=n?1:1-(r(0,l+u-c)/u||0),h=(e-t)*($(s)?s(y,y*u,0,1,u):y)+t,f=p||1===y;o&&o(h,y,f),i=f?0:a((()=>d()))};return d(),t=>{c(i),t&&d(t)}};function H(t,e){if(M(t))for(let n=0;n<t.length&&!1!==e(t[n],n,t);n++);else t&&H(Object.keys(t),(n=>e(t[n],n,t)));return t}const A=(t,e)=>t.indexOf(e)>=0,L=(t,e)=>t.concat(e),E=(t,e,n)=>(!w(e)&&M(e)?Array.prototype.push.apply(t,e):t.push(e),t),R=t=>Array.from(t||[]),U=t=>S(t)?t:!w(t)&&M(t)?R(t):[t],z=t=>!!t&&!t.length,I=t=>R(new Set(t)),_=(t,e,n)=>{H(t,(t=>!t||t.apply(void 0,e||[]))),!n&&(t.length=0)},j="paddingTop",N="paddingRight",V="paddingLeft",B="paddingBottom",F="marginLeft",Z="marginRight",W="marginBottom",q="overflowX",Y="overflowY",X="width",G="height",J="visible",K="hidden",Q="scroll",tt=(t,e,n,r)=>{if(t&&e){let r=!0;return H(n,(n=>{t[n]!==e[n]&&(r=!1)})),r}return!1},et=(t,e)=>tt(t,e,["w","h"]),nt=(t,e)=>tt(t,e,["x","y"]),rt=(t,e)=>tt(t,e,["t","r","b","l"]),ot=()=>{},st=(t,...e)=>t.bind(0,...e),it=t=>{let e;const n=t?u:a,r=t?d:c;return[o=>{r(e),e=n((()=>o()),$(t)?t():t)},()=>r(e)]},lt=(t,e)=>{const{_:n,v:r,p:o,S:s}=e||{};let i,l,p,y,h=ot;const f=function(e){h(),d(i),y=i=l=void 0,h=ot,t.apply(this,e)},v=t=>s&&l?s(l,t):t,x=()=>{h!==ot&&f(v(p)||p)},b=function(){const t=R(arguments),e=$(n)?n():n;if(g(e)&&e>=0){const n=$(r)?r():r,s=g(n)&&n>=0,b=e>0?u:a,w=e>0?d:c,m=v(t)||t,S=f.bind(0,m);let O;h(),o&&!y?(S(),y=!0,O=b((()=>y=void 0),e)):(O=b(S,e),s&&!i&&(i=u(x,n))),h=()=>w(O),l=p=m}else f(t)};return b.m=x,b},ct=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),at=t=>t?Object.keys(t):[],ut=(t,e,n,r,o,s,i)=>{const l=[e,n,r,o,s,i];return"object"==typeof t&&!b(t)||$(t)||(t={}),H(l,(e=>{H(e,((n,r)=>{const o=e[r];if(t===o)return!0;const s=S(o);if(o&&C(o)){const e=t[r];let n=e;s&&!S(e)?n=[]:s||C(e)||(n={}),t[r]=ut(n,o)}else t[r]=s?o.slice():o}))})),t},dt=(t,e)=>H(ut({},t),((t,e,n)=>{void 0===t?delete n[e]:t&&C(t)&&(n[e]=dt(t))})),pt=t=>!at(t).length,yt=(t,e,n)=>r(t,o(e,n)),ht=t=>I((S(t)?t:(t||"").split(" ")).filter((t=>t))),ft=(t,e)=>t&&t.getAttribute(e),vt=(t,e)=>t&&t.hasAttribute(e),xt=(t,e,n)=>{H(ht(e),(e=>{t&&t.setAttribute(e,String(n||""))}))},bt=(t,e)=>{H(ht(e),(e=>t&&t.removeAttribute(e)))},gt=(t,e)=>{const n=ht(ft(t,e)),r=st(xt,t,e),o=(t,e)=>{const r=new Set(n);return H(ht(t),(t=>{r[e](t)})),R(r).join(" ")};return{O:t=>r(o(t,"delete")),$:t=>r(o(t,"add")),C:t=>{const e=ht(t);return e.reduce(((t,e)=>t&&n.includes(e)),e.length>0)}}},wt=(t,e,n)=>(gt(t,e).O(n),st(mt,t,e,n)),mt=(t,e,n)=>(gt(t,e).$(n),st(wt,t,e,n)),$t=(t,e,n,r)=>(r?mt:wt)(t,e,n),St=(t,e,n)=>gt(t,e).C(n),Ot=t=>gt(t,"class"),Mt=(t,e)=>{Ot(t).O(e)},Ct=(t,e)=>(Ot(t).$(e),st(Mt,t,e)),Dt=(t,e)=>{const n=e?T(e)&&e:document;return n?R(n.querySelectorAll(t)):[]},Tt=(t,e)=>T(t)&&t.matches(e),kt=t=>Tt(t,"body"),Pt=t=>t?R(t.childNodes):[],Ht=t=>t&&t.parentElement,At=(t,e)=>T(t)&&t.closest(e),Lt=t=>document.activeElement,Et=t=>{H(U(t),(t=>{const e=Ht(t);t&&e&&e.removeChild(t)}))},Rt=(t,e)=>st(Et,t&&e&&H(U(e),(e=>{e&&t.appendChild(e)})));let Ut;const zt=t=>{const e=document.createElement("div");return xt(e,"class",t),e},It=t=>{const e=zt(),n=Ut,r=t.trim();return e.innerHTML=n?n.createHTML(r):r,H(Pt(e),(t=>Et(t)))},_t=(t,e)=>t.getPropertyValue(e)||t[e]||"",jt=t=>{const e=t||0;return isFinite(e)?e:0},Nt=t=>jt(parseFloat(t||"")),Vt=t=>Math.round(1e4*t)/1e4,Bt=t=>`${Vt(jt(t))}px`;function Ft(t,e){t&&e&&H(e,((e,n)=>{try{const r=t.style,o=b(e)||m(e)?"":g(e)?Bt(e):e;0===n.indexOf("--")?r.setProperty(n,o):r[n]=o}catch(r){}}))}function Zt(t,e,r){const o=w(e);let s=o?"":{};if(t){const i=n.getComputedStyle(t,r)||t.style;s=o?_t(i,e):R(e).reduce(((t,e)=>(t[e]=_t(i,e),t)),s)}return s}const Wt=(t,e,n)=>{const r=e?`${e}-`:"",o=n?`-${n}`:"",s=`${r}top${o}`,i=`${r}right${o}`,l=`${r}bottom${o}`,c=`${r}left${o}`,a=Zt(t,[s,i,l,c]);return{t:Nt(a[s]),r:Nt(a[i]),b:Nt(a[l]),l:Nt(a[c])}},qt=(t,e)=>`translate${O(t)?`(${t.x},${t.y})`:`${e?"X":"Y"}(${t})`}`,Yt={w:0,h:0},Xt=(t,e)=>e?{w:e[`${t}Width`],h:e[`${t}Height`]}:Yt,Gt=t=>Xt("inner",t||n),Jt=st(Xt,"offset"),Kt=st(Xt,"client"),Qt=st(Xt,"scroll"),te=t=>{const e=parseFloat(Zt(t,X))||0,n=parseFloat(Zt(t,G))||0;return{w:e-s(e),h:n-s(n)}},ee=t=>t.getBoundingClientRect(),ne=t=>!(!t||!t[G]&&!t[X]),re=(t,e)=>{const n=ne(t);return!ne(e)&&n},oe=(t,e,n,r)=>{H(ht(e),(e=>{t&&t.removeEventListener(e,n,r)}))},se=(t,e,n,r)=>{var o;const s=null==(o=r&&r.H)||o,i=r&&r.I||!1,l=r&&r.A||!1,c={passive:s,capture:i};return st(_,ht(e).map((e=>{const r=l?o=>{oe(t,e,r,i),n&&n(o)}:n;return t&&t.addEventListener(e,r,c),st(oe,t,e,r,i)})))},ie=t=>t.stopPropagation(),le=t=>t.preventDefault(),ce=t=>ie(t)||le(t),ae=(t,e)=>{const{x:n,y:r}=g(e)?{x:e,y:e}:e||{};g(n)&&(t.scrollLeft=n),g(r)&&(t.scrollTop=r)},ue=t=>({x:t.scrollLeft,y:t.scrollTop}),de=(t,e)=>{const{D:n,M:r}=t,{w:o,h:s}=e,c=(t,e,n)=>{let r=l(t)*n,o=l(e)*n;if(r===o){const n=i(t),s=i(e);o=n>s?0:o,r=n<s?0:r}return r=r===o?0:r,[r+0,o+0]},[a,u]=c(n.x,r.x,o),[d,p]=c(n.y,r.y,s);return{D:{x:a,y:d},M:{x:u,y:p}}},pe=({D:t,M:e})=>{const n=(t,e)=>0===t&&t<=e;return{x:n(t.x,e.x),y:n(t.y,e.y)}},ye=({D:t,M:e},n)=>{const r=(t,e,n)=>yt(0,1,(t-n)/(t-e)||0);return{x:r(t.x,e.x,n.x),y:r(t.y,e.y,n.y)}},he=t=>{t&&t.focus&&t.focus({preventScroll:!0})},fe=(t,e)=>{H(U(e),t)},ve=t=>{const e=new Map,n=(t,n)=>{if(t){const r=e.get(t);fe((t=>{r&&r[t?"delete":"clear"](t)}),n)}else e.forEach((t=>{t.clear()})),e.clear()},r=(t,o)=>{if(w(t)){const r=e.get(t)||new Set;return e.set(t,r),fe((t=>{$(t)&&r.add(t)}),o),st(n,t,o)}m(o)&&o&&n();const s=at(t),i=[];return H(s,(e=>{const n=t[e];n&&E(i,r(e,n))})),st(_,i)};return r(t||{}),[r,n,(t,n)=>{H(R(e.get(t)),(t=>{n&&!z(n)?t.apply(0,n):t()}))}]},xe={},be={},ge=(t,e,n)=>at(t).map((r=>{const{static:o,instance:s}=t[r],[i,l,c]=n||[],a=n?s:o;if(a){const t=n?a(i,l,e):a(e);return(c||be)[r]=t}})),we=t=>be[t],me="__osOptionsValidationPlugin",$e=`data-overlayscrollbars`,Se="os-environment",Oe=`${Se}-scrollbar-hidden`,Me=`${$e}-initialize`,Ce="noClipping",De=`${$e}-body`,Te=$e,ke="host",Pe=`${$e}-viewport`,He=q,Ae=Y,Le="arrange",Ee="measuring",Re="scrolling",Ue="scrollbarHidden",ze="noContent",Ie=`${$e}-padding`,_e=`${$e}-content`,je="os-size-observer",Ne=`${je}-appear`,Ve=`${je}-listener`,Be=`${Ve}-scroll`,Fe=`${Ve}-item`,Ze=`${Fe}-final`,We="os-trinsic-observer",qe="os-theme-none",Ye="os-scrollbar",Xe=`${Ye}-rtl`,Ge=`${Ye}-horizontal`,Je=`${Ye}-vertical`,Ke=`${Ye}-track`,Qe=`${Ye}-handle`,tn=`${Ye}-visible`,en=`${Ye}-cornerless`,nn=`${Ye}-interaction`,rn=`${Ye}-unusable`,on=`${Ye}-auto-hide`,sn=`${on}-hidden`,ln=`${Ye}-wheel`,cn=`${Ke}-interactive`,an=`${Qe}-interactive`,un="__osSizeObserverPlugin",dn=(()=>({[un]:{static:()=>(t,e,n)=>{const r=3333333,o="scroll",s=It(`<div class="${Fe}" dir="ltr"><div class="${Fe}"><div class="${Ze}"></div></div><div class="${Fe}"><div class="${Ze}" style="width: 200%; height: 200%"></div></div></div>`),i=s[0],l=i.lastChild,u=i.firstChild,d=null==u?void 0:u.firstChild;let p,y=Jt(i),h=y,f=!1;const v=()=>{ae(u,r),ae(l,r)},x=t=>{p=0,f&&(y=h,e(!0===t))},b=t=>{h=Jt(i),f=!t||!et(h,y),t?(ie(t),f&&!p&&(c(p),p=a(x))):x(!1===t),v()},g=[Rt(t,s),se(u,o,b),se(l,o,b)];return Ct(t,Be),Ft(d,{[X]:r,[G]:r}),a(v),[n?st(b,!1):v,g]}}}))(),pn=(t,e)=>{const{T:n}=e,[r,o]=t("showNativeOverlaidScrollbars");return[r&&n.x&&n.y,o]},yn=t=>0===t.indexOf(J),hn=(t,e)=>{const n=(t,e,n,r)=>{const o=t===J?K:t.replace(`${J}-`,""),s=yn(t),i=yn(n);return e||r?s&&i?J:s?e&&r?o:e?J:K:e?o:i&&r?J:K:K},r={x:n(e.x,t.x,e.y,t.y),y:n(e.y,t.y,e.x,t.x)};return{k:r,R:{x:r.x===Q,y:r.y===Q}}},fn="__osScrollbarsHidingPlugin",vn=(()=>({[fn]:{static:()=>({V:(t,e,n,r,o)=>{const{L:s,U:i}=t,{P:l,T:c,N:a}=r,u=!s&&!l&&(c.x||c.y),[d]=pn(o,r),p=t=>{const{R:e}=t,n=l||d?0:42,r=(t,e,r)=>[e&&!l?t?n:r:0,t&&!!n],[o,s]=r(c.x,e.x,a.x),[i,u]=r(c.y,e.y,a.y);return{q:{x:o,y:i},j:{x:s,y:u}}},y=(t,{B:n},r)=>{if(!s){const o=ut({},{[Z]:0,[W]:0,[F]:0}),{q:s,j:i}=p(t),{x:l,y:c}=i,{x:a,y:u}=s,{F:d}=e,y=n?F:Z,h=n?V:N,f=d[y],v=d[W],x=d[h],b=d[B];return o[X]=`calc(100% + ${u+-1*f}px)`,o[y]=-u+f,o[W]=-a+v,r&&(o[h]=x+(c?u:0),o[B]=b+(l?a:0)),o}};return{X:p,Y:(t,r,o)=>{if(u){const{F:s}=e,{q:l,j:c}=p(t),{x:a,y:u}=c,{x:d,y}=l,{B:h}=n,f=s[h?N:V],v=s.paddingTop,x=r.w+o.w,b=r.h+o.h,g={w:y&&u?`${y+x-f}px`:"",h:d&&a?`${d+b-v}px`:""};Ft(i,{"--os-vaw":g.w,"--os-vah":g.h})}return u},W:t=>{if(u){const r=t||(()=>{const t=t=>{const e=Zt(i,t);return[e,e===Q]},[e,n]=t(q),[r,o]=t(Y);return{k:{x:e,y:r},R:{x:n,y:o}}})(),{F:o}=e,{j:s}=p(r),{x:l,y:c}=s,a={},d=t=>H(t,(t=>{a[t]=o[t]}));l&&d([W,j,B]),c&&d([F,Z,V,N]);const h=Zt(i,at(a)),f=wt(i,Pe,Le);return Ft(i,a),[()=>{Ft(i,ut({},h,y(r,n,u))),f()},r]}return[ot]},G:y}}})}}))(),xn="__osClickScrollPlugin",bn=(()=>({[xn]:{static:()=>(t,e,n,r)=>{let o=!1,s=ot;const i=133,l=222,[c,a]=it(i),u=Math.sign(e),d=n*u,p=d/2,y=t=>1-(1-t)*(1-t),h=(e,n)=>P(e,n,l,t,y),f=(n,r)=>P(n,e-d,i*r,((n,r,o)=>{t(n),o&&(s=h(n,e))})),v=P(0,d,l,((i,l,a)=>{if(t(i),a&&(r(o),!o)){const t=e-i;Math.sign(t-p)===u&&c((()=>{const r=t-d,o=Math.sign(r)===u;s=o?f(i,Math.abs(r)/n):h(i,e)}))}}),y);return t=>{o=!0,t&&v(),a(),s()}}}}))(),gn=t=>JSON.stringify(t,((t,e)=>{if($(e))throw 0;return e})),wn=(t,e)=>t?`${e}`.split(".").reduce(((t,e)=>t&&ct(t,e)?t[e]:void 0),t):void 0,mn={paddingAbsolute:!1,showNativeOverlaidScrollbars:!1,update:{elementEvents:[["img","load"]],debounce:[0,33],attributes:null,ignoreMutation:null},overflow:{x:"scroll",y:"scroll"},scrollbars:{theme:"os-theme-dark",visibility:"auto",autoHide:"never",autoHideDelay:1300,autoHideSuspend:!1,dragScroll:!0,clickScroll:!1,pointers:["mouse","touch","pen"]}},$n=(t,e)=>{const n={};return H(L(at(e),at(t)),(r=>{const o=t[r],s=e[r];if(O(o)&&O(s))ut(n[r]={},$n(o,s)),pt(n[r])&&delete n[r];else if(ct(e,r)&&s!==o){let t=!0;if(S(o)||S(s))try{gn(o)===gn(s)&&(t=!1)}catch(i){}t&&(n[r]=s)}})),n},Sn=(t,e,n)=>r=>[wn(t,r),n||void 0!==wn(e,r)];let On,Mn;const Cn=()=>(Mn||(Mn=(()=>{const t=(t,e,n)=>{Rt(document.body,t),Rt(document.body,t);const r=Kt(t),o=Jt(t),s=te(e);return n&&Et(t),{x:o.h-r.h+s.h,y:o.w-r.w+s.w}},r=It(`<div class="${Se}"><div></div><style>${`.${Se}{scroll-behavior:auto!important;position:fixed;opacity:0;visibility:hidden;overflow:scroll;height:200px;width:200px;z-index:-1}.${Se} div{width:200%;height:200%;margin:10px 0}.${Oe}{scrollbar-width:none!important}.${Oe}::-webkit-scrollbar,.${Oe}::-webkit-scrollbar-corner{appearance:none!important;display:none!important;width:0!important;height:0!important}`}</style></div>`)[0],o=r.firstChild,s=r.lastChild,i=On;i&&(s.nonce=i);const[l,,c]=ve(),[a,u]=e({o:t(r,o),i:nt},st(t,r,o,!0)),[d]=u(),p=(t=>{let e=!1;const n=Ct(t,Oe);try{e="none"===Zt(t,"scrollbar-width")||"none"===Zt(t,"display","::-webkit-scrollbar")}catch(r){}return n(),e})(r),y={x:0===d.x,y:0===d.y},h={elements:{host:null,padding:!p,viewport:t=>p&&kt(t)&&t,content:!1},scrollbars:{slot:!0},cancel:{nativeScrollbarsOverlaid:!1,body:null}},f=ut({},mn),x=st(ut,{},f),b=st(ut,{},h),g={N:d,T:y,P:p,J:!!v,K:st(l,"r"),Z:b,tt:t=>ut(h,t)&&b(),nt:x,ot:t=>ut(f,t)&&x(),st:ut({},h),et:ut({},f)};if(bt(r,"style"),Et(r),se(n,"resize",(()=>{c("r",[])})),$(n.matchMedia)&&!p&&(!y.x||!y.y)){const t=e=>{const r=n.matchMedia(`(resolution: ${n.devicePixelRatio}dppx)`);se(r,"change",(()=>{e(),t(e)}),{A:!0})};t((()=>{const[t,e]=a();ut(g.N,t),c("r",[e])}))}return g})()),Mn),Dn=(t,e,n,r)=>{let o=!1;const{ct:s,rt:i,lt:l,it:c,ut:a,_t:u}=r||{},d=lt((()=>o&&n(!0)),{_:33,v:99}),[p,h]=((t,e,n)=>{let r=!1;const o=!!n&&new WeakMap,s=s=>{if(o&&n){const i=n.map((e=>{const[n,r]=e||[];return[r&&n?(s||Dt)(n,t):[],r]}));H(i,(n=>H(n[0],(s=>{const i=n[1],l=o.get(s)||[];if(t.contains(s)&&i){const t=se(s,i,(n=>{r?(t(),o.delete(s)):e(n)}));o.set(s,E(l,t))}else _(l),o.delete(s)}))))}};return s(),[()=>{r=!0},s]})(t,d,l),f=i||[],v=L(s||[],f),x=(o,s)=>{if(!z(s)){const i=a||ot,l=u||ot,d=[],p=[];let y=!1,v=!1;if(H(s,(n=>{const{attributeName:o,target:s,type:a,oldValue:u,addedNodes:h,removedNodes:x}=n,b="attributes"===a,g="childList"===a,m=t===s,$=b&&o,S=$&&ft(s,o||""),O=w(S)?S:null,M=$&&u!==O,C=A(f,o)&&M;if(e&&(g||!m)){const e=b&&M,a=e&&c&&Tt(s,c),p=(a?!i(s,o,u,O):!b||e)&&!l(n,!!a,t,r);H(h,(t=>E(d,t))),H(x,(t=>E(d,t))),v=v||p}!e&&m&&M&&!i(s,o,u,O)&&(E(p,o),y=y||C)})),h((t=>I(d).reduce(((e,n)=>(E(e,Dt(t,n)),Tt(n,t)?E(e,n):e)),[]))),e)return!o&&v&&n(!1),[!1];if(!z(p)||y){const t=[I(p),y];return!o&&n.apply(0,t),t}}},b=new y(st(x,!1));return[()=>(b.observe(t,{attributes:!0,attributeOldValue:!0,attributeFilter:v,subtree:e,childList:e,characterData:e}),o=!0,()=>{o&&(p(),b.disconnect(),o=!1)}),()=>{if(o)return d.m(),x(!0,b.takeRecords())}]},Tn=(t,n,r)=>{const{dt:o}=r||{},s=we(un),[i]=e({o:!1,u:!0});return()=>{const e=[],r=It(`<div class="${je}"><div class="${Ve}"></div></div>`)[0],l=r.firstChild,c=t=>{let e=!1,r=!1;if(t instanceof ResizeObserverEntry){const[n,,o]=i(t.contentRect),s=ne(n);r=re(n,o),e=!r&&!s}else r=!0===t;e||n({ft:!0,dt:r})};if(f){const t=new f((t=>c(t.pop())));t.observe(l),E(e,(()=>{t.disconnect()}))}else{if(!s)return ot;{const[t,n]=s(l,c,o);E(e,L([Ct(r,Ne),se(r,"animationstart",t)],n))}}return st(_,E(e,Rt(t,r)))}},kn=(t,n)=>{let r;const o=zt(We),[s]=e({o:!1}),i=(t,e)=>{if(t){const r=s((t=>0===t.h||t.isIntersecting||t.intersectionRatio>0)(t)),[,o]=r;return o&&!e&&n(r)&&[r]}},l=(t,e)=>i(e.pop(),t);return[()=>{const e=[];if(h)r=new h(st(l,!1),{root:t}),r.observe(o),E(e,(()=>{r.disconnect()}));else{const t=()=>{const t=Jt(o);i(t)};E(e,Tn(o,t)()),t()}return st(_,E(e,Rt(t,o)))},()=>r&&l(!0,r.takeRecords())]},Pn=(t,n,r,o)=>{let s,i,l,c,a,u;const d=`[${Te}]`,p=`[${Pe}]`,y=["id","class","style","open","wrap","cols","rows"],{vt:h,ht:v,U:x,gt:b,bt:w,L:m,yt:O,wt:M,St:C,Ot:D}=t,k=t=>"rtl"===Zt(t,"direction"),P={$t:!1,B:k(h)},H=Cn(),A=we(fn),[E]=e({i:et,o:{w:0,h:0}},(()=>{const e=A&&A.V(t,n,P,H,r).W,o=!(O&&m)&&St(v,Te,Ce),s=!m&&M(Le),i=s&&ue(b),l=i&&D(),c=C(Ee,o),a=s&&e&&e()[0],u=Qt(x),d=te(x);return a&&a(),ae(b,i),l&&l(),o&&c(),{w:u.w+d.w,h:u.h+d.h}})),R=lt(o,{_:()=>s,v:()=>i,S(t,e){const[n]=t,[r]=e;return[L(at(n),at(r)).reduce(((t,e)=>(t[e]=n[e]||r[e],t)),{})]}}),U=t=>{const e=k(h);ut(t,{Ct:u!==e}),ut(P,{B:e}),u=e},z=(t,e)=>{const[n,r]=t,s={xt:r};return ut(P,{$t:n}),!e&&o(s),s},I=({ft:t,dt:e})=>{const n=t&&!e||!H.P?o:R,r={ft:t||e,dt:e};U(r),n(r)},_=(t,e)=>{const[,n]=E(),r={Ht:n};return U(r),n&&!e&&(t?o:R)(r),r},j=(t,e,n)=>{const r={Et:e};return U(r),e&&!n&&R(r),r},[N,V]=w?kn(v,z):[],B=!m&&Tn(v,I,{dt:!0}),[F,Z]=Dn(v,!1,j,{rt:y,ct:y}),W=m&&f&&new f((t=>{const e=t[t.length-1].contentRect;I({ft:!0,dt:re(e,a)}),a=e})),q=lt((()=>{const[,t]=E();o({Ht:t})}),{_:222,p:!0});return[()=>{W&&W.observe(v);const t=B&&B(),e=N&&N(),n=F(),r=H.K((t=>{t?R({zt:t}):q()}));return()=>{W&&W.disconnect(),t&&t(),e&&e(),c&&c(),n(),r()}},({It:t,At:e,Dt:n})=>{const r={},[o]=t("update.ignoreMutation"),[a,u]=t("update.attributes"),[h,f]=t("update.elementEvents"),[v,b]=t("update.debounce"),O=e||n;if(f||u){l&&l(),c&&c();const[t,e]=Dn(w||x,!0,_,{ct:L(y,a||[]),lt:h,it:d,_t:(t,e)=>{const{target:n,attributeName:r}=t;return!(e||!r||m)&&((t,e,n)=>{const r=At(t,e),o=t&&((t,e)=>{const n=e?T(e)&&e:document;return n&&n.querySelector(t)})(n,r),s=At(o,e)===r;return!(!r||!o)&&(r===t||o===t||s&&At(At(t,n),e)!==r)})(n,d,p)||!!At(n,`.${Ye}`)||!!(t=>$(o)&&o(t))(t)}});c=t(),l=e}if(b)if(R.m(),S(v)){const t=v[0],e=v[1];s=g(t)&&t,i=g(e)&&e}else g(v)?(s=v,i=!1):(s=!1,i=!1);if(O){const t=Z(),e=V&&V(),n=l&&l();t&&ut(r,j(t[0],t[1],O)),e&&ut(r,z(e[0],O)),n&&ut(r,_(n[0],O))}return U(r),r},P]},Hn=(t,e)=>$(e)?e.apply(0,t):e,An=(t,e,n,r)=>{const o=x(r)?n:r;return Hn(t,o)||e.apply(0,t)},Ln=(t,e,n,r)=>{const o=x(r)?n:r,s=Hn(t,o);return!!s&&(D(s)?s:e.apply(0,t))},En=(t,e,n,r)=>{const o="--os-viewport-percent",s="--os-scroll-percent",i="--os-scroll-direction",{Z:l}=Cn(),{scrollbars:c}=l(),{slot:a}=c,{vt:u,ht:d,U:p,Mt:y,gt:h,yt:f,L:x}=e,{scrollbars:b}=y?{}:t,{slot:g}=b||{},w=[],$=[],S=[],O=Ln([u,d,p],(()=>x&&f?u:d),a,g),M=t=>{if(v){let e=null,r=[];const o=new v({source:h,axis:t}),s=()=>{e&&e.cancel(),e=null},i=i=>{const{Tt:l}=n,c=pe(l)[t],a="x"===t,u=[qt(0,a),qt(`calc(100cq${a?"w":"h"} + -100%)`,a)],d=c?u:u.reverse();return r[0]===d[0]&&r[1]===d[1]||(s(),r=d,e=i.kt.animate({clear:["left"],transform:d},{timeline:o})),s};return{Rt:i}}},C={x:M("x"),y:M("y")},D=(t,e,n)=>{const r=n?Ct:Mt;H(t,(t=>{r(t.Ut,e)}))},T=(t,e)=>{H(t,(t=>{const[n,r]=e(t);Ft(n,r)}))},k=(t,e,n)=>{const r=m(n),o=!r||!n;(!r||n)&&D($,t,e),o&&D(S,t,e)},P=t=>{const e=t?"x":"y",n=zt(`${Ye} ${t?Ge:Je}`),o=zt(Ke),s=zt(Qe),i={Ut:n,Pt:o,kt:s},l=C[e];return E(t?$:S,i),E(w,[Rt(n,o),Rt(o,s),st(Et,n),l&&l.Rt(i),r(i,k,t)]),i},A=st(P,!0),L=st(P,!1);return A(),L(),[{Nt:()=>{const t=(()=>{const{Vt:t,Lt:e}=n,r=(t,e)=>yt(0,1,t/(t+e)||0);return{x:r(e.x,t.x),y:r(e.y,t.y)}})(),e=t=>e=>[e.Ut,{[o]:Vt(t)+""}];T($,e(t.x)),T(S,e(t.y))},qt:()=>{if(!v){const{Tt:t}=n,e=ye(t,ue(h)),r=t=>e=>[e.Ut,{[s]:Vt(t)+""}];T($,r(e.x)),T(S,r(e.y))}},jt:()=>{const{Tt:t}=n,e=pe(t),r=t=>e=>[e.Ut,{[i]:t?"0":"1"}];T($,r(e.x)),T(S,r(e.y)),v&&($.forEach(C.x.Rt),S.forEach(C.y.Rt))},Bt:()=>{if(x&&!f){const{Vt:t,Tt:e}=n,r=pe(e),o=ye(e,ue(h)),s=e=>{const{Ut:n}=e,s=Ht(n)===p&&n,i=(t,e,n)=>{const r=e*t;return Bt(n?r:-r)};return[s,s&&{transform:qt({x:i(o.x,t.x,r.x),y:i(o.y,t.y,r.y)})}]};T($,s),T(S,s)}},Ft:k,Xt:{Yt:$,Wt:A,Gt:st(T,$)},Jt:{Yt:S,Wt:L,Gt:st(T,S)}},()=>(Rt(O,$[0].Ut),Rt(O,S[0].Ut),st(_,w))]},Rn=(t,e,n,r)=>(o,l,c)=>{const{ht:a,U:d,L:p,gt:y,Kt:h,Ot:f}=e,{Ut:v,Pt:x,kt:b}=o,[g,w]=it(333),[m,S]=it(444),O=t=>{$(y.scrollBy)&&y.scrollBy({behavior:"smooth",left:t.x,top:t.y})};let M=!0;return st(_,[se(b,"pointermove pointerleave",r),se(v,"pointerenter",(()=>{l(nn,!0)})),se(v,"pointerleave pointercancel",(()=>{l(nn,!1)})),!p&&se(v,"mousedown",(()=>{const t=Lt();(vt(t,Pe)||vt(t,Te)||t===document.body)&&u(st(he,d),25)})),se(v,"wheel",(t=>{const{deltaX:e,deltaY:n,deltaMode:r}=t;M&&0===r&&Ht(v)===a&&O({x:e,y:n}),M=!1,l(ln,!0),g((()=>{M=!0,l(ln)})),le(t)}),{H:!1,I:!0}),se(v,"pointerdown",st(se,h,"click",ce,{A:!0,I:!0,H:!1}),{I:!0}),(()=>{const e="pointerup pointercancel lostpointercapture",r=`client${c?"X":"Y"}`,o=c?X:G,l=c?"left":"top",a=c?"w":"h",u=c?"x":"y",d=(t,e)=>r=>{const{Vt:o}=n,s=Jt(x)[a]-Jt(b)[a],i=e*r/s*o[u];ae(y,{[u]:t+i})},p=[];return se(x,"pointerdown",(n=>{const c=At(n.target,`.${Qe}`)===b,v=c?b:x,g=t.scrollbars,w=g[c?"dragScroll":"clickScroll"],{button:$,isPrimary:M,pointerType:C}=n,{pointers:D}=g;if(0===$&&M&&w&&(D||[]).includes(C)){_(p),S();const t=!c&&(n.shiftKey||"instant"===w),g=st(ee,b),$=st(ee,x),M=(t,e)=>(t||g())[l]-(e||$())[l],C=s(ee(y)[o])/Jt(y)[a]||1,D=d(ue(y)[u],1/C),T=n[r],k=g(),P=$(),H=k[o],A=M(k,P)+H/2,L=T-P[l],R=c?0:L-A,U=t=>{_(j),v.releasePointerCapture(t.pointerId)},z=c||t,I=f(),j=[se(h,e,U),se(h,"selectstart",(t=>le(t)),{H:!1}),se(x,e,U),z&&se(x,"pointermove",(t=>D(R+(t[r]-T)))),z&&(()=>{const t=ue(y);I();const e=ue(y),n={x:e.x-t.x,y:e.y-t.y};(i(n.x)>3||i(n.y)>3)&&(f(),ae(y,t),O(n),m(I))})];if(v.setPointerCapture(n.pointerId),t)D(R);else if(!c){const t=we(xn);if(t){const e=t(D,R,H,(t=>{t?I():E(j,I)}));E(j,e),E(p,st(e,!0))}}}}))})(),w,S])},Un=t=>{const e=Cn(),{Z:r,P:o}=e,{elements:s}=r(),{padding:i,viewport:l,content:c}=s,a=D(t),u=a?{}:t,{elements:d}=u,{padding:p,viewport:y,content:h}=d||{},f=a?t:u.target,v=kt(f),x=f.ownerDocument,b=x.documentElement,g=()=>x.defaultView||n,w=st(An,[f]),m=st(Ln,[f]),$=st(zt,""),S=st(w,$,l),O=st(m,$,c),M=S(y),C=M===f,T=C&&v,k=!C&&O(h),P=!C&&M===k,H=T?b:M,L=T?H:f,R=!C&&m($,i,p),U=!P&&k,z=[U,H,R,L].map((t=>D(t)&&!Ht(t)&&t)),I=t=>t&&A(z,t),j=!I(H)&&(t=>{const e=Jt(t),n=Qt(t),r=Zt(t,q),o=Zt(t,Y);return n.w-e.w>0&&!yn(r)||n.h-e.h>0&&!yn(o)})(H)?H:f,N=T?b:H,V={vt:f,ht:L,U:H,ln:R,bt:U,gt:N,Qt:T?x:H,an:v?b:j,Kt:x,yt:v,Mt:a,L:C,un:g,wt:t=>St(H,Pe,t),St:(t,e)=>$t(H,Pe,t,e),Ot:()=>$t(N,Pe,Re,!0)},{vt:B,ht:F,ln:Z,U:W,bt:X}=V,G=[()=>{bt(F,[Te,Me]),bt(B,Me),v&&bt(b,[Me,Te])}];let J=Pt([X,W,Z,F,B].find((t=>t&&!I(t))));const K=T?B:X||W,Q=st(_,G);return[V,()=>{const t=g(),e=Lt(),n=t=>{Rt(Ht(t),Pt(t)),Et(t)},r=t=>se(t,"focusin focusout focus blur",ce,{I:!0,H:!1}),s="tabindex",i=ft(W,s),l=r(e);return xt(F,Te,C?"":ke),xt(Z,Ie,""),xt(W,Pe,""),xt(X,_e,""),C||(xt(W,s,i||"-1"),v&&xt(b,De,"")),Rt(K,J),Rt(F,Z),Rt(Z||F,!C&&W),Rt(W,X),E(G,[l,()=>{const t=Lt(),e=I(W),o=e&&t===W?B:t,l=r(o);bt(Z,Ie),bt(X,_e),bt(W,Pe),v&&bt(b,De),i?xt(W,s,i):bt(W,s),I(X)&&n(X),e&&n(W),I(Z)&&n(Z),he(o),l()}]),o&&!C&&(mt(W,Pe,Ue),E(G,st(bt,W,Pe))),he(!C&&v&&e===B&&t.top===t?W:e),l(),J=0,Q},Q]},zn=({bt:t})=>({Zt:e,_n:n,Dt:r})=>{const{xt:o}=e||{},{$t:s}=n;t&&(o||r)&&Ft(t,{[G]:s&&"100%"})},In=({ht:t,ln:n,U:r,L:o},s)=>{const[i,l]=e({i:rt,o:Wt()},st(Wt,t,"padding",""));return({It:t,Zt:e,_n:c,Dt:a})=>{let[u,d]=l(a);const{P:p}=Cn(),{ft:y,Ht:h,Ct:f}=e||{},{B:v}=c,[x,b]=t("paddingAbsolute");(y||d||a||h)&&([u,d]=i(a));const g=!o&&(b||f||d);if(g){const t=!x||!n&&!p,e=u.r+u.l,o=u.t+u.b,i={[Z]:t&&!v?-e:0,[W]:t?-o:0,[F]:t&&v?-e:0,top:t?-u.t:0,right:t?v?-u.r:"auto":0,left:t?v?"auto":-u.l:0,[X]:t&&`calc(100% + ${e}px)`},l={[j]:t?u.t:0,[N]:t?u.r:0,[B]:t?u.b:0,[V]:t?u.l:0};Ft(n||r,i),Ft(r,l),ut(s,{ln:u,dn:!t,F:n?l:ut({},i,l)})}return{fn:g}}},_n=(t,o)=>{const s=Cn(),{ht:i,ln:l,U:c,L:u,Qt:d,gt:p,yt:y,St:h,un:f}=t,{P:v}=s,x=y&&u,b=st(r,0),g={display:()=>!1,direction:t=>"ltr"!==t,flexDirection:t=>t.endsWith("-reverse"),writingMode:t=>"horizontal-tb"!==t},w=at(g),m={i:et,o:{w:0,h:0}},$={i:nt,o:{}},S=t=>{h(Ee,!x&&t)},O=t=>{const e=w.some((e=>{const n=t[e];return n&&g[e](n)}));if(!e)return{D:{x:0,y:0},M:{x:1,y:1}};S(!0);const n=ue(p),r=h(ze,!0),o=se(d,Q,(t=>{const e=ue(p);t.isTrusted&&e.x===n.x&&e.y===n.y&&ie(t)}),{I:!0,A:!0});ae(p,{x:0,y:0}),r();const s=ue(p),i=Qt(p);ae(p,{x:i.w,y:i.h});const l=ue(p);ae(p,{x:l.x-s.x<1&&-i.w,y:l.y-s.y<1&&-i.h});const c=ue(p);return ae(p,n),a((()=>o())),{D:s,M:c}},M=(t,e)=>{const r=n.devicePixelRatio%1!=0?1:0,o={w:b(t.w-e.w),h:b(t.h-e.h)};return{w:o.w>r?o.w:0,h:o.h>r?o.h:0}},[C,D]=e(m,st(te,c)),[T,k]=e(m,st(Qt,c)),[P,H]=e(m),[A]=e($),[L,E]=e(m),[R]=e($),[U]=e({i:(t,e)=>tt(t,e,w),o:{}},(()=>(t=>!!t&&(t=>!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length))(t))(c)?Zt(c,w):{})),[z,I]=e({i:(t,e)=>nt(t.D,e.D)&&nt(t.M,e.M),o:{D:{x:0,y:0},M:{x:0,y:0}}}),_=we(fn),j=(t,e)=>`${e?He:Ae}${(t=>{const e=String(t||"");return e?e[0].toUpperCase()+e.slice(1):""})(t)}`,N=t=>{const e=t=>[J,K,Q].map((e=>j(e,t))),n=e(!0).concat(e()).join(" ");h(n),h(at(t).map((e=>j(t[e],"x"===e))).join(" "),!0)};return({It:e,Zt:n,_n:r,Dt:a},{fn:u})=>{const{ft:d,Ht:p,Ct:y,dt:g,zt:w}=n||{},m=_&&_.V(t,o,r,s,e),{Y:$,W:j,G:V}=m||{},[B,F]=pn(e,s),[Z,W]=e("overflow"),q=yn(Z.x),Y=yn(Z.y);let X=D(a),G=k(a),J=H(a),K=E(a);F&&v&&h(Ue,!B);{St(i,Te,Ce)&&S(!0);const[t]=j?j():[],[e]=X=C(a),[n]=G=T(a),r=Kt(c),o=x&&Gt(f()),s={w:b(n.w+e.w),h:b(n.h+e.h)},l={w:b((o?o.w:r.w+b(r.w-n.w))+e.w),h:b((o?o.h:r.h+b(r.h-n.h))+e.h)};t&&t(),K=L(l),J=P(M(s,l),a)}const[Q,tt]=K,[et,nt]=J,[rt,ot]=G,[st,it]=X,[lt,ct]=A({x:et.w>0,y:et.h>0}),at=q&&Y&&(lt.x||lt.y)||q&&lt.x&&!lt.y||Y&&lt.y&&!lt.x,dt=u||y||w||it||ot||tt||nt||W||F||!0,pt=hn(lt,Z),[yt,ht]=R(pt.k),[ft,vt]=U(a),xt=y||g||vt||ct||a,[bt,gt]=xt?z(O(ft),a):I();return dt&&(ht&&N(pt.k),V&&$&&Ft(c,V(pt,r,$(pt,rt,st)))),S(!1),$t(i,Te,Ce,at),$t(l,Ie,Ce,at),ut(o,{k:yt,Lt:{x:Q.w,y:Q.h},Vt:{x:et.w,y:et.h},rn:lt,Tt:de(bt,et)}),{en:ht,nn:tt,sn:nt,cn:gt||nt,vn:xt}}},jn=t=>{const[e,n,r]=Un(t),o={ln:{t:0,r:0,b:0,l:0},dn:!1,F:{[Z]:0,[W]:0,[F]:0,[j]:0,[N]:0,[B]:0,[V]:0},Lt:{x:0,y:0},Vt:{x:0,y:0},k:{x:K,y:K},rn:{x:!1,y:!1},Tt:{D:{x:0,y:0},M:{x:0,y:0}}},{vt:s,gt:i,L:l,Ot:c}=e,{P:a,T:u}=Cn(),d=!a&&(u.x||u.y),p=[zn(e),In(e,o),_n(e,o)];return[n,t=>{const e={},n=d&&ue(i),r=n&&c();return H(p,(n=>{ut(e,n(t,e)||{})})),ae(i,n),r&&r(),!l&&ae(s,0),e},o,e,r]},Nn=new WeakMap,Vn=t=>Nn.get(t),Bn=(t,e,n)=>{const{nt:r}=Cn(),o=D(t),s=o?t:t.target,i=Vn(s);if(e&&!i){let i=!1;const l=[],c={},a=t=>{const e=dt(t),n=we(me);return n?n(e,!0):e},u=ut({},r(),a(e)),[d,p,y]=ve(),[h,f,v]=ve(n),g=(t,e)=>{v(t,e),y(t,e)},[w,m,$,S,O]=((t,e,n,r)=>{let o=!1;const s=Sn(e,{}),[i,l,c,a,u]=jn(t),[d,p,y]=Pn(a,c,s,(t=>{b({},t)})),[h,f,,v]=((t,e,n,r,o,s)=>{let i,l,c,a,u,d=ot,p=0;const y=["mouse","pen"],h=t=>y.includes(t.pointerType),[f,v]=it(),[x,b]=it(100),[g,w]=it(100),[m,$]=it((()=>p)),[S,O]=En(t,o,r,Rn(e,o,r,(t=>h(t)&&R()))),{ht:M,Qt:C,yt:D}=o,{Ft:T,Nt:k,qt:P,jt:H,Bt:A}=S,L=(t,e)=>{if($(),t)T(sn);else{const t=st(T,sn,!0);p>0&&!e?m(t):t()}},R=()=>{(c?i:a)||(L(!0),x((()=>{L(!1)})))},U=t=>{T(on,t,!0),T(on,t,!1)},z=t=>{h(t)&&(i=c,c&&L(!0))},I=[$,b,w,v,()=>d(),se(M,"pointerover",z,{A:!0}),se(M,"pointerenter",z),se(M,"pointerleave",(t=>{h(t)&&(i=!1,c&&L(!1))})),se(M,"pointermove",(t=>{h(t)&&l&&R()})),se(C,"scroll",(t=>{f((()=>{P(),R()})),s(t),A()}))];return[()=>st(_,E(I,O())),({It:t,Dt:e,Zt:o,tn:s})=>{const{nn:i,sn:y,en:h,cn:f}=s||{},{Ct:v,dt:x}=o||{},{B:b}=n,{T:w}=Cn(),{k:m,rn:$}=r,[S,O]=t("showNativeOverlaidScrollbars"),[M,E]=t("scrollbars.theme"),[R,z]=t("scrollbars.visibility"),[I,_]=t("scrollbars.autoHide"),[j,N]=t("scrollbars.autoHideSuspend"),[V]=t("scrollbars.autoHideDelay"),[B,F]=t("scrollbars.dragScroll"),[Z,W]=t("scrollbars.clickScroll"),[q,Y]=t("overflow"),X=x&&!e,G=$.x||$.y,K=i||y||f||v||e,tt=h||z||Y,et=S&&w.x&&w.y,nt=(t,e,n)=>{const r=t.includes(Q)&&(R===J||"auto"===R&&e===Q);return T(tn,r,n),r};if(p=V,X&&(j&&G?(U(!1),d(),g((()=>{d=se(C,"scroll",st(U,!0),{A:!0})}))):U(!0)),O&&T(qe,et),E&&(T(u),T(M,!0),u=M),N&&!j&&U(!0),_&&(l="move"===I,c="leave"===I,a="never"===I,L(a,!0)),F&&T(an,B),W&&T(cn,!!Z),tt){const t=nt(q.x,m.x,!0),e=nt(q.y,m.y,!1);T(en,!(t&&e))}K&&(P(),k(),A(),f&&H(),T(rn,!$.x,!0),T(rn,!$.y,!1),T(Xe,b&&!D))},{},S]})(t,e,y,c,a,(t=>g("scroll",[C,t]))),x=t=>at(t).some((e=>!!t[e])),b=(t,s)=>{if(n())return!1;const{pn:i,Dt:c,At:a,hn:u}=t,d=i||{},h=!!c||!o,v={It:Sn(e,d,h),pn:d,Dt:h};if(u)return f(v),!1;const b=s||p(ut({},v,{At:a})),g=l(ut({},v,{_n:y,Zt:b}));f(ut({},v,{Zt:b,tn:g}));const w=x(b),m=x(g),$=w||m||!pt(d)||h;return o=!0,$&&r(t,{Zt:b,tn:g}),$};return[()=>{const{an:t,gt:e,Ot:n}=a,r=ue(t),o=[d(),i(),h()],s=n();return ae(e,r),s(),st(_,o)},b,()=>({gn:y,bn:c}),{yn:a,wn:v},u]})(t,u,(()=>i),(({pn:t,Dt:e},{Zt:n,tn:r})=>{const{ft:o,Ct:s,xt:i,Ht:l,Et:c,dt:a}=n,{nn:u,sn:d,en:p,cn:y}=r;g("updated",[C,{updateHints:{sizeChanged:!!o,directionChanged:!!s,heightIntrinsicChanged:!!i,overflowEdgeChanged:!!u,overflowAmountChanged:!!d,overflowStyleChanged:!!p,scrollCoordinatesChanged:!!y,contentMutation:!!l,hostMutation:!!c,appear:!!a},changedOptions:t||{},force:!!e}])})),M=t=>{(t=>{Nn.delete(t)})(s),_(l),i=!0,g("destroyed",[C,t]),p(),f()},C={options(t,e){if(t){const n=e?r():{},o=$n(u,ut(n,a(t)));pt(o)||(ut(u,o),m({pn:o}))}return ut({},u)},on:h,off:(t,e)=>{t&&e&&f(t,e)},state(){const{gn:t,bn:e}=$(),{B:n}=t,{Lt:r,Vt:o,k:s,rn:l,ln:c,dn:a,Tt:u}=e;return ut({},{overflowEdge:r,overflowAmount:o,overflowStyle:s,hasOverflow:l,scrollCoordinates:{start:u.D,end:u.M},padding:c,paddingAbsolute:a,directionRTL:n,destroyed:i})},elements(){const{vt:t,ht:e,ln:n,U:r,bt:o,gt:s,Qt:i}=S.yn,{Xt:l,Jt:c}=S.wn,a=t=>{const{kt:e,Pt:n,Ut:r}=t;return{scrollbar:r,track:n,handle:e}},u=t=>{const{Yt:e,Wt:n}=t,r=a(e[0]);return ut({},r,{clone:()=>{const t=a(n());return m({hn:!0}),t}})};return ut({},{target:t,host:e,padding:n||r,viewport:r,content:o||r,scrollOffsetElement:s,scrollEventElement:i,scrollbarHorizontal:u(l),scrollbarVertical:u(c)})},update:t=>m({Dt:t,At:!0}),destroy:st(M,!1),plugin:t=>c[at(t)[0]]};return E(l,[O]),((t,e)=>{Nn.set(t,e)})(s,C),ge(xe,Bn,[C,d,c]),((t,e)=>{const{nativeScrollbarsOverlaid:n,body:r}=e||{},{T:o,P:s,Z:i}=Cn(),{nativeScrollbarsOverlaid:l,body:c}=i().cancel,a=null!=n?n:l,u=x(r)?c:r,d=(o.x||o.y)&&a,p=t&&(b(u)?!s:u);return!!d||!!p})(S.yn.yt,!o&&t.cancel)?(M(!0),C):(E(l,w()),g("initialized",[C]),C.update(),C)}return i};return Bn.plugin=t=>{const e=S(t),n=e?t:[t],r=n.map((t=>ge(t,Bn)[0]));return(t=>{H(t,(t=>H(t,((e,n)=>{xe[n]=t[n]}))))})(n),e?r:r[0]},Bn.valid=t=>{const e=t&&t.elements,n=$(e)&&e();return C(n)&&!!Vn(n.target)},Bn.env=()=>{const{N:t,T:e,P:n,J:r,st:o,et:s,Z:i,tt:l,nt:c,ot:a}=Cn();return ut({},{scrollbarsSize:t,scrollbarsOverlaid:e,scrollbarsHiding:n,scrollTimeline:r,staticDefaultInitialization:o,staticDefaultOptions:s,getDefaultInitialization:i,setDefaultInitialization:l,getDefaultOptions:c,setDefaultOptions:a})},Bn.nonce=t=>{On=t},Bn.trustedTypePolicy=t=>{Ut=t},t.ClickScrollPlugin=bn,t.OverlayScrollbars=Bn,t.ScrollbarsHidingPlugin=vn,t.SizeObserverPlugin=dn,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t}({}); \ No newline at end of file
diff --git a/assets/overlayscrollbars.min.css b/assets/overlayscrollbars.min.css
new file mode 100644
index 0000000..47a496c
--- /dev/null
+++ b/assets/overlayscrollbars.min.css
@@ -0,0 +1,9 @@
+/*!
+ * OverlayScrollbars
+ * Version: 2.11.0
+ *
+ * Copyright (c) Rene Haas | KingSora.
+ * https://github.com/KingSora
+ *
+ * Released under the MIT license.
+ */.os-size-observer,.os-size-observer-listener{box-sizing:border-box;direction:inherit;overflow:hidden;pointer-events:none;scroll-behavior:auto!important;visibility:hidden}.os-size-observer,.os-size-observer-listener,.os-size-observer-listener-item,.os-size-observer-listener-item-final{left:0;position:absolute;top:0;writing-mode:horizontal-tb}.os-size-observer{border:inherit;bottom:0;box-sizing:inherit;contain:strict;display:flex;flex-direction:row;flex-wrap:nowrap;left:0;margin:-133px;padding:inherit;right:0;top:0;transform:scale(.1);z-index:-1}.os-size-observer:before{box-sizing:inherit;content:"";flex:none;height:10px;padding:10px;width:10px}.os-size-observer-appear{animation:os-size-observer-appear-animation 1ms forwards}.os-size-observer-listener{border:inherit;box-sizing:border-box;flex:auto;margin:-133px;padding:inherit;position:relative;transform:scale(10)}.os-size-observer-listener.ltr{margin-left:0;margin-right:-266px}.os-size-observer-listener.rtl{margin-left:-266px;margin-right:0}.os-size-observer-listener:empty:before{content:"";height:100%;width:100%}.os-size-observer-listener:empty:before,.os-size-observer-listener>.os-size-observer-listener-item{border:inherit;box-sizing:content-box;display:block;flex:auto;padding:inherit;position:relative}.os-size-observer-listener-scroll{box-sizing:border-box;display:flex}.os-size-observer-listener-item{bottom:0;direction:ltr;flex:none;overflow:hidden;right:0}.os-size-observer-listener-item-final{transition:none}@keyframes os-size-observer-appear-animation{0%{cursor:auto}to{cursor:none}}.os-trinsic-observer{border:none;box-sizing:border-box;contain:strict;flex:none;height:0;margin:0;max-height:1px;max-width:0;overflow:hidden;padding:0;position:relative;top:calc(100% + 1px);z-index:-1}.os-trinsic-observer:not(:empty){height:calc(100% + 1px);top:-1px}.os-trinsic-observer:not(:empty)>.os-size-observer{height:1000%;min-height:1px;min-width:1px;width:1000%}[data-overlayscrollbars-initialize],[data-overlayscrollbars-viewport~=scrollbarHidden]{scrollbar-width:none!important}[data-overlayscrollbars-initialize]::-webkit-scrollbar,[data-overlayscrollbars-initialize]::-webkit-scrollbar-corner,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar-corner{-webkit-appearance:none!important;appearance:none!important;display:none!important;height:0!important;width:0!important}[data-overlayscrollbars-initialize]:not([data-overlayscrollbars]):not(html):not(body){overflow:auto}html[data-overlayscrollbars-body]{overflow:hidden}html[data-overlayscrollbars-body],html[data-overlayscrollbars-body]>body{height:100%;margin:0;width:100%}html[data-overlayscrollbars-body]>body{margin:0;overflow:visible}[data-overlayscrollbars]{position:relative}[data-overlayscrollbars-padding],[data-overlayscrollbars~=host]{align-items:stretch!important;display:flex;flex-direction:row!important;flex-wrap:nowrap!important;scroll-behavior:auto!important}[data-overlayscrollbars-padding],[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]){border:none;box-sizing:inherit;flex:auto!important;height:auto;margin:0;min-width:0;padding:0;position:relative;width:100%;z-index:0}[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]){--os-vaw:0;--os-vah:0;outline:none}[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]):focus{outline:none}[data-overlayscrollbars-viewport][data-overlayscrollbars-viewport~=arrange]:before{content:"";height:var(--os-vah);min-height:1px;min-width:1px;pointer-events:none;position:absolute;width:var(--os-vaw);z-index:-1}[data-overlayscrollbars-padding],[data-overlayscrollbars-viewport],[data-overlayscrollbars]{overflow:hidden!important}[data-overlayscrollbars-padding~=noClipping],[data-overlayscrollbars~=noClipping]{overflow:visible!important}[data-overlayscrollbars-viewport~=measuring]{overflow:hidden!important;scroll-behavior:auto!important;scroll-snap-type:none!important}[data-overlayscrollbars-viewport~=overflowXVisible]:not([data-overlayscrollbars-viewport~=measuring]){overflow-x:visible!important}[data-overlayscrollbars-viewport~=overflowXHidden]{overflow-x:hidden!important}[data-overlayscrollbars-viewport~=overflowXScroll]{overflow-x:scroll!important}[data-overlayscrollbars-viewport~=overflowYVisible]:not([data-overlayscrollbars-viewport~=measuring]){overflow-y:visible!important}[data-overlayscrollbars-viewport~=overflowYHidden]{overflow-y:hidden!important}[data-overlayscrollbars-viewport~=overflowYScroll]{overflow-y:scroll!important}[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId){font-size:0!important;line-height:0!important}[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId):after,[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId):before,[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId)>*{clip:rect(0,0,0,0)!important;border-width:0!important;display:none!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-overlayscrollbars-viewport~=scrolling]{scroll-behavior:auto!important;scroll-snap-type:none!important}[data-overlayscrollbars-content]{box-sizing:inherit}[data-overlayscrollbars-contents]:not(#osFakeId):not([data-overlayscrollbars-padding]):not([data-overlayscrollbars-viewport]):not([data-overlayscrollbars-content]){display:contents}[data-overlayscrollbars-grid],[data-overlayscrollbars-grid] [data-overlayscrollbars-padding]{display:grid;grid-template:1fr/1fr}[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding],[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding]>[data-overlayscrollbars-viewport],[data-overlayscrollbars-grid]>[data-overlayscrollbars-viewport]{height:auto!important;width:auto!important}@property --os-scroll-percent{syntax:"<number>";inherits:true;initial-value:0}@property --os-viewport-percent{syntax:"<number>";inherits:true;initial-value:0}.os-scrollbar{--os-viewport-percent:0;--os-scroll-percent:0;--os-scroll-direction:0;--os-scroll-percent-directional:calc(var(--os-scroll-percent) - (var(--os-scroll-percent) + (1 - var(--os-scroll-percent))*-1)*var(--os-scroll-direction));contain:size layout;contain:size layout style;opacity:0;pointer-events:none;position:absolute;transition:opacity .15s,visibility .15s,top .15s,right .15s,bottom .15s,left .15s;visibility:hidden}body>.os-scrollbar{position:fixed;z-index:99999}.os-scrollbar-transitionless{transition:none!important}.os-scrollbar-track{border:none!important;padding:0!important;position:relative}.os-scrollbar-handle{position:absolute}.os-scrollbar-handle,.os-scrollbar-track{height:100%;pointer-events:none;width:100%}.os-scrollbar.os-scrollbar-handle-interactive .os-scrollbar-handle,.os-scrollbar.os-scrollbar-track-interactive .os-scrollbar-track{pointer-events:auto;touch-action:none}.os-scrollbar-horizontal{bottom:0;left:0}.os-scrollbar-vertical{right:0;top:0}.os-scrollbar-rtl.os-scrollbar-horizontal{right:0}.os-scrollbar-rtl.os-scrollbar-vertical{left:0;right:auto}.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-auto-hide.os-scrollbar-auto-hide-hidden{opacity:0;visibility:hidden}.os-scrollbar-interaction.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-unusable,.os-scrollbar-unusable *,.os-scrollbar-wheel,.os-scrollbar-wheel *{pointer-events:none!important}.os-scrollbar-unusable .os-scrollbar-handle{opacity:0!important;transition:none!important}.os-scrollbar-horizontal .os-scrollbar-handle{bottom:0;left:calc(var(--os-scroll-percent-directional)*100%);transform:translateX(calc(var(--os-scroll-percent-directional)*-100%));width:calc(var(--os-viewport-percent)*100%)}.os-scrollbar-vertical .os-scrollbar-handle{height:calc(var(--os-viewport-percent)*100%);right:0;top:calc(var(--os-scroll-percent-directional)*100%);transform:translateY(calc(var(--os-scroll-percent-directional)*-100%))}@supports (container-type:size){.os-scrollbar-track{container-type:size}.os-scrollbar-horizontal .os-scrollbar-handle{left:auto;transform:translateX(calc(var(--os-scroll-percent-directional)*100cqw + var(--os-scroll-percent-directional)*-100%))}.os-scrollbar-vertical .os-scrollbar-handle{top:auto;transform:translateY(calc(var(--os-scroll-percent-directional)*100cqh + var(--os-scroll-percent-directional)*-100%))}.os-scrollbar-rtl.os-scrollbar-horizontal .os-scrollbar-handle{left:0;right:auto}}.os-scrollbar-rtl.os-scrollbar-vertical .os-scrollbar-handle{left:0;right:auto}.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless.os-scrollbar-rtl{left:0;right:0}.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless.os-scrollbar-rtl{bottom:0;top:0}@media print{.os-scrollbar{display:none}}.os-scrollbar{--os-size:0;--os-padding-perpendicular:0;--os-padding-axis:0;--os-track-border-radius:0;--os-track-bg:none;--os-track-bg-hover:none;--os-track-bg-active:none;--os-track-border:none;--os-track-border-hover:none;--os-track-border-active:none;--os-handle-border-radius:0;--os-handle-bg:none;--os-handle-bg-hover:none;--os-handle-bg-active:none;--os-handle-border:none;--os-handle-border-hover:none;--os-handle-border-active:none;--os-handle-min-size:33px;--os-handle-max-size:none;--os-handle-perpendicular-size:100%;--os-handle-perpendicular-size-hover:100%;--os-handle-perpendicular-size-active:100%;--os-handle-interactive-area-offset:0}.os-scrollbar-track{background:var(--os-track-bg);border:var(--os-track-border);border-radius:var(--os-track-border-radius);transition:opacity .15s,background-color .15s,border-color .15s}.os-scrollbar-track:hover{background:var(--os-track-bg-hover);border:var(--os-track-border-hover)}.os-scrollbar-track:active{background:var(--os-track-bg-active);border:var(--os-track-border-active)}.os-scrollbar-handle{background:var(--os-handle-bg);border:var(--os-handle-border);border-radius:var(--os-handle-border-radius)}.os-scrollbar-handle:hover{background:var(--os-handle-bg-hover);border:var(--os-handle-border-hover)}.os-scrollbar-handle:active{background:var(--os-handle-bg-active);border:var(--os-handle-border-active)}.os-scrollbar-handle:before,.os-scrollbar-track:before{bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}.os-scrollbar-horizontal{height:var(--os-size);padding:var(--os-padding-perpendicular) var(--os-padding-axis);right:var(--os-size)}.os-scrollbar-horizontal.os-scrollbar-rtl{left:var(--os-size);right:0}.os-scrollbar-horizontal .os-scrollbar-track:before{bottom:calc(var(--os-padding-perpendicular)*-1);top:calc(var(--os-padding-perpendicular)*-1)}.os-scrollbar-horizontal .os-scrollbar-handle{height:var(--os-handle-perpendicular-size);max-width:var(--os-handle-max-size);min-width:var(--os-handle-min-size);transition:opacity .15s,background-color .15s,border-color .15s,height .15s}.os-scrollbar-horizontal .os-scrollbar-handle:before{bottom:calc(var(--os-padding-perpendicular)*-1);top:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset))*-1)}.os-scrollbar-horizontal:hover .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-horizontal:active .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-active)}.os-scrollbar-vertical{bottom:var(--os-size);padding:var(--os-padding-axis) var(--os-padding-perpendicular);width:var(--os-size)}.os-scrollbar-vertical .os-scrollbar-track:before{left:calc(var(--os-padding-perpendicular)*-1);right:calc(var(--os-padding-perpendicular)*-1)}.os-scrollbar-vertical .os-scrollbar-handle{max-height:var(--os-handle-max-size);min-height:var(--os-handle-min-size);transition:opacity .15s,background-color .15s,border-color .15s,width .15s;width:var(--os-handle-perpendicular-size)}.os-scrollbar-vertical .os-scrollbar-handle:before{left:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset))*-1);right:calc(var(--os-padding-perpendicular)*-1)}.os-scrollbar-vertical.os-scrollbar-rtl .os-scrollbar-handle:before{left:calc(var(--os-padding-perpendicular)*-1);right:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset))*-1)}.os-scrollbar-vertical:hover .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-vertical:active .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-active)}.os-theme-none.os-scrollbar,[data-overlayscrollbars-viewport~=measuring]>.os-scrollbar{display:none!important}.os-theme-dark,.os-theme-light{--os-size:8px;--os-padding-perpendicular:0px;--os-padding-axis:0px;--os-track-border-radius:0px;--os-handle-interactive-area-offset:0px;--os-handle-border-radius:0px;box-sizing:border-box}.os-theme-dark{--os-handle-bg:rgba(0,0,0);--os-handle-bg-hover:rgba(0,0,0);--os-handle-bg-active:rgba(0,0,0)}.os-theme-light{--os-handle-bg:hsla(0,0%,100%,.44);--os-handle-bg-hover:hsla(0,0%,100%,.55);--os-handle-bg-active:hsla(0,0%,100%,.66)}
diff --git a/assets/style.scss b/assets/style.scss
new file mode 100644
index 0000000..10042c2
--- /dev/null
+++ b/assets/style.scss
@@ -0,0 +1,1605 @@
+/*
+ * SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+ *
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+/* App-wide styling */
+img {
+ display: block;
+}
+
+::-webkit-scrollbar {
+ width: 8px;
+}
+.messages-buffer::-webkit-scrollbar {
+ width: 10px !important;
+}
+
+::-webkit-scrollbar-thumb {
+ background: black;
+}
+
+body {
+ max-width: 100vw;
+ max-height: 100vh;
+ min-width: 100vw;
+ min-height: 100vh;
+ background: linear-gradient(180deg, #392C25 40%, #71574A 100%);
+ color: #dcdcdc;
+ font-family: 'K2D', Tahoma, Geneva, Verdana, sans-serif;
+ padding: 0;
+ margin: 0;
+ border: 0;
+ word-break: break-word;
+ word-wrap: break-word;
+ text-wrap: wrap;
+ overflow-wrap: break-word;
+ display: flex;
+ justify-content: stretch;
+ align-items: stretch;
+ flex: 1 1 auto;
+}
+
+html {
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+
+.fill {
+ width: 100vw;
+ height: 100vh;
+}
+
+.center {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+#hero {
+ display: flex;
+ flex-wrap: wrap;
+ flex: 1 1 auto;
+ align-items: center;
+ justify-content: center;
+ gap: 8px;
+}
+
+#hero img {
+ height: 128px;
+ width: 128px;
+ max-width: 100%;
+}
+
+#hero h1 {
+ font-size: 64px;
+ display: inline-block;
+ width: max(auto, min-content);
+}
+
+.panel {
+ border: 2px solid black;
+ border-color: black;
+ border-style: solid;
+ background: linear-gradient(180deg, #364B3B 0%, #19311F 100%);
+}
+
+#login-form {
+ padding: 32px;
+ margin: 4px;
+ max-width: 850px;
+}
+
+#login-form form {
+ margin: auto;
+ max-width: 350px;
+ display: flex;
+ flex-direction: column;
+ /* align-items: center; */
+ justify-content: center;
+ gap: 4px;
+}
+
+#login-form .button {
+ margin-top: 16px;
+}
+
+#login-form form>input {
+ min-width: 0;
+ width: 100%;
+ max-width: 100%;
+ font-size: 1.5rem;
+}
+
+label {
+ font-weight: bold;
+}
+
+input[type="text"],
+input[type="password"] {
+ font-size: 1rem;
+ border: 2px solid black;
+ font-family: "k2d";
+}
+
+aside {
+ width: 500px;
+ max-height: 100%;
+}
+
+main {
+ width: 100%;
+ height: 100%;
+}
+
+button,
+.button {
+ text-align: center;
+ font-size: 1rem;
+ background: #FACC34;
+ color: #000000;
+ text-decoration: none !important;
+ border: 2px solid black;
+ border-radius: 12px;
+ padding: 0.5em 1em;
+ font-family: K2D;
+ font-weight: 600;
+ box-shadow: inset 0px -0.75em 0.5em #ebb62e, 0 0.25em 0.25em #00000048;
+ cursor: pointer;
+}
+
+.overlay .error {
+ color: black;
+}
+
+button:hover, .button:hover {
+ background: #f9c61b;
+}
+
+button:clicked, .button:clicked {
+ background: #ffc300;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-family: Diolce;
+ margin: 0;
+}
+
+p {
+ margin: 0;
+}
+
+.chats-list,
+.roster-list,
+.settings-sidebar {
+ border-width: 0 2px 0 0;
+ border-color: black;
+ border-style: solid;
+ height: 100%;
+ width: 400px;
+ flex: 0 0 auto;
+ align-self: stretch;
+ display: flex;
+ flex-direction: column;
+}
+
+.settings-sidebar {
+ width: 200px;
+ display: flex;
+ flex-direction: column;
+}
+
+.settings-sidebar>* {
+ padding: 8px 16px;
+ cursor: pointer;
+}
+
+.settings-sidebar>.open,
+.settings-sidebar>*:hover {
+ background: #00000060;
+}
+
+.chats-list>*,
+.roster-list>*,
+.settings .header {
+ padding: 8px 16px;
+}
+
+.chats-list .header,
+.roster-list .header,
+.settings .header {
+ margin-top: 0.4rem;
+ border-bottom: 2px solid black;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.chats-list h2,
+.roster-list h2 {
+ flex: 0 0 auto;
+}
+
+.chats-list-item,
+.roster-list-item,
+{
+ cursor: pointer;
+ display: flex;
+ align-items: start;
+ gap: 8px;
+ border-radius: 1em;
+ padding: 0.5em;
+ margin: 0.5em 0;
+ box-sizing: border-box;
+ align-items: stretch;
+}
+
+.chats-list-item:hover,
+.chats-list-item.open,
+.roster-list-item:hover,
+.roster-list-item.open,
+{
+background: #00000060;
+/* color: black; */
+/* border: 2px solid black; */
+/* box-shadow: inset 0px -0.75em 0.5em #19311F, 0 0.25em 0.25em #00000048; */
+/* background: linear-gradient(0deg, #364B3B 0%, #19311F 100%); */
+}
+
+.chats-list-item .item-info,
+.roster-list-item .item-info {
+ width: 0;
+ display: flex;
+ flex: 1 1 auto;
+ flex-direction: column;
+ justify-content: space-between;
+}
+
+.chats-list-item .main-info,
+.roster-list-item .main-info {
+ display: flex;
+ justify-content: space-between;
+ align-items: baseline;
+}
+
+.chats-list-item .name,
+.roster-list-item .name {
+ font-weight: bold;
+ font-size: 1.1em;
+}
+
+.chats-list-item .name,
+.roster-list-item .name {
+ font-weight: light;
+}
+
+.chats-list-item .sub-info,
+.roster-list-item .sub-info {
+ display: flex;
+}
+
+.chats-list-item .message-preview {
+ font-weight: light;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ max-width: auto;
+}
+
+.roster-list-item .jid {
+ opacity: 0;
+ font-family: Diolce;
+ font-weight: normal;
+}
+
+.roster-list-item:hover .jid {
+ opacity: 100%;
+}
+
+.avatar {
+ object-fit: contain;
+ border-radius: 50%;
+ width: 48px;
+ height: 48px;
+}
+
+.chats-list-item .avatar,
+.roster-list-item .avatar {
+ width: 48px;
+ height: 48px;
+}
+
+.chats-list-chats,
+.roster-list-roster {
+ flex-grow: 1;
+ /* overflow-y: scroll; */
+}
+
+.open-chat-views {
+ flex: 1 1 100%;
+ display: flex;
+ flex-direction: column;
+ max-height: auto;
+}
+
+.open-chat-view {
+ height: auto;
+ display: flex;
+ flex-direction: column;
+ justify-content: stretch;
+ max-height: auto;
+}
+
+.chat-view-header .avatar {
+ width: 64px;
+ height: 64px;
+}
+
+.chat-view-header {
+ border-width: 0 0 2px 0;
+ display: flex;
+ padding: 16px;
+ gap: 16px;
+}
+
+.chat-view-header h2 {
+ font-family: 'K2D';
+ font-weight: bold;
+}
+
+.new-message-composer {
+ border-width: 2px 0 0 0;
+ width: auto;
+ padding: 16px;
+ max-height: auto;
+}
+
+.new-message-composer .overlay-scroll {
+ max-height: min(32em, 50vh);
+ background-color: #dcdcdc;
+ border: 2px solid black;
+}
+
+[contenteditable]:focus {
+ outline: 0px solid transparent;
+}
+
+.new-message-composer .text-box {
+ padding: 8px;
+ white-space: pre-wrap;
+ color: black;
+ /* overflow-y: auto; */
+ font-size: 16px;
+ margin: 0;
+ height: fit-content;
+}
+
+.grow-wrap {
+ /* easy way to plop the elements on top of each other and have them both sized based on the tallest one's height */
+ display: grid;
+}
+
+.grow-wrap::after {
+ /* Note the weird space! Needed to preventy jumpy behavior */
+ content: attr(data-replicated-value) " ";
+ /* This is how textarea text behaves */
+ white-space: pre-wrap;
+ /* Hidden from view, clicks, and screen readers */
+ visibility: hidden;
+ max-height: 5em;
+}
+
+.grow-wrap>textarea {
+ /* You could leave this, but after a user resizes, then it ruins the auto sizing */
+ resize: none;
+ /* Firefox shows scrollbar on growth, you can hide like this. */
+ overflow-y: scroll;
+}
+
+.grow-wrap>textarea,
+.grow-wrap::after {
+ /* Identical styling required!! */
+ border: 2px solid black;
+ padding: 8px;
+ font: inherit;
+
+ /* Place on top of each other */
+ grid-area: 1 / 1 / 2 / 2;
+}
+
+.open-chat-view {
+ flex-grow: 1;
+ max-height: 100%;
+}
+
+.messages-buffer {
+ display: flex;
+ flex-direction: column-reverse;
+ flex-grow: 1;
+ overflow-y: scroll;
+}
+
+
+.messages-buffer .new-day {
+ display: flex;
+ align-items: center;
+ margin: 0.5em 0 0 0;
+ /* margin: 1em -1em; */
+
+
+ &:before,
+ &:after {
+ content: "";
+ flex: 1;
+ height: 2px;
+ margin: 0 1em;
+ background: black;
+ }
+}
+
+.chat-message {
+ display: flex;
+ padding: 4px 0;
+}
+
+.chat-message:hover {
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+.chat-message .left {
+ width: 48px;
+ flex: none;
+ padding: 0 8px;
+}
+
+.chat-message .middle {
+ width: auto;
+ flex-grow: 1;
+}
+
+.chat-message .right {
+ width: 16px;
+ padding: 0 8px;
+ flex: none;
+ align-self: end;
+}
+
+.message-info {
+ display: flex;
+ align-items: baseline;
+ gap: 8px;
+}
+
+.message-text {
+ white-space: pre-wrap;
+}
+
+.chat-message.major {
+ margin-top: 8px;
+}
+
+.chat-message.major .left {
+ height: 48px;
+}
+
+.chat-message.major .middle {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+}
+
+.message-info .message-user-name {
+ font-weight: bold;
+ font-size: 1.1em;
+ margin-bottom: 4px;
+}
+
+.chat-message.major .message-timestamp {
+ font-weight: light;
+ font-size: 0.8em;
+}
+
+.chat-message.minor .message-timestamp {
+ font-weight: light;
+ font-size: 0.7em;
+ /* TODO: better alignment */
+ margin-top: 0.3em;
+}
+
+.chat-message.minor:not(:hover) .message-timestamp {
+ opacity: 0;
+}
+
+.light {
+ filter: invert(99%) sepia(1%) saturate(2689%) hue-rotate(208deg) brightness(106%) contrast(73%);
+}
+
+.chat-message.final .message-delivery,
+.visible {
+ opacity: 100% !important;
+}
+
+.chat-message.final {
+ margin-bottom: 8px;
+}
+
+.chat-message:not(:hover) .message-delivery {
+ opacity: 0;
+}
+
+.sidebar {
+ display: flex;
+ z-index: 1;
+}
+
+.dock {
+ z-index: 30;
+ display: flex;
+ flex-direction: column;
+ border-width: 0 2px 0 0;
+}
+
+
+.dock-item {
+ display: flex;
+ justify-content: center;
+ position: relative;
+ cursor: pointer;
+}
+
+.dock-pill {
+ position: absolute;
+ border-radius: 50%;
+ left: -4px;
+ top: calc(50% - 4px);
+ width: 8px;
+ height: 8px;
+ opacity: 0;
+ background-color: #dcdcdc;
+ transition-duration: 250ms;
+}
+
+.dock-item.open .dock-pill {
+ opacity: 100%;
+}
+
+.dock-item:hover .dock-pill,
+.dock-item.hovering .dock-pill {
+ top: calc(50% - 14px);
+ height: 28px;
+ opacity: 100%;
+}
+
+.dock-item.focused .dock-pill {
+ top: calc(50% - 24px);
+ height: 48px;
+ opacity: 100%;
+}
+
+.dock .shortcuts {
+ padding: 8px 0;
+ border-bottom: 2px solid black;
+}
+
+.dock .shortcuts .dock-item img {
+ width: 64px;
+ height: 64px;
+}
+
+.dock-icon {
+ width: 64px;
+ height: 64px;
+ padding: 4px 8px;
+}
+
+.avatar-with-presence {
+ position: relative;
+ height: fit-content;
+}
+
+.avatar-with-presence>.presence-show-icon {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+}
+
+.dock .pins {
+ flex: 1 1 auto;
+}
+
+.dock .personal {
+ padding: 8px 0;
+ flex: 0 0 auto;
+ border-top: 2px solid black;
+}
+
+.sidebar {
+ position: relative;
+}
+
+.dock .personal .dock-item {
+ padding: 8px 16px
+}
+
+.dock .personal .avatar-with-presence .avatar {
+ width: 48px;
+ height: 48px;
+}
+
+.sidebar-drawer {
+ height: auto;
+ z-index: 5;
+}
+
+.sidebar-hovering-drawer {
+ z-index: 10;
+}
+
+.sidebar .sidebar-hovering-drawer {
+ position: absolute;
+ height: 100%;
+ /* must be width of dock... */
+ left: 82px;
+ transition: left 0.2s ease-out allow-discrete;
+}
+
+@starting-style {
+ .sidebar .sidebar-hovering-drawer {
+ /* TODO: allow to edit this width */
+ left: -318px;
+ }
+}
+
+.sidebar .behind-hovering {
+ width: 402px;
+ transition: width 0.2s ease-out allow-discrete;
+}
+
+@starting-style {
+ .sidebar .behind-hovering {
+ width: 0;
+ }
+}
+
+.overlay {
+ position: relative;
+ z-index: 100;
+}
+
+.overlay-background,
+.modal-background {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100vw;
+ height: 100vh;
+}
+
+.overlay-content {
+ z-index: 101;
+ position: absolute;
+}
+
+.modal {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100vw;
+ height: 100vh;
+ z-index: 150;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background-color: rgba(0, 0, 0, 0.4);
+}
+
+.settings {
+ width: 75vw;
+ height: 75vh;
+ display: flex;
+ flex-direction: column;
+}
+
+.settings-main {
+ height: calc(100% - 56px);
+ display: flex;
+ flex: 1 1 auto;
+}
+
+.settings-page {
+ flex: 1 1 0;
+ overflow-y: auto;
+}
+
+.profile-settings {
+ display: flex;
+ justify-content: flex-end;
+ flex-wrap: wrap;
+ flex-direction: row-reverse;
+}
+
+.profile-form {
+ flex: 1 1 auto;
+ margin: 16px;
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 16px;
+}
+
+.profile-form label {
+ font-size: 1rem;
+}
+
+.profile-form .change-avatar {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ gap: 16px;
+}
+
+#client-user-avatar {
+ opacity: 0;
+ position: absolute;
+ z-index: -1;
+}
+
+.profile-preview {
+ margin: 24px;
+ border: 2px solid black;
+ min-width: 240px;
+}
+
+.profile-preview .preview {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+}
+
+.profile-preview h2 {
+ padding: 8px 16px;
+ border-bottom: 2px solid black;
+}
+
+.profile-preview .avatar {
+ width: 64px;
+ height: 64px;
+}
+
+.profile-preview .nick {
+ font-size: 20px;
+ font-weight: bold;
+}
+
+hr {
+ width: 100%;
+ border: 1px solid black;
+}
+
+.profile-preview .preview {
+ padding: 16px;
+}
+
+.modal .overlay {
+ x-index: 200;
+}
+
+.modal .overlay-content {
+ z-index: 201;
+}
+
+.personal .overlay-content {
+ bottom: 0;
+ left: 100%;
+}
+
+.menu {
+ border: 2px solid black;
+ background-color: #dcdcdc;
+ color: #000000;
+ width: 300px;
+}
+
+.menu-item {
+ cursor: pointer;
+ padding: 4px 8px;
+}
+
+.menu-item:hover {
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+.personal-status-menu .user {
+ display: flex;
+ gap: 8px;
+ padding: 8px;
+}
+
+.personal-status-menu .user .user-info {
+ display: flex;
+ flex-direction: column;
+}
+
+.personal-status-menu .user .nick {
+ font-size: 1.1em;
+ font-weight: bold;
+}
+
+.personal-status-menu .user .jid {
+ font-family: Diolce;
+}
+
+hr {
+ margin: 0;
+}
+
+.status-edit {
+ padding: 0 8px 8px 8px;
+}
+
+.status-edit select {
+ width: 100%;
+}
+
+.header .header-icon {
+ position: relative;
+ top: -0.2rem;
+ border-radius: 1em;
+ padding: 4px;
+}
+
+.new-chat, .add-contact, .close {
+ cursor: pointer;
+}
+
+.new-chat:hover,
+.new-chat.open,
+.add-contact:hover,
+.add-contact.open,
+.close:hover {
+ background: #00000060;
+}
+
+.add-contact-panel {
+ flex-shrink: 0;
+ max-height: calc(100% - 150px);
+ border-bottom: 2px solid black;
+}
+
+.new-chat-widget form {
+ border: 2px solid black;
+ padding: 4px;
+ gap: 4px;
+ background-color: #dcdcdc;
+ display: flex;
+ flex-direction: column;
+ align-items: end;
+}
+
+.add-contact-menu h3 {
+ margin: 1em 0 0.5em;
+}
+
+.add-contact-menu form {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+}
+
+.add-contact-menu form input {
+ flex: 1 1 auto;
+}
+
+.jid-with-button {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.jid-with-buttons {
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ gap: 4px;
+ margin-bottom: 8px;
+}
+
+.jid-with-buttons .buttons {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+}
+
+.jid-with-buttons .buttons>* {
+ flex: 1 1 auto;
+}
+
+.jid-with-button .jid {
+ flex: 1 1 auto;
+}
+
+.jid-with-button .button {
+ flex: 0 0 auto;
+}
+
+.icon-with-badge {
+ position: relative;
+}
+
+.badge {
+ position: absolute;
+ top: 0;
+ right: 0;
+ border-radius: 50%;
+ background-color: #C1173C;
+ color: #dcdcdc;
+ height: 1em;
+ min-width: 1em;
+ padding: 2px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.header-icon .badge {
+ height: 8px;
+ width: 8px;
+ min-width: revert;
+}
+
+/* font-families */
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 100;
+ font-display: block;
+ src: url('/assets/fonts/k2d-1.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 100;
+ font-display: block;
+ src: url('/assets/fonts/k2d-2.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 100;
+ font-display: block;
+ src: url('/assets/fonts/k2d-3.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 100;
+ font-display: block;
+ src: url('/assets/fonts/k2d-4.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 200;
+ font-display: block;
+ src: url('/assets/fonts/k2d-5.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 200;
+ font-display: block;
+ src: url('/assets/fonts/k2d-6.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 200;
+ font-display: block;
+ src: url('/assets/fonts/k2d-7.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 200;
+ font-display: block;
+ src: url('/assets/fonts/k2d-8.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 300;
+ font-display: block;
+ src: url('/assets/fonts/k2d-9.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 300;
+ font-display: block;
+ src: url('/assets/fonts/k2d-10.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 300;
+ font-display: block;
+ src: url('/assets/fonts/k2d-11.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 300;
+ font-display: block;
+ src: url('/assets/fonts/k2d-12.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 400;
+ font-display: block;
+ src: url('/assets/fonts/k2d-13.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 400;
+ font-display: block;
+ src: url('/assets/fonts/k2d-14.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 400;
+ font-display: block;
+ src: url('/assets/fonts/k2d-15.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 400;
+ font-display: block;
+ src: url('/assets/fonts/k2d-16.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 500;
+ font-display: block;
+ src: url('/assets/fonts/k2d-17.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 500;
+ font-display: block;
+ src: url('/assets/fonts/k2d-18.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 500;
+ font-display: block;
+ src: url('/assets/fonts/k2d-19.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 500;
+ font-display: block;
+ src: url('/assets/fonts/k2d-20.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 600;
+ font-display: block;
+ src: url('/assets/fonts/k2d-21.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 600;
+ font-display: block;
+ src: url('/assets/fonts/k2d-22.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 600;
+ font-display: block;
+ src: url('/assets/fonts/k2d-23.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 600;
+ font-display: block;
+ src: url('/assets/fonts/k2d-24.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 700;
+ font-display: block;
+ src: url('/assets/fonts/k2d-25.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 700;
+ font-display: block;
+ src: url('/assets/fonts/k2d-26.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 700;
+ font-display: block;
+ src: url('/assets/fonts/k2d-27.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 700;
+ font-display: block;
+ src: url('/assets/fonts/k2d-28.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 800;
+ font-display: block;
+ src: url('/assets/fonts/k2d-29.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 800;
+ font-display: block;
+ src: url('/assets/fonts/k2d-30.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 800;
+ font-display: block;
+ src: url('/assets/fonts/k2d-31.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: italic;
+ font-weight: 800;
+ font-display: block;
+ src: url('/assets/fonts/k2d-32.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 100;
+ font-display: block;
+ src: url('/assets/fonts/k2d-33.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 100;
+ font-display: block;
+ src: url('/assets/fonts/k2d-34.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 100;
+ font-display: block;
+ src: url('/assets/fonts/k2d-35.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 100;
+ font-display: block;
+ src: url('/assets/fonts/k2d-36.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 200;
+ font-display: block;
+ src: url('/assets/fonts/k2d-37.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 200;
+ font-display: block;
+ src: url('/assets/fonts/k2d-38.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 200;
+ font-display: block;
+ src: url('/assets/fonts/k2d-39.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 200;
+ font-display: block;
+ src: url('/assets/fonts/k2d-40.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 300;
+ font-display: block;
+ src: url('/assets/fonts/k2d-41.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 300;
+ font-display: block;
+ src: url('/assets/fonts/k2d-42.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 300;
+ font-display: block;
+ src: url('/assets/fonts/k2d-43.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 300;
+ font-display: block;
+ src: url('/assets/fonts/k2d-44.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 400;
+ font-display: block;
+ src: url('/assets/fonts/k2d-45.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 400;
+ font-display: block;
+ src: url('/assets/fonts/k2d-46.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 400;
+ font-display: block;
+ src: url('/assets/fonts/k2d-47.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 400;
+ font-display: block;
+ src: url('/assets/fonts/k2d-48.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 500;
+ font-display: block;
+ src: url('/assets/fonts/k2d-49.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 500;
+ font-display: block;
+ src: url('/assets/fonts/k2d-50.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 500;
+ font-display: block;
+ src: url('/assets/fonts/k2d-51.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 500;
+ font-display: block;
+ src: url('/assets/fonts/k2d-52.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 600;
+ font-display: block;
+ src: url('/assets/fonts/k2d-53.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 600;
+ font-display: block;
+ src: url('/assets/fonts/k2d-54.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 600;
+ font-display: block;
+ src: url('/assets/fonts/k2d-55.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 600;
+ font-display: block;
+ src: url('/assets/fonts/k2d-56.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 700;
+ font-display: block;
+ src: url('/assets/fonts/k2d-57.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 700;
+ font-display: block;
+ src: url('/assets/fonts/k2d-58.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 700;
+ font-display: block;
+ src: url('/assets/fonts/k2d-59.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 700;
+ font-display: block;
+ src: url('/assets/fonts/k2d-60.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+/* thai */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 800;
+ font-display: block;
+ src: url('/assets/fonts/k2d-61.woff2') format('woff2');
+ unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
+}
+
+/* vietnamese */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 800;
+ font-display: block;
+ src: url('/assets/fonts/k2d-62.woff2') format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
+}
+
+/* latin-ext */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 800;
+ font-display: block;
+ src: url('/assets/fonts/k2d-63.woff2') format('woff2');
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
+}
+
+/* latin */
+@font-face {
+ font-family: 'K2D';
+ font-style: normal;
+ font-weight: 800;
+ font-display: block;
+ src: url('/assets/fonts/k2d-64.woff2') format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+@font-face {
+ font-family: 'Diolce';
+ src: url('/assets/fonts/Diolce-Regular.woff2') format('woff2');
+ font-weight: normal;
+ font-style: italic;
+ font-display: block;
+}