summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2021-03-06 16:14:20 +0100
committerYorhel <git@yorhel.nl>2021-03-06 16:14:22 +0100
commit4cf49275519dd6950c60a60e9b7e09f7630b3f0d (patch)
tree35d54589dc0507a4ff7c2b7879ec5aec6421aa8e
parent08ae3b6f10ca0ba31b76aa1f260c615ce211e808 (diff)
SVG platform icons
Still kind of experimental, let's see how people react. Icons contributed by eacil. Some are colored versions based on the SVG icons contributed by xy2, some are vectorized versions of old icons. These retain much of the legibility of the old png icons by virtue of not being monochrome. At least for the dark skins. I may experiment later to see if the monochrome icons may be a solution for light skins, now that I have the infrastructure in place anyway. Not sure I really want to maintain two icon sets, though. I used scour to optimize the SVGs for size, but they're still rather less efficient than the combined PNG sprites. Maybe I'll use an SVG merge trick later, but that tends to be less widely supported among browsers. Closes #30.
-rw-r--r--css/v2.css42
-rw-r--r--data/icons/plat/and.pngbin378 -> 0 bytes
-rw-r--r--data/icons/plat/bdp.pngbin389 -> 0 bytes
-rw-r--r--data/icons/plat/dos.pngbin801 -> 0 bytes
-rw-r--r--data/icons/plat/drc.pngbin678 -> 0 bytes
-rw-r--r--data/icons/plat/dvd.pngbin293 -> 0 bytes
-rw-r--r--data/icons/plat/fmt.pngbin430 -> 0 bytes
-rw-r--r--data/icons/plat/gba.pngbin724 -> 0 bytes
-rw-r--r--data/icons/plat/gbc.pngbin623 -> 0 bytes
-rw-r--r--data/icons/plat/ios.pngbin584 -> 0 bytes
-rw-r--r--data/icons/plat/lin.pngbin503 -> 0 bytes
-rw-r--r--data/icons/plat/mac.pngbin546 -> 0 bytes
-rw-r--r--data/icons/plat/msx.pngbin389 -> 0 bytes
-rw-r--r--data/icons/plat/n3d.pngbin593 -> 0 bytes
-rw-r--r--data/icons/plat/nds.pngbin294 -> 0 bytes
-rw-r--r--data/icons/plat/nes.pngbin369 -> 0 bytes
-rw-r--r--data/icons/plat/p88.pngbin409 -> 0 bytes
-rw-r--r--data/icons/plat/p98.pngbin651 -> 0 bytes
-rw-r--r--data/icons/plat/pce.pngbin3467 -> 0 bytes
-rw-r--r--data/icons/plat/pcf.pngbin320 -> 0 bytes
-rw-r--r--data/icons/plat/ps1.pngbin449 -> 0 bytes
-rw-r--r--data/icons/plat/ps2.pngbin125 -> 0 bytes
-rw-r--r--data/icons/plat/ps3.pngbin226 -> 0 bytes
-rw-r--r--data/icons/plat/ps4.pngbin162 -> 0 bytes
-rw-r--r--data/icons/plat/psp.pngbin118 -> 0 bytes
-rw-r--r--data/icons/plat/psv.pngbin248 -> 0 bytes
-rw-r--r--data/icons/plat/sat.pngbin649 -> 0 bytes
-rw-r--r--data/icons/plat/sfc.pngbin387 -> 0 bytes
-rw-r--r--data/icons/plat/swi.pngbin129 -> 0 bytes
-rw-r--r--data/icons/plat/web.pngbin801 -> 0 bytes
-rw-r--r--data/icons/plat/wii.pngbin625 -> 0 bytes
-rw-r--r--data/icons/plat/win.pngbin707 -> 0 bytes
-rw-r--r--data/icons/plat/wiu.pngbin116 -> 0 bytes
-rw-r--r--data/icons/plat/x68.pngbin486 -> 0 bytes
-rw-r--r--data/icons/plat/xb1.pngbin647 -> 0 bytes
-rw-r--r--data/icons/plat/xb3.pngbin586 -> 0 bytes
-rw-r--r--data/icons/plat/xbo.pngbin777 -> 0 bytes
-rw-r--r--elm/Lib/Html.elm2
-rw-r--r--lib/VNWeb/Misc/HomePage.pm2
-rw-r--r--lib/VNWeb/Releases/Lib.pm2
-rw-r--r--lib/VNWeb/Releases/Page.pm2
-rw-r--r--lib/VNWeb/Releases/VNTab.pm2
-rw-r--r--lib/VNWeb/Reviews/Page.pm2
-rw-r--r--lib/VNWeb/VN/List.pm2
-rw-r--r--lib/VNWeb/VN/Page.pm2
-rw-r--r--static/f/plat/and.svg12
-rw-r--r--static/f/plat/bdp.svg12
-rw-r--r--static/f/plat/dos.svg9
-rw-r--r--static/f/plat/drc.svg11
-rw-r--r--static/f/plat/dvd.svg7
-rw-r--r--static/f/plat/fmt.svg7
-rw-r--r--static/f/plat/gba.svg5
-rw-r--r--static/f/plat/gbc.svg6
-rw-r--r--static/f/plat/ios.svg16
-rw-r--r--static/f/plat/lin.svg18
-rw-r--r--static/f/plat/mac.svg12
-rw-r--r--static/f/plat/msx.svg12
-rw-r--r--static/f/plat/n3d.svg13
-rw-r--r--static/f/plat/nds.svg12
-rw-r--r--static/f/plat/nes.svg15
-rw-r--r--static/f/plat/oth.svg4
-rw-r--r--static/f/plat/p88.svg14
-rw-r--r--static/f/plat/p98.svg14
-rw-r--r--static/f/plat/pce.svg14
-rw-r--r--static/f/plat/pcf.svg20
-rw-r--r--static/f/plat/ps1.svg13
-rw-r--r--static/f/plat/ps2.svg8
-rw-r--r--static/f/plat/ps3.svg8
-rw-r--r--static/f/plat/ps4.svg8
-rw-r--r--static/f/plat/psp.svg8
-rw-r--r--static/f/plat/psv.svg9
-rw-r--r--static/f/plat/sat.svg44
-rw-r--r--static/f/plat/sfc.svg14
-rw-r--r--static/f/plat/swi.svg8
-rw-r--r--static/f/plat/web.svg4
-rw-r--r--static/f/plat/wii.svg11
-rw-r--r--static/f/plat/win.svg7
-rw-r--r--static/f/plat/wiu.svg12
-rw-r--r--static/f/plat/x68.svg16
-rw-r--r--static/f/plat/xb1.svg80
-rw-r--r--static/f/plat/xb3.svg99
-rw-r--r--static/f/plat/xbo.svg4
82 files changed, 635 insertions, 9 deletions
diff --git a/css/v2.css b/css/v2.css
index 1ce2dbe6..c4b974ae 100644
--- a/css/v2.css
+++ b/css/v2.css
@@ -1262,9 +1262,49 @@ div.imagebrowse { padding: 0; display: flex; flex-wrap: wrap }
.icons.rtcomplete, .icons.rtpartial, .icons.rttrial { width: 11px; }
abbr.icons, abbr.uicons { cursor: default; }
a .icons { cursor: pointer }
-.icons.oth { background: none; }
@import 'data/icons/icons';
+.icons.plat { height: 16px; margin: -1px 2px -1px 0!important; background-size: contain; background-repeat: no-repeat; background-position: center }
+/* This list of platform icons can be avoided by linking to the icons directly with <img> tags,
+ * but I like having the option to have different icons for different skins. */
+.icons.win { background-image: url(/f/plat/win.svg) }
+.icons.lin { background-image: url(/f/plat/lin.svg) }
+.icons.mac { background-image: url(/f/plat/mac.svg) }
+.icons.web { background-image: url(/f/plat/web.svg) }
+.icons.ios { background-image: url(/f/plat/ios.svg) }
+.icons.and { background-image: url(/f/plat/and.svg) }
+.icons.bdp { background-image: url(/f/plat/bdp.svg) }
+.icons.dos { background-image: url(/f/plat/dos.svg) }
+.icons.dvd { background-image: url(/f/plat/dvd.svg) }
+.icons.drc { background-image: url(/f/plat/drc.svg) }
+.icons.nes { background-image: url(/f/plat/nes.svg) }
+.icons.fmt { background-image: url(/f/plat/fmt.svg) }
+.icons.gba { background-image: url(/f/plat/gba.svg) }
+.icons.gbc { background-image: url(/f/plat/gbc.svg) }
+.icons.msx { background-image: url(/f/plat/msx.svg) }
+.icons.nds { background-image: url(/f/plat/nds.svg) }
+.icons.swi { background-image: url(/f/plat/swi.svg) }
+.icons.wii { background-image: url(/f/plat/wii.svg) }
+.icons.wiu { background-image: url(/f/plat/wiu.svg) }
+.icons.n3d { background-image: url(/f/plat/n3d.svg) }
+.icons.p88 { background-image: url(/f/plat/p88.svg) }
+.icons.p98 { background-image: url(/f/plat/p98.svg) }
+.icons.pce { background-image: url(/f/plat/pce.svg) }
+.icons.pcf { background-image: url(/f/plat/pcf.svg) }
+.icons.psp { background-image: url(/f/plat/psp.svg) }
+.icons.ps1 { background-image: url(/f/plat/ps1.svg) }
+.icons.ps2 { background-image: url(/f/plat/ps2.svg) }
+.icons.ps3 { background-image: url(/f/plat/ps3.svg) }
+.icons.ps4 { background-image: url(/f/plat/ps4.svg) }
+.icons.psv { background-image: url(/f/plat/psv.svg) }
+.icons.sat { background-image: url(/f/plat/sat.svg) }
+.icons.sfc { background-image: url(/f/plat/sfc.svg) }
+.icons.x68 { background-image: url(/f/plat/x68.svg) }
+.icons.xb1 { background-image: url(/f/plat/xb1.svg) }
+.icons.xb3 { background-image: url(/f/plat/xb3.svg) }
+.icons.xbo { background-image: url(/f/plat/xbo.svg) }
+.icons.oth { background-image: url(/f/plat/oth.svg) }
+
.release_icons { width: 16px; height: 16px; float: right; margin-left: 4px; }
.release_icon_voiced2, .release_icon_anim2 { filter: hue-rotate(30deg); }
diff --git a/data/icons/plat/and.png b/data/icons/plat/and.png
deleted file mode 100644
index 648af428..00000000
--- a/data/icons/plat/and.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/bdp.png b/data/icons/plat/bdp.png
deleted file mode 100644
index 4999f524..00000000
--- a/data/icons/plat/bdp.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/dos.png b/data/icons/plat/dos.png
deleted file mode 100644
index 3adf5bff..00000000
--- a/data/icons/plat/dos.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/drc.png b/data/icons/plat/drc.png
deleted file mode 100644
index 9fe59cbc..00000000
--- a/data/icons/plat/drc.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/dvd.png b/data/icons/plat/dvd.png
deleted file mode 100644
index 9b71645f..00000000
--- a/data/icons/plat/dvd.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/fmt.png b/data/icons/plat/fmt.png
deleted file mode 100644
index c9625e91..00000000
--- a/data/icons/plat/fmt.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/gba.png b/data/icons/plat/gba.png
deleted file mode 100644
index f9601915..00000000
--- a/data/icons/plat/gba.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/gbc.png b/data/icons/plat/gbc.png
deleted file mode 100644
index b93df0a9..00000000
--- a/data/icons/plat/gbc.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/ios.png b/data/icons/plat/ios.png
deleted file mode 100644
index 8521a741..00000000
--- a/data/icons/plat/ios.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/lin.png b/data/icons/plat/lin.png
deleted file mode 100644
index 7a294fe6..00000000
--- a/data/icons/plat/lin.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/mac.png b/data/icons/plat/mac.png
deleted file mode 100644
index 1e01c433..00000000
--- a/data/icons/plat/mac.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/msx.png b/data/icons/plat/msx.png
deleted file mode 100644
index 9cd32ced..00000000
--- a/data/icons/plat/msx.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/n3d.png b/data/icons/plat/n3d.png
deleted file mode 100644
index 9782f832..00000000
--- a/data/icons/plat/n3d.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/nds.png b/data/icons/plat/nds.png
deleted file mode 100644
index 77fc8bea..00000000
--- a/data/icons/plat/nds.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/nes.png b/data/icons/plat/nes.png
deleted file mode 100644
index 30e06943..00000000
--- a/data/icons/plat/nes.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/p88.png b/data/icons/plat/p88.png
deleted file mode 100644
index 1da9c6e5..00000000
--- a/data/icons/plat/p88.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/p98.png b/data/icons/plat/p98.png
deleted file mode 100644
index bebad893..00000000
--- a/data/icons/plat/p98.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/pce.png b/data/icons/plat/pce.png
deleted file mode 100644
index b8b42d4d..00000000
--- a/data/icons/plat/pce.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/pcf.png b/data/icons/plat/pcf.png
deleted file mode 100644
index 87bd6eee..00000000
--- a/data/icons/plat/pcf.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/ps1.png b/data/icons/plat/ps1.png
deleted file mode 100644
index 80b4b950..00000000
--- a/data/icons/plat/ps1.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/ps2.png b/data/icons/plat/ps2.png
deleted file mode 100644
index 79008351..00000000
--- a/data/icons/plat/ps2.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/ps3.png b/data/icons/plat/ps3.png
deleted file mode 100644
index 60c2d731..00000000
--- a/data/icons/plat/ps3.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/ps4.png b/data/icons/plat/ps4.png
deleted file mode 100644
index e04e5cb1..00000000
--- a/data/icons/plat/ps4.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/psp.png b/data/icons/plat/psp.png
deleted file mode 100644
index 574f5ba6..00000000
--- a/data/icons/plat/psp.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/psv.png b/data/icons/plat/psv.png
deleted file mode 100644
index 57b09185..00000000
--- a/data/icons/plat/psv.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/sat.png b/data/icons/plat/sat.png
deleted file mode 100644
index 7e0afe3c..00000000
--- a/data/icons/plat/sat.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/sfc.png b/data/icons/plat/sfc.png
deleted file mode 100644
index 909e006a..00000000
--- a/data/icons/plat/sfc.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/swi.png b/data/icons/plat/swi.png
deleted file mode 100644
index 06f258ce..00000000
--- a/data/icons/plat/swi.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/web.png b/data/icons/plat/web.png
deleted file mode 100644
index a5a2ff05..00000000
--- a/data/icons/plat/web.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/wii.png b/data/icons/plat/wii.png
deleted file mode 100644
index 3f7a4d2b..00000000
--- a/data/icons/plat/wii.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/win.png b/data/icons/plat/win.png
deleted file mode 100644
index ccede0aa..00000000
--- a/data/icons/plat/win.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/wiu.png b/data/icons/plat/wiu.png
deleted file mode 100644
index 3d8a7b82..00000000
--- a/data/icons/plat/wiu.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/x68.png b/data/icons/plat/x68.png
deleted file mode 100644
index 4731e374..00000000
--- a/data/icons/plat/x68.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/xb1.png b/data/icons/plat/xb1.png
deleted file mode 100644
index 23d722a8..00000000
--- a/data/icons/plat/xb1.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/xb3.png b/data/icons/plat/xb3.png
deleted file mode 100644
index 600315ab..00000000
--- a/data/icons/plat/xb3.png
+++ /dev/null
Binary files differ
diff --git a/data/icons/plat/xbo.png b/data/icons/plat/xbo.png
deleted file mode 100644
index 8beb3781..00000000
--- a/data/icons/plat/xbo.png
+++ /dev/null
Binary files differ
diff --git a/elm/Lib/Html.elm b/elm/Lib/Html.elm
index 01f5d844..e63bd3d9 100644
--- a/elm/Lib/Html.elm
+++ b/elm/Lib/Html.elm
@@ -205,7 +205,7 @@ langIcon : String -> Html m
langIcon l = abbr [ class "icons lang", class l, title (Maybe.withDefault "" <| lookup l T.languages) ] [ text " " ]
platformIcon : String -> Html m
-platformIcon l = abbr [ class "icons", class l, title (Maybe.withDefault "" <| lookup l T.platforms) ] [ text " " ]
+platformIcon l = abbr [ class "icons plat", class l, title (Maybe.withDefault "" <| lookup l T.platforms) ] [ text " " ]
releaseTypeIcon : String -> Html m
releaseTypeIcon t = abbr [ class ("icons rt"++t), title (Maybe.withDefault "" <| lookup t T.releaseTypes) ] [ text " " ]
diff --git a/lib/VNWeb/Misc/HomePage.pm b/lib/VNWeb/Misc/HomePage.pm
index c591568a..b3495643 100644
--- a/lib/VNWeb/Misc/HomePage.pm
+++ b/lib/VNWeb/Misc/HomePage.pm
@@ -189,7 +189,7 @@ sub releases_ {
span_ sub {
rdate_ $_->{released};
txt_ ' ';
- abbr_ class => "icons $_", title => $PLATFORM{$_}, '' for $_->{plat}->@*;
+ abbr_ class => "icons plat $_", title => $PLATFORM{$_}, '' for $_->{plat}->@*;
abbr_ class => "icons lang $_", title => $LANGUAGE{$_}, '' for $_->{lang}->@*;
txt_ ' ';
a_ href => "/$_->{id}", title => $_->{original}||$_->{title}, $_->{title};
diff --git a/lib/VNWeb/Releases/Lib.pm b/lib/VNWeb/Releases/Lib.pm
index e1340e03..a20d1339 100644
--- a/lib/VNWeb/Releases/Lib.pm
+++ b/lib/VNWeb/Releases/Lib.pm
@@ -106,7 +106,7 @@ sub release_row_ {
td_ class => 'tc1', sub { rdate_ $r->{released} };
td_ class => 'tc2', defined $r->{minage} ? minage $r->{minage} : '';
td_ class => 'tc3', sub {
- abbr_ class => "icons $_", title => $PLATFORM{$_}, '' for grep $_ ne 'oth', $r->{platforms}->@*;
+ abbr_ class => "icons plat $_", title => $PLATFORM{$_}, '' for $r->{platforms}->@*;
if($opt->{lang}) {
abbr_ class => "icons lang $_", title => $LANGUAGE{$_}, '' for $r->{lang}->@*;
}
diff --git a/lib/VNWeb/Releases/Page.pm b/lib/VNWeb/Releases/Page.pm
index e2059e8f..1f29ad48 100644
--- a/lib/VNWeb/Releases/Page.pm
+++ b/lib/VNWeb/Releases/Page.pm
@@ -108,7 +108,7 @@ sub _infotable_ {
td_ 'Platform'.($r->{platforms}->@* == 1 ? '' : 's');
td_ sub {
join_ \&br_, sub {
- abbr_ class => "icons $_", title => $PLATFORM{$_}, ' ';
+ abbr_ class => "icons plat $_", title => $PLATFORM{$_}, ' ';
txt_ ' '.$PLATFORM{$_};
}, $r->{platforms}->@*;
}
diff --git a/lib/VNWeb/Releases/VNTab.pm b/lib/VNWeb/Releases/VNTab.pm
index cebaf7f6..de8c1d66 100644
--- a/lib/VNWeb/Releases/VNTab.pm
+++ b/lib/VNWeb/Releases/VNTab.pm
@@ -59,7 +59,7 @@ my @rel_cols = (
default => 1,
has_data => sub { !!@{$_[0]{platforms}} },
draw => sub {
- join_ \&br_, sub { abbr_ class => "icons $_", title => $PLATFORM{$_}, ''; }, $_[0]{platforms}->@*;
+ join_ \&br_, sub { abbr_ class => "icons plat $_", title => $PLATFORM{$_}, ''; }, $_[0]{platforms}->@*;
txt_ 'Unknown' if !$_[0]{platforms}->@*;
},
}, { # Media
diff --git a/lib/VNWeb/Reviews/Page.pm b/lib/VNWeb/Reviews/Page.pm
index 564f3502..e6d78e4c 100644
--- a/lib/VNWeb/Reviews/Page.pm
+++ b/lib/VNWeb/Reviews/Page.pm
@@ -36,7 +36,7 @@ sub review_ {
a_ href => "/$w->{vid}", $w->{title};
if($w->{rid}) {
br_;
- abbr_ class => "icons $_", title => $PLATFORM{$_}, '' for grep $_ ne 'oth', $w->{platforms}->@*;
+ abbr_ class => "icons plat $_", title => $PLATFORM{$_}, '' for $w->{platforms}->@*;
abbr_ class => "icons lang $_", title => $LANGUAGE{$_}, '' for $w->{lang}->@*;
abbr_ class => "icons rt$w->{rtype}", title => $w->{rtype}, '';
a_ href => "/$w->{rid}", title => $w->{roriginal}||$w->{rtitle}, $w->{rtitle};
diff --git a/lib/VNWeb/VN/List.pm b/lib/VNWeb/VN/List.pm
index 928ac0bb..cf710fbd 100644
--- a/lib/VNWeb/VN/List.pm
+++ b/lib/VNWeb/VN/List.pm
@@ -33,7 +33,7 @@ sub listing_ {
abbr_ title => join(', ', $_->{vnlist_labels}->@*), scalar $_->{vnlist_labels}->@* if $_->{vnlist_labels} && $_->{vnlist_labels}->@*;
abbr_ title => 'No labels', ' ' if $_->{vnlist_labels} && !$_->{vnlist_labels}->@*;
};
- td_ class => 'tc2', sub { join_ '', sub { abbr_ class => "icons $_", title => $PLATFORM{$_}, '' if $_ ne 'unk' }, sort $_->{platforms}->@* };
+ td_ class => 'tc2', sub { join_ '', sub { abbr_ class => "icons plat $_", title => $PLATFORM{$_}, '' if $_ ne 'unk' }, sort $_->{platforms}->@* };
td_ class => 'tc3', sub { join_ '', sub { abbr_ class => "icons lang $_", title => $LANGUAGE{$_}, '' }, reverse sort $_->{lang}->@* };
td_ class => 'tc4', sub { rdate_ $_->{c_released} };
td_ class => 'tc5', sprintf '%.2f', ($_->{c_popularity}||0)*100;
diff --git a/lib/VNWeb/VN/Page.pm b/lib/VNWeb/VN/Page.pm
index c7972923..498e9eeb 100644
--- a/lib/VNWeb/VN/Page.pm
+++ b/lib/VNWeb/VN/Page.pm
@@ -692,7 +692,7 @@ sub screenshots_ {
for my $r (grep $rel{$_->{id}}, $v->{releases}->@*) {
p_ class => 'rel', sub {
abbr_ class => "icons lang $_", title => $LANGUAGE{$_}, '' for $r->{languages}->@*;
- abbr_ class => "icons $_", title => $PLATFORM{$_}, '' for $r->{platforms}->@*;
+ abbr_ class => "icons plat $_", title => $PLATFORM{$_}, '' for $r->{platforms}->@*;
a_ href => "/$r->{id}", $r->{title};
};
div_ class => 'scr', sub {
diff --git a/static/f/plat/and.svg b/static/f/plat/and.svg
new file mode 100644
index 00000000..5c078508
--- /dev/null
+++ b/static/f/plat/and.svg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+<g transform="translate(1 1)" clip-path="url(#a)" fill="#839e2e">
+<path d="m10.443 2.3202 1.0746-1.9864c0.0705-0.13151 0.0454-0.23235-0.0755-0.30326-0.1313-0.061145-0.2322-0.030162-0.3027 0.09076l-1.0896 2.0023c-0.95886-0.42478-1.973-0.63756-3.0424-0.63756-1.0696 0-2.0838 0.21282-3.0423 0.63756l-1.0897-2.0023c-0.07081-0.12092-0.17168-0.15163-0.30266-0.09076-0.12122 0.07123-0.14631 0.17175-0.0755 0.30326l1.0747 1.9864c-1.0897 0.55682-1.9576 1.3323-2.6034 2.3282-0.64575 0.99639-0.96876 2.0852-0.96876 3.2684h14c0-1.1829-0.323-2.2718-0.9687-3.2684-0.6458-0.99584-1.5087-1.7713-2.5881-2.3282zm-6.2131 2.8892c-0.11622 0.11672-0.25502 0.17482-0.41637 0.17482-0.16166 0-0.29764-0.058096-0.40858-0.17482-0.11093-0.11617-0.1664-0.25471-0.1664-0.41692 0-0.16167 0.05547-0.30048 0.1664-0.41692 0.11094-0.11618 0.24724-0.17427 0.40858-0.17427 0.16135 0 0.30015 0.058086 0.41637 0.17427 0.11594 0.11672 0.17419 0.25525 0.17419 0.41692-3.2e-4 0.16194-0.05852 0.30075-0.17419 0.41692zm6.3794 0c-0.1111 0.11672-0.2474 0.17482-0.4085 0.17482-0.1617 0-0.30049-0.058096-0.41648-0.17482-0.11617-0.11617-0.17414-0.25471-0.17414-0.41692 0-0.16167 0.05797-0.30048 0.17414-0.41692 0.11599-0.11618 0.25478-0.17427 0.41648-0.17427 0.1613 0 0.2973 0.058086 0.4085 0.17427 0.111 0.11672 0.1664 0.25525 0.1664 0.41692 0 0.16194-0.0554 0.30075-0.1664 0.41692z" stroke-width="1.001"/>
+<path d="m0 14 14 3.01e-4v-5.5378h-14z" stroke-width="1.0048"/>
+</g>
+<defs>
+<clipPath id="a">
+<rect width="14" height="14" fill="#fff"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/static/f/plat/bdp.svg b/static/f/plat/bdp.svg
new file mode 100644
index 00000000..8c6ba02e
--- /dev/null
+++ b/static/f/plat/bdp.svg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 16 7.004" xmlns="http://www.w3.org/2000/svg">
+<g transform="matrix(1.1429 0 0 1.1566 0 -4.5945)" clip-path="url(#a)" fill="#00b2ff">
+<path d="m1.4737 4.4825c-0.00916 0-0.0167 0.00485-0.02262 0.01185-0.61974 0.87281-0.99342 1.4635-1.3811 2.1807l-0.038768 0.07915-0.011307 0.02531c-0.033383 0.06946-0.024768 0.14646 0.021538 0.21968 0.22938 0.35861 1.5146 0.77751 4.3851 0.77751 2.1403 0 4.4136-0.34568 4.4136-0.98588 0-0.61813-2.2453-0.9875-4.4136-0.9875-0.72044 0-1.4333 0.10122-1.639 0.13353 0.19599-0.30207 1.0106-1.3989 1.0193-1.4102 0.00377-0.00484 0.00646-0.01023 0.00646-0.01615 0-0.00431-0.00161-0.00862-0.00323-0.01292-0.00646-0.00862-0.01561-0.01508-0.02531-0.01508zm0.83619 2.3088c0-0.13354 0.80497-0.32038 2.1166-0.32038 1.3111 0 2.115 0.18684 2.115 0.32038 0 0.13353-0.80389 0.31983-2.115 0.31983-1.3116 0-2.1166-0.1863-2.1166-0.31983z"/>
+<path d="m3.0976 10.012s10.671 0.434 10.899-3.2953c0.1841-3.025-7.3944-2.7374-7.4014-2.7374s-0.05869 0.00485-0.05869 0.04792c0 0.03608 0.02692 0.04846 0.05438 0.04846 2.1015 0 5.5211 0.83459 5.4097 2.6432-0.0899 1.4732-2.7579 3.1973-8.8988 3.1973-0.03661 0-0.06084 0.02531-0.06084 0.04792 0 0.02262 0.01346 0.04362 0.05707 0.04792z"/>
+</g>
+<defs>
+<clipPath id="a">
+<rect width="14" height="14" fill="#fff"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/static/f/plat/dos.svg b/static/f/plat/dos.svg
new file mode 100644
index 00000000..65b14ee6
--- /dev/null
+++ b/static/f/plat/dos.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 14 8.967" xmlns="http://www.w3.org/2000/svg">
+<path d="m0 0.32605 2.8781-0.073781c0.55878-0.012245 1.0755 0.049069 1.5983 0.23343v0.10444c-0.45065 0.39302-0.77502 0.85969-1.0696 1.3819l-1.7485 0.012364 0.012004 5.0667 1.0335 0.073494 1.0575-0.012179c0.63094-0.0063205 1.2137-1.038 1.2679-1.5969l0.15608-1.7624c0.066218-0.77393 0.50476-1.3695 1.1838-1.689 0.42665 0.73089 0.61288 1.5415 0.61288 2.3951 0 2.684-1.6281 4.3789-4.1941 4.2807l-2.7879-0.11049z" clip-rule="evenodd" fill="#c00" fill-rule="evenodd" stroke-width="1.0278"/>
+<path d="m8.4962 0.23346c-0.50476 0.38073-0.90129 0.80447-1.1837 1.3817-0.096228-0.00605-0.19235-0.012199-0.28839-0.012199-1.0156 0-1.9408 0.90885-2.061 1.9284l-0.26442 2.2172c-0.036064 0.31327-0.30047 0.63255-0.4988 0.85977-0.16812 0.18421-0.3664 0.22108-0.61279 0.22108h-0.030041c-0.31248-0.73681-0.47474-1.4985-0.47474-2.303 0-2.5241 1.382-4.5263 3.9537-4.5263 0.50476 0 0.98543 0.098316 1.4601 0.23346z" clip-rule="evenodd" fill="#f0f" fill-rule="evenodd" stroke-width="1.0278"/>
+<path d="m5.3537 8.5742 0.83519-0.80472 0.37851-0.55262 0.63084 0.012333c0.30046 0.66937 0.79314 1.1238 1.394 1.517-0.43866 0.14748-0.87125 0.22107-1.328 0.22107-0.66689 0-1.2919-0.15354-1.9106-0.39291z" clip-rule="evenodd" fill="#f0f" fill-rule="evenodd" stroke-width="1.0278"/>
+<path d="m7.2704 6.0129 1.6043 0.012374c0.16828 1.0501 0.84727 1.3388 1.8566 1.3388 0.63104 0 1.5743-0.15352 1.5743-0.97648 0-0.42993-0.33052-0.65116-0.6669-0.8415l0.08407-1.6397c1.2799 0.35606 2.2773 0.84738 2.2773 2.3827 0 1.8181-1.6944 2.5857-3.2566 2.5857-1.1176 0-2.5657-0.3317-3.1606-1.4125-0.18621-0.33166-0.36036-0.76153-0.36036-1.1484 0-0.030791 0.00586-0.061428 0.011891-0.092086z" clip-rule="evenodd" fill="#cca300" fill-rule="evenodd" stroke-width="1.0278"/>
+<path d="m13.718 2.8133h-1.6403c-0.13823-0.81692-0.80534-1.2222-1.6045-1.2222-0.54656 0-1.442 0.24542-1.4719 0.94569-0.00623 0.036937 0 0.067389 0.011901 0.098355l0.32448 0.95187c0.066105 0.19654 0.07817 0.41139 0.07817 0.62027 0 0.23939-0.030103 0.47895-0.060051 0.71853-1.1537-0.33165-1.9649-0.90268-1.9649-2.2294 0-1.7872 1.412-2.6225 3.0223-2.6225 1.7904 0 3.1905 0.85379 3.3047 2.7393z" clip-rule="evenodd" fill="#cca300" fill-rule="evenodd" stroke-width="1.0278"/>
+<path d="m10.743 1.9166c0.40545 0.78013 0.61387 1.6277 0.61387 2.5302 0 0.93979-0.23083 1.818-0.62497 2.6409-0.10144 0.0061-0.20267 0.018284-0.30411 0.018284-0.32651 0-1.1204-0.23938-1.1204-0.6753 0-0.073689 0.011141-0.1475 0.033803-0.21507l0.29822-1.0868c0.062127-0.21505 0.039548-0.4731 0.039548-0.68797 0-0.84145-0.34909-1.3697-0.37733-1.947-0.016814-0.40516 0.68698-0.59564 0.93479-0.59564 0.16886 0 0.33772 0 0.50658 0.018304z" clip-rule="evenodd" fill="#f0f" fill-rule="evenodd" stroke-width="1.0278"/>
+</svg>
diff --git a/static/f/plat/drc.svg b/static/f/plat/drc.svg
new file mode 100644
index 00000000..f37cfc53
--- /dev/null
+++ b/static/f/plat/drc.svg
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 14 12.417" xmlns="http://www.w3.org/2000/svg">
+<g transform="scale(1 1)" clip-path="url(#a)" fill="#cf3311">
+<path d="m8.523 0.16915c0.52027 0.078119 1.0516 0.2598 1.3287 0.34456 0.55827 0.17062 1.4645 0.70097 1.7845 0.95535 0.1513 0.12027 0.4697 0.43529 0.5929 0.59385 0.1201 0.15447 0.3495 0.48907 0.4959 0.69521 0.2329 0.34024 0.5072 0.84702 0.7399 1.3134 0.2599 0.52105 0.2777 0.67197 0.3563 1.1076l0.1718 0.7679c0.0161 0.13278 0.0295 0.61986-0.2564 0.68813-0.2858 0.06827-0.55-0.06362-0.6746-0.25637-0.1724-0.26678-0.1486-0.64542-0.3436-1.0788-0.152-0.35032-0.2185-0.85941-0.4613-1.2256l-0.1904-0.32199c-0.3369-0.51872-0.6881-0.93045-0.8976-1.199-0.1844-0.22562-0.5289-0.53233-0.8554-0.75053-0.302-0.18313-0.79015-0.39192-1.1422-0.49947-0.11219-0.03652-0.59241-0.17771-0.89083-0.21743-0.40498-0.04548-0.67142-0.10954-1.0563-0.13665-0.47512-0.033527-0.70306-0.075795-1.3194-0.003763-0.23347 0.063293-0.60336 0.088413-0.93631 0.21576-0.26887 0.10966-0.64287 0.28681-1.0092 0.50202-0.39424 0.21621-0.99274 0.65836-1.3896 1.0359-0.39999 0.42744-0.60005 0.65682-0.8759 1.1987-0.12215 0.26811-0.35839 0.68282-0.45366 0.9756-0.06506 0.2972-0.18921 0.85155-0.16829 1.1208 0.0094 0.48232-0.03276 0.58168 0.00343 0.97592 0.00132 0.35497 0.11784 0.60105 0.1663 0.89139 0.0415 0.20061 0.23391 0.89471 0.35297 1.0558 0.54119 1.166 1.2676 1.671 2.0771 2.0353 0.22815 0.1162 0.94217 0.3072 1.1488 0.362 0.3522 0.0635 0.81571 0.1059 1.2618 0.1145 0.46938 0.0092 1.1163-0.0544 1.5089-0.1989 0.42489-0.1562 0.91617-0.3783 0.91052-0.3721 0.19718-0.1087 0.49804-0.286 0.59176-0.3641 0.18113-0.116 0.29023-0.161 0.39756-0.2727 0.1548-0.1354 0.24852-0.2134 0.3658-0.3813 0.06529-0.09461 0.16897-0.23945 0.26997-0.36747 0.1087-0.17803 0.1711-0.36569 0.2772-0.59783 0.1269-0.34335 0.1072-0.32686 0.1313-0.69156 0.0228-0.10567-0.0024-0.46085-0.0215-0.52116-0.0572-0.32774-0.037-0.61687-0.112-0.93509-0.1014-0.43054-0.1856-0.75275-0.3149-1.1658-0.12163-0.46506-0.4788-0.89592-0.74691-1.2036-0.16608-0.19076-0.68137-0.64132-1.3963-0.9227-0.20127-0.06772-0.53078-0.14451-0.74002-0.18268-0.44669-0.0467-0.51938-0.01671-0.94704 0.0146-0.14717 0.02567-0.48885 0.09549-0.61444 0.13964-0.36735 0.12902-0.50245 0.21101-0.878 0.44105-0.17482 0.10146-0.3066 0.17914-0.4853 0.34666-0.14263 0.13201-0.24454 0.3564-0.36005 0.48796-0.15823 0.21533-0.33439 0.50257-0.45256 0.81239-0.12813 0.30816-0.1694 0.74201-0.14993 1.0212 0 0.21278 0.05787 0.60226 0.08089 0.68746 0.0229 0.08531 0.08044 0.34976 0.09294 0.40287 0.0125 0.053 0.15004 0.33284 0.16896 0.37333 0.07757 0.16509 0.22606 0.40232 0.47624 0.64453 0.18456 0.20161 0.5414 0.39945 0.80851 0.47613 0.23955 0.13145 0.64353 0.1538 0.86704 0.15424 0.10999-0.00664 0.39093-0.0239 0.53754-0.05909 0.29731-0.07136 0.35219-0.07325 0.65858-0.20636 0.27496-0.12746 0.46152-0.17338 0.65305-0.3149 0 0 0.2629-0.20603 0.3824-0.35674 0.06307-0.07955 0.17118-0.45864 0.15192-0.69343-0.00896-0.32144 0.03784-0.50379-0.02777-0.76824s-0.17759-0.57095-0.29897-0.75983c-0.12293-0.19131-0.38727-0.37775-0.68813-0.52613-0.16841-0.08321-0.56752-0.16033-0.73681-0.18036-0.32166-0.03817-0.59065 0.10777-0.75396 0.27474-0.14163 0.16188-0.42158 0.49814-0.31004 0.8458 0.10091 0.31458 0.22273 0.64973 0.69454 0.62484 0.32376 0.06738 0.69831-0.03043 0.82301 0.027 0.18511 0.10511 0.25626 0.33725 0.18899 0.49913-0.04692 0.31214-0.34589 0.34954-0.665 0.37333-0.28548 0.0478-1.0106-0.09195-1.1699-0.21134-0.10689-0.06351-0.27054-0.21609-0.38584-0.31911-0.08287-0.07413-0.1767-0.23944-0.24077-0.35817-0.07867-0.14583-0.11839-0.25316-0.13864-0.34821-0.02401-0.11286-0.07347-0.3283-0.05477-0.54373 0.01261-0.14528 0.05156-0.20713 0.09029-0.41958 0.07712-0.24088 0.17294-0.42423 0.32707-0.63313 0.20083-0.20382 0.45588-0.44647 0.70484-0.55922 0.21953-0.11596 0.60414-0.15868 0.95213-0.13832 0.28227 0.027 0.61621 0.06141 0.83695 0.13544 0.37787 0.13499 0.48586 0.16188 0.79601 0.35751 0.26213 0.16221 0.5258 0.46063 0.67297 0.70782 0.31302 0.64054 0.49261 1.3531 0.36204 2.3123-0.01073 0.1621-0.06119 0.32044-0.16221 0.53499-0.09328 0.19806-0.25693 0.43894-0.50246 0.6203-0.09892 0.0915-0.25482 0.20414-0.38174 0.27009-0.18013 0.10932-0.30129 0.16619-0.4894 0.26069-0.16509 0.07756-0.3575 0.1663-0.60846 0.23601-0.27197 0.10755-0.48066 0.11195-0.82267 0.16295-0.33671 0.0845-1.2579 0.0242-1.8066-0.21783-0.37454-0.15745-0.79479-0.43507-1.1142-0.77344-0.17748-0.186-0.35109-0.52348-0.4021-0.59252-0.25405-0.4884-0.30384-0.94782-0.34456-1.0443-0.05533-0.13111-0.08288-0.42511-0.11995-0.62627-0.04182-0.2255-0.01593-1.1712 0.21179-1.7782 0.12835-0.24166 0.20348-0.45709 0.29034-0.57028 0.15613-0.22208 0.23159-0.36083 0.36437-0.51828 0.20016-0.24277 0.34589-0.44083 0.54085-0.58047 0.49681-0.40398 0.91186-0.61709 1.4732-0.88375 0.69753-0.28404 0.90699-0.22528 1.5671-0.21477 0.29698 0.00254 0.72918 0.09593 0.94162 0.13466 0.39458 0.05256 0.62063 0.1476 0.88752 0.22207 0.28536 0.07967 0.45034 0.2068 0.68447 0.34832 0.19275 0.12448 0.41959 0.29499 0.5694 0.43342 0.3833 0.28104 0.5682 0.57648 0.8031 0.93929 0.0426 0.06086 0.3215 0.65538 0.366 0.82091 0.0206 0.08288 0.0838 0.32088 0.1243 0.45997 0.0521 0.22063 0.0773 0.41604 0.1354 0.665 0.052 0.25648 0.1405 0.74079 0.1789 1.1935 0.0645 0.38827-0.0388 1.1808-0.0998 1.4242-0.1357 0.45366-0.3732 1.0074-0.8421 1.5406-0.1992 0.2361-0.411 0.4191-0.65562 0.6177-0.1871 0.1561-0.34766 0.247-0.63667 0.4196-0.39258 0.2342-0.69134 0.3838-1.2416 0.5989-0.22407 0.072-0.50633 0.1666-0.81062 0.2295-0.58942 0.0545-1.1951 0.1067-1.8562 0.0281-0.66123-0.0786-1.3236-0.265-1.7148-0.3851-0.21588-0.081-0.63413-0.2564-0.80951-0.3508-0.11408-0.058-0.49659-0.3195-0.56154-0.3825-0.26213-0.1622-0.84879-0.7139-1.2275-1.2282-0.08299-0.1589-0.38141-0.63569-0.44614-0.84459-0.17206-0.3533-0.292-0.78063-0.36249-0.9632-0.074356-0.42611-0.19994-0.70052-0.24896-1.1283 0.0056431-0.10069-0.020249-0.33759-0.043042-0.46871 0.033305-0.29278-0.011176-0.56873 0.046915-0.8874 0.051009-0.26899 0.11862-0.3813 0.13466-0.6244 0.015712-0.10401 0.1496-0.41681 0.18523-0.55601 0.10799-0.22926 0.13488-0.41814 0.27585-0.67429 0.20315-0.39922 0.41549-0.85853 0.74179-1.2597 0.09317-0.12437 0.3574-0.42279 0.44746-0.52625 0.21289-0.21278 0.33782-0.24641 0.57925-0.45997 0.02512-0.01582 0.18456-0.19761 0.35153-0.26013 0.27674-0.21377 0.51585-0.29222 0.77919-0.48664 0.5278-0.2629 0.72022-0.35164 1.2441-0.56962 0.30274-0.10799 0.72497-0.16774 0.87701-0.22672 0.28923-0.017925 0.58278-0.11021 0.88707-0.091839 0.34157-0.0032088 0.6858 0.021134 1.029 0.052337 0.23226 0.014274 0.53422 0.02556 0.94384 0.11441z" fill="#cf3311"/>
+</g>
+<defs>
+<clipPath id="a">
+<rect width="14" height="12.417" fill="#fff"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/static/f/plat/dvd.svg b/static/f/plat/dvd.svg
new file mode 100644
index 00000000..dda54cf6
--- /dev/null
+++ b/static/f/plat/dvd.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 14 6.294" xmlns="http://www.w3.org/2000/svg">
+<path d="m7.9729 1.09s-0.96199 1.1845-0.91278 1.26c0.068249-0.075535-0.34538-1.273-0.34538-1.273s-0.086308-0.25178-0.35713-1.0771h-5.155l-0.1792 0.77474h1.6714c0.86904 0 1.3996 0.35924 1.2514 0.99574-0.16009 0.69305-0.91859 0.98893-1.7265 0.98893h-0.30211l0.38863-1.6945h-1.3506l-0.57343 2.4757h1.9178c1.4428 0 2.8116-0.77467 3.0584-1.7701 0.043186-0.18298 0.037096-0.64294-0.073782-0.91369 0-0.00651-0.00636-0.018973-0.012453-0.037589-0.00609-0.00651-0.012463-0.050546 0.012453-0.056982 0.012043-0.00644 0.036749 0.018973 0.036749 0.025063 0 0 0.012537 0.031919 0.024569 0.056909l1.2208 3.522 3.1082-3.585 1.3132-0.00644h0.32056c0.86959 0 1.4062 0.35923 1.2578 0.99573-0.16033 0.69306-0.9243 0.98894-1.7325 0.98894h-0.30838l0.39448-1.6945h-1.3501l-0.57384 2.4757h1.9178c1.4428 0 2.8239-0.77467 3.0522-1.7701 0.23436-0.99574-0.77698-1.7705-2.2323-1.7705h-2.8608c-0.75837 0.91341-0.90032 1.09-0.90032 1.09z" fill="#ccc" stroke-width="1.05"/>
+<path d="m6.6095 4.3788c-3.6499 0-6.6095 0.42839-6.6095 0.95779 0 0.52904 2.9596 0.95743 6.6095 0.95743 3.6567 0 6.6166-0.42839 6.6166-0.95743 1.05e-4 -0.5294-2.9598-0.95779-6.6166-0.95779zm-0.23422 1.298c-0.83859 0-1.5106-0.14503-1.5106-0.32164 0-0.17661 0.67192-0.32129 1.5106-0.32129 0.83214 0 1.5048 0.14461 1.5048 0.32129 0 0.17661-0.67269 0.32164-1.5048 0.32164z" fill="#ccc" stroke-width="1.05"/>
+<path d="m7.9729 1.09s-0.96199 1.1845-0.91278 1.26c0.068249-0.075535-0.34538-1.273-0.34538-1.273s-0.086308-0.25178-0.35713-1.0771h-5.155l-0.1792 0.77474h1.6714c0.86904 0 1.3996 0.35924 1.2514 0.99574-0.16009 0.69305-0.91859 0.98893-1.7265 0.98893h-0.30211l0.38863-1.6945h-1.3506l-0.57343 2.4757h1.9178c1.4428 0 2.8116-0.77467 3.0584-1.7701 0.043186-0.18298 0.037096-0.64294-0.073782-0.91369 0-0.00651-0.00636-0.018973-0.012453-0.037589-0.00609-0.00651-0.012463-0.050546 0.012453-0.056982 0.012043-0.00644 0.036749 0.018973 0.036749 0.025063 0 0 0.012537 0.031919 0.024569 0.056909l1.2208 3.522 3.1082-3.585 1.3132-0.00644h0.32056c0.86959 0 1.4062 0.35923 1.2578 0.99573-0.16033 0.69306-0.9243 0.98894-1.7325 0.98894h-0.30838l0.39448-1.6945h-1.3501l-0.57384 2.4757h1.9178c1.4428 0 2.8239-0.77467 3.0522-1.7701 0.23436-0.99574-0.77698-1.7705-2.2323-1.7705h-2.8608c-0.75837 0.91341-0.90032 1.09-0.90032 1.09z" fill="#ccc" stroke-width="1.05"/>
+<path d="m6.6095 4.3788c-3.6499 0-6.6095 0.42839-6.6095 0.95779 0 0.52904 2.9596 0.95743 6.6095 0.95743 3.6567 0 6.6166-0.42839 6.6166-0.95743 1.05e-4 -0.5294-2.9598-0.95779-6.6166-0.95779zm-0.23422 1.298c-0.83859 0-1.5106-0.14503-1.5106-0.32164 0-0.17661 0.67192-0.32129 1.5106-0.32129 0.83214 0 1.5048 0.14461 1.5048 0.32129 0 0.17661-0.67269 0.32164-1.5048 0.32164z" fill="#ccc" stroke-width="1.05"/>
+</svg>
diff --git a/static/f/plat/fmt.svg b/static/f/plat/fmt.svg
new file mode 100644
index 00000000..bbb1673b
--- /dev/null
+++ b/static/f/plat/fmt.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 14 8.329" xmlns="http://www.w3.org/2000/svg">
+<path d="m11.13 1.7221h2.8702v-1.7221h-7.7548v1.7221h2.8389v2.3366h2.0457z" fill="#2eb85c" stroke-width="1.2579"/>
+<path d="m11.137 4.2644h-2.0518v4.0648h2.0518z" fill="#2eb85c" stroke-width="1.2684"/>
+<path d="m0 8.3291h1.8366v-0.86693h-0.4791v-1.4259l1.0609 2.2928h0.63878l0.8784-2.2187v1.3517h-0.33083v0.86693h2.1902v-0.86693h-0.49908l-0.0028258-2.4069h0.50191v-0.78999h-1.9774l-0.88015 2.0676-0.95253-2.0685h-1.9848v0.79093h0.46768v2.4069h-0.46768z" fill="#2eb85c" stroke-width="1.2615"/>
+<path d="m0 0v0.85561h0.45428v2.3737h-0.45428v0.82908h2.3737v-0.82769h-0.48695v-0.61329h1.3842v-0.84045h-1.3629v-0.91997h1.7036v0.79362h1.1358v-1.6506z" fill="#2eb85c" stroke-width="1.2616"/>
+</svg>
diff --git a/static/f/plat/gba.svg b/static/f/plat/gba.svg
new file mode 100644
index 00000000..466757e0
--- /dev/null
+++ b/static/f/plat/gba.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 16 8.004" xmlns="http://www.w3.org/2000/svg">
+<rect width="16" height="8.004" fill="#1900cd" fill-rule="evenodd" stroke-width="1.2804"/>
+<path d="m8.0932 5.7371h-1.0503v-3.5262h1.4908c0.79624 0 1.1859 0.53174 1.1859 1.6791 0 1.3993-0.42352 1.8471-1.6263 1.8471zm7.3354-5.0095h-1.2197l-0.03396 0.11194-1.3723 4.1699-1.4738-4.1699-0.033847-0.083958h-1.3044l0.10164 0.27986 0.25412 0.67167c-0.40659-0.64368-1.0165-0.97952-1.8127-0.97952h-2.6258v5.4293l-1.9482-5.3173-0.033874-0.083958h-0.99952l-0.033874 0.083958-2.2193 6.1569-0.10164 0.27987h2.7952v-1.4553h-1.135l1.135-3.3863 1.6094 4.7296 0.033875 0.083968h3.2696c1.711 0 2.592-1.1194 2.592-3.3023 0-0.39182-0.03388-0.72764-0.0847-1.0355l1.5586 4.2539 0.03385 0.083968h0.76238l0.03385-0.083968 2.1515-6.1569z" fill="#fff" stroke-width="1.179"/>
+</svg>
diff --git a/static/f/plat/gbc.svg b/static/f/plat/gbc.svg
new file mode 100644
index 00000000..d9315fce
--- /dev/null
+++ b/static/f/plat/gbc.svg
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 16 7.004" xmlns="http://www.w3.org/2000/svg">
+<path d="m15.499 5.4932c-0.33532-0.10361-0.72057-0.034927-0.72057-0.034927s-1.0887 0.10861-1.6554-0.015478c-0.8784-0.1591-0.84857-1.137-0.84857-1.137s-0.02983-0.64815 0.49943-1.5252c0.65314-1.0828 1.3738-1.2769 1.3738-1.2769s0.18023-0.069724 0.34914 0.023289c0.10503 0.62868 0.6944 0.62481 0.6944 0.62481s0.84846 0.058323 0.80709-1.005c-0.0976-0.87338-0.91223-0.9937-1.2538-1.0751-1.0247-0.19021-1.6891 0.37639-1.6891 0.37639s-0.68697 0.38432-1.5089 1.7231c-0.5595 0.8305-0.62694 1.4825-0.62694 1.4825s-0.06753 0.15535-0.04135 0.84619c-0.01486 0.53935 0.18025 0.93122 0.18025 0.93122s0.29662 0.92778 1.235 1.308c0.57052 0.24451 1.4039 0.24061 1.4039 0.24061s0.80709-0.011591 1.4264-0.046601c0.33783 0.027152 0.49932-0.15523 0.49932-0.15523s0.37897-0.25607 0.34149-0.70245c0 0-0.07349-0.46098-0.46549-0.58228z" fill="#c10b44" stroke-width="1.162"/>
+<path d="m1.7547 0.78689c-1.2779 0.81744-1.8925 2.0638-1.7288 3.7586 0.19013 1.9657 2.6525 3.2044 4.7386 1.9566 0.1824-0.10911 0.1112-0.091749 0.17894-0.15414l0.41733-2.7422h-2.4888l-0.19066 1.2632h1.04l-0.11947 0.67811c-0.59573 0.24632-1.609 0.15386-2.041-0.6472-0.2736-0.50731-0.52719-1.6397 0.62612-2.6807 0.93813-0.84722 2.5626-1.0011 3.5016-0.55432 0 0 0.1192-0.70861 0.20826-1.3713-1.8029-0.64678-3.2037-0.10756-4.1421 0.49348z" fill="#6aab21" stroke-width="1.162"/>
+<path d="m6.5548 0.22341-1.0349 6.6966h3.0164c1.2422 0 3.0587-1.8929 1.4051-3.4398 1.7004-1.8194 0.014469-3.2411-0.88746-3.2567-0.72444-0.012421-2.5135 0-2.5135 0zm0.73945 4.0516h1.1237c1.0651 0 1.0355 1.3454-0.14773 1.3454h-1.1829zm0.41383-2.6296h0.87285c0.9463 0 0.75433 1.2536-0.14745 1.2536h-0.9321z" fill="#c79d05" stroke-width="1.162"/>
+</svg>
diff --git a/static/f/plat/ios.svg b/static/f/plat/ios.svg
new file mode 100644
index 00000000..28139851
--- /dev/null
+++ b/static/f/plat/ios.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 14 6.946" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g transform="matrix(1.0032 0 0 1.0032 0 -.068806)" clip-path="url(#b)">
+<path d="m0.064875 6.8814h1.154v-4.9126h-1.154zm0.57469-5.5568c0.3615 0 0.6442-0.27808 0.6442-0.62566 0-0.35223-0.2827-0.6303-0.6442-0.6303-0.35686 0-0.63956 0.27808-0.63956 0.6303 0 0.3476 0.2827 0.62566 0.63956 0.62566zm4.4215-1.2421c-1.9511 0-3.1747 1.3301-3.1747 3.4574 0 2.1273 1.2235 3.4528 3.1747 3.4528 1.9465 0 3.17-1.3255 3.17-3.4528 0-2.1273-1.2235-3.4574-3.17-3.4574zm0 1.0196c1.1911 0 1.9511 0.94545 1.9511 2.4378 0 1.4877-0.76005 2.4332-1.9511 2.4332-1.1957 0-1.9511-0.94545-1.9511-2.4332 0-1.4923 0.75543-2.4378 1.9511-2.4378zm3.6568 3.8977c0.05098 1.2328 1.0613 1.9929 2.6 1.9929 1.6175 0 2.6371-0.79714 2.6371-2.067 0-0.99642-0.5747-1.5572-1.9326-1.8677l-0.7693-0.17612c-0.8204-0.19464-1.1587-0.45418-1.1587-0.89909 0-0.55615 0.5098-0.92691 1.2652-0.92691 0.7647 0 1.2884 0.3754 1.344 1.0011h1.1401c-0.0278-1.1772-1.001-1.9744-2.4748-1.9744-1.4552 0-2.4888 0.80177-2.4888 1.9882 0 0.95472 0.58396 1.548 1.8166 1.8307l0.8667 0.20392c0.8435 0.19929 1.1864 0.47736 1.1864 0.95935 0 0.55614-0.5608 0.95472-1.3671 0.95472-0.8157 0-1.432-0.4032-1.5062-1.0196h-1.1586z" fill="url(#a)"/>
+</g>
+<defs>
+<clipPath id="b">
+<rect width="14.119" height="7" fill="#fff"/>
+</clipPath>
+<linearGradient id="a" x1=".64982" x2="12.669" y1=".71473" y2="6.0622" gradientUnits="userSpaceOnUse">
+<stop stop-color="#3367ff" offset="0"/>
+<stop stop-color="#8be250" offset=".71187"/>
+<stop stop-color="#dbf141" offset="1"/>
+</linearGradient>
+</defs>
+</svg>
diff --git a/static/f/plat/lin.svg b/static/f/plat/lin.svg
new file mode 100644
index 00000000..8d2242a0
--- /dev/null
+++ b/static/f/plat/lin.svg
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg">
+<g transform="matrix(1 0 0 1.0056 1 1)" clip-path="url(#a)">
+<path d="m20.056 27.633-8e-4 -0.0012c-0.2478-0.2797-0.3659-0.7983-0.4928-1.3507-0.1266-0.5521-0.2683-1.1474-0.7215-1.5333l-0.0029-0.0025c-0.0898-0.0784-0.1821-0.1445-0.2748-0.1996-0.093-0.0552-0.1874-0.1001-0.2817-0.1356 0.6301-1.8685 0.383-3.7292-0.2531-5.4103-0.7803-2.0636-2.1429-3.8614-3.1837-5.0913-1.165-1.4695-2.3042-2.8643-2.2817-4.9247 0.0347-3.1445 0.3458-8.9757-5.1878-8.9835-0.22499-4.0832e-4 -0.45977 0.0089831-0.70435 0.028582-6.1836 0.49774-4.5434 7.0309-4.6353 9.2182-0.1131 1.5998-0.43731 2.8607-1.5377 4.4246-1.2923 1.5369-3.1126 4.0248-3.9746 6.6148-0.40669 1.2221-0.60023 2.4679-0.42179 3.6471-0.05594 0.0502-0.10903 0.1029-0.16007 0.1568-0.37933 0.4055-0.65984 0.8962-0.97221 1.2266-0.29195 0.2916-0.70762 0.4022-1.1649 0.5659-0.45732 0.1642-0.95914 0.4059-1.2638 0.9906l-0.00204 0.0033c-0.14332 0.2674-0.18987 0.5561-0.18987 0.8489 0 0.2707 0.04002 0.5451 0.08044 0.8092 0.08411 0.5496 0.16945 1.0694 0.05635 1.4214-0.36177 0.9894-0.40832 1.6733-0.15353 2.1699 0.25561 0.4973 0.7803 0.7166 1.3736 0.8407 1.1866 0.2474 2.7933 0.1862 4.0595 0.8575l0.10903-0.2054-0.1078 0.2058c1.3556 0.7088 2.73 0.9604 3.8264 0.7101 0.79541-0.1813 1.4406-0.6549 1.7721-1.3834 0.85748-0.0041 1.7987-0.3675 3.3062-0.4504 1.0228-0.0825 2.3005 0.3634 3.77 0.2817 0.0384 0.1593 0.094 0.3128 0.1699 0.4586l0.0025 0.0041c0.5695 1.1392 1.6279 1.6602 2.7561 1.5712 1.1294-0.0891 2.3315-0.7566 3.3026-1.9118 0.9252-1.1221 2.4609-1.5871 3.4797-2.2012 0.5091-0.3071 0.922-0.6917 0.9542-1.2503 0.0318-0.5582-0.2961-1.1837-1.0499-2.0204z" fill="#4d4d4d"/>
+<path d="m9.8009 9.4604c-0.10739-0.21028-0.32665-0.41036-0.69986-0.56348l-8.2e-4 -4.1e-4 -0.00122-4.1e-4c-0.77622-0.33237-1.1131-0.35605-1.5463-0.63779-0.70517-0.45324-1.2878-0.61208-1.7721-0.61004-0.25357 8.2e-4 -0.48019 0.04574-0.68313 0.11597-0.59002 0.20293-0.9816 0.62636-1.227 0.8587l-4.1e-4 4e-4c0 4.1e-4 -4.1e-4 4.1e-4 -4.1e-4 8.2e-4 -0.04818 0.04573-0.11024 0.08738-0.2605 0.19763-0.15149 0.11065-0.37852 0.27725-0.70517 0.52224-0.29032 0.21763-0.38464 0.50101-0.2842 0.83297 0.10004 0.332 0.42017 0.715 1.0057 1.0461l8.1e-4 8e-4 0.00123 4e-4c0.3634 0.2136 0.61166 0.5015 0.89667 0.7305 0.14251 0.1144 0.29236 0.2164 0.47284 0.2936s0.39117 0.1295 0.65494 0.145c0.61902 0.0359 1.0747-0.1499 1.4769-0.3802 0.40301-0.2299 0.74433-0.5112 1.136-0.6382l8.2e-4 -4e-4 8.5e-4 -4e-4c0.80272-0.2507 1.3752-0.7558 1.5544-1.2356 0.08983-0.24007 0.08697-0.46791-0.02001-0.6782z" fill="#f3d427"/>
+<path d="m7.7643 10.645c-0.63864 0.3329-1.3846 0.7367-2.1784 0.7367-0.79337 0-1.4201-0.3667-1.8709-0.724-0.22539-0.1784-0.40832-0.356-0.54633-0.4851-0.23945-0.18899-0.21077-0.4541-0.11239-0.44627 0.16491 0.02059 0.18984 0.23771 0.29368 0.33487 0.14047 0.1314 0.31645 0.3017 0.5296 0.4707 0.42628 0.3377 0.99467 0.6664 1.7064 0.6664 0.71048 0 1.5398-0.4171 2.0461-0.7011 0.28682-0.1609 0.65178-0.4492 0.94962-0.66787 0.22787-0.16727 0.21956-0.36868 0.40771-0.34675s0.04897 0.22294-0.21452 0.45289c-0.26349 0.22993-0.6757 0.53503-1.0105 0.70953z" fill="#202020"/>
+<path d="m17.544 24.274c-0.0886-0.0033-0.176-0.0029-0.2609-9e-4 -0.0078 4e-4 -0.0155 4e-4 -0.0237 4e-4 0.2193-0.6925-0.2658-1.2033-1.5585-1.788-1.3406-0.5896-2.4087-0.5312-2.5892 0.6652-0.0114 0.0624-0.0208 0.1265-0.0278 0.1911-0.1004 0.0351-0.2009 0.0792-0.3021 0.1343-0.6292 0.3446-0.9731 0.9693-1.1641 1.7362-0.1907 0.766-0.2459 1.6917-0.2981 2.7325v8e-4c-0.0323 0.5231-0.2479 1.2311-0.4659 1.9808-2.196 1.5667-5.2437 2.2453-7.8316 0.4789-0.17517-0.2772-0.37647-0.552-0.58349-0.8231-0.13229-0.1731-0.26826-0.3451-0.40301-0.5149 0.26541 4e-4 0.49121-0.0433 0.67373-0.1258 0.22703-0.1033 0.38627-0.2682 0.46549-0.4806 0.15761-0.4242-8.2e-4 -1.0228-0.50591-1.7068-0.5051-0.6835-1.3605-1.4548-2.6173-2.2257v-4e-4c-0.92362-0.5745-1.4397-1.2785-1.6815-2.0429-0.24214-0.7647-0.20825-1.5916-0.02164-2.4078 0.35769-1.5668 1.2764-3.0906 1.8628-4.0469 0.15761-0.116 0.056348 0.2156-0.5937 1.4226-0.58227 1.1033-1.6713 3.6496-0.18048 5.6373 0.040016-1.4145 0.3777-2.857 0.94485-4.2065 0.82604-1.8722 2.5536-5.1196 2.6908-7.7075 0.07104 0.0514 0.314 0.2156 0.4222 0.2772 4.1e-4 4e-4 4.1e-4 4e-4 8.2e-4 4e-4 0.31685 0.1867 0.55491 0.4594 0.86319 0.7073 0.3091 0.2482 0.69496 0.4626 1.278 0.4965 0.05594 0.0032 0.11066 0.0049 0.16415 0.0049 0.60104 0 1.0698-0.196 1.4602-0.4194 0.42429-0.2425 0.76315-0.5112 1.0845-0.6157 4.1e-4 -4e-4 8.2e-4 -4e-4 0.00123-4e-4 0.67903-0.2123 1.2184-0.588 1.5254-1.0257 0.52751 2.0791 1.7541 5.0823 2.5426 6.5478 0.4194 0.7774 1.2531 2.4295 1.6133 4.4201 0.2283-7e-3 0.4798 0.0261 0.7489 0.0951 0.942-2.4422-0.7987-5.0722-1.5949-5.8047-0.3214-0.312-0.3369-0.4516-0.1772-0.4451 0.8632 0.764 1.997 2.2997 2.4095 4.0334 0.1882 0.7905 0.2282 1.6219 0.0265 2.4422 0.0984 0.0408 0.1988 0.0853 0.3005 0.1335 1.512 0.7362 2.071 1.3764 1.8023 2.2503z" fill="#ccc"/>
+<path d="m9.872 7.0652c0.00327 0.41199-0.06778 0.76274-0.22417 1.1208-0.08901 0.20416-0.19146 0.37565-0.31436 0.52428-0.04169-0.02001-0.08493-0.0392-0.12989-0.05757-0.15557-0.06656-0.29318-0.12127-0.41645-0.16782-0.12335-0.04655-0.21959-0.07836-0.31885-0.11266 0.0719-0.08697 0.21355-0.18946 0.26626-0.31808 0.08003-0.19395 0.11923-0.38341 0.12658-0.60921 0-0.00899 0.00286-0.01674 0.00286-0.02736 0.00449-0.21641-0.02409-0.40138-0.08738-0.59084-0.06615-0.19885-0.1503-0.34176-0.27194-0.46059-0.12209-0.11882-0.24377-0.17272-0.38995-0.17762-0.00694-4e-4 -0.01347-4e-4 -0.02041-4e-4 -0.1372 4e-4 -0.25643 0.04777-0.37978 0.15067-0.12944 0.1082-0.22539 0.24662-0.30538 0.43935-0.07963 0.19273-0.11883 0.38382-0.12662 0.61085-0.00119 0.00898-0.00119 0.01674-0.00119 0.02572-0.00286 0.12495 0.00531 0.23928 0.0245 0.35034-0.28092-0.14005-0.64033-0.24218-0.88859-0.30138-0.01429-0.10739-0.02246-0.21805-0.02491-0.33401v-0.03144c-0.00449-0.41077 0.06288-0.76315 0.2209-1.1208 0.15802-0.3581 0.35361-0.61534 0.62878-0.82481 0.27561-0.20906 0.54637-0.30501 0.86686-0.30828h0.01511c0.31359 0 0.58186 0.09228 0.85747 0.29195 0.2797 0.20334 0.48141 0.45732 0.64392 0.81256 0.15925 0.34625 0.23601 0.68475 0.24381 1.0861-4e-5 0.01062-4e-5 0.0196 0.00282 0.03022z" fill="#ccc"/>
+<path d="m5.1322 7.4756c-0.04124 0.01185-0.08126 0.0245-0.12087 0.03798-0.22457 0.07758-0.40288 0.1632-0.57519 0.27712 0.01674-0.11923 0.01919-0.24009 0.00612-0.37525-0.00122-0.00735-0.00122-0.01347-0.00122-0.02082-0.01797-0.17925-0.05594-0.32952-0.11923-0.48141-0.06737-0.15802-0.14291-0.26949-0.24214-0.35524-0.08983-0.07758-0.17476-0.11351-0.26867-0.1127-0.00939 0-0.01919 4.1e-4 -0.02899 0.00123-0.10535 0.00898-0.19273 0.06043-0.27562 0.16128-0.08248 0.10045-0.13679 0.2254-0.17598 0.39118-0.0392 0.16537-0.04941 0.32788-0.03308 0.51448 0 0.00735 0.00164 0.01347 0.00164 0.02082 0.01796 0.18089 0.0543 0.33115 0.11882 0.48305 0.06614 0.15639 0.14291 0.26786 0.24213 0.3536 0.01674 0.0143 0.03307 0.02736 0.04941 0.03879-0.1029 0.07963-0.17203 0.1361-0.25696 0.19817-0.05431 0.0396-0.11883 0.08697-0.19396 0.1425-0.16373-0.15353-0.29154-0.34625-0.40342-0.60064-0.13229-0.30052-0.20293-0.60145-0.22416-0.95669v-0.00286c-0.0196-0.35524 0.0151-0.66066 0.11269-0.9767 0.098-0.31605 0.22866-0.5447 0.41853-0.73253 0.18946-0.18824 0.38056-0.28297 0.61085-0.29481 0.01796-8.2e-4 0.03552-0.00122 0.05308-0.00122 0.20865 4e-4 0.39484 0.06982 0.58757 0.22376 0.20906 0.167 0.36708 0.38055 0.49938 0.68148 0.1327 0.30093 0.20334 0.60187 0.22294 0.95711v0.00285c0.00939 0.14904 0.00817 0.2895-0.00367 0.42547z" fill="#ccc"/>
+<path d="m6.1798 8.3252c0.02641 0.08478 0.16304 0.07073 0.24198 0.11139 0.06927 0.03568 0.12499 0.11388 0.20287 0.11613 0.07433 0.00214 0.19002-0.02575 0.19969-0.09948 0.01277-0.09741-0.12948-0.15931-0.22101-0.195-0.11779-0.04592-0.2687-0.06922-0.37919-0.00778-0.02532 0.01407-0.05296 0.04709-0.04434 0.07474z" fill="#202020"/>
+<path d="m5.3728 8.3252c-0.02642 0.08478-0.16305 0.07073-0.24199 0.11139-0.06926 0.03568-0.12498 0.11388-0.20286 0.11613-0.07433 0.00214-0.19002-0.02575-0.19969-0.09948-0.01277-0.09741 0.12947-0.15931 0.22101-0.195 0.11779-0.04592 0.2687-0.06922 0.37919-0.00778 0.02532 0.01407 0.05295 0.04709 0.04434 0.07474z" fill="#202020"/>
+</g>
+<defs>
+<clipPath id="a">
+<rect width="14" height="13.922" fill="#fff"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/static/f/plat/mac.svg b/static/f/plat/mac.svg
new file mode 100644
index 00000000..534e91d3
--- /dev/null
+++ b/static/f/plat/mac.svg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg enable-background="new 0 0 499.524 554.546" overflow="visible" version="1.1" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg">
+<g transform="matrix(.012005 0 0 .012005 1.002 -3.2879e-6)" clip-rule="evenodd" fill-rule="evenodd" stroke-miterlimit="2.6131">
+<path d="m54.232 423.01c0.34857-0.57566 0.71814-1.1429 1.0877-1.6995 59.734-92.356 153.96-146.41 242.57-146.41 90.228 0 146.95 49.669 221.53 49.669 72.366 0 116.44-49.74 220.76-49.74 78.815 0 162.38 43.098 221.9 117.62-16.456 9.0502-31.302 19.326-44.571 30.619l-863.27-0.0589z" fill="#4d9537" stroke="#61bb46" stroke-width="6.2809"/>
+<path d="m661.05 191.62c37.864-48.834 66.665-117.79 56.227-188.28-61.907 4.2615-134.32 43.84-176.61 95.362-38.376 46.805-70.059 116.22-57.724 183.65 67.587 2.1107 137.5-38.415 178.11-90.73z" fill="#4d9537" stroke="#61bb46" stroke-width="6.2809"/>
+<path d="m51.151 421.65c-25.724 40.471-43.523 98.477-48.247 149.35l834.55-0.0215c9.0233-55.662 39.027-108.84 86.582-149.27l-872.89-0.0615h0.04925z" fill="#ca8a02"/>
+<path d="m10.483 719.03c-8.1095-51.965-9.4219-102.06-4.3277-148.03l828.05-0.0213c-8.099 49.844-1.3019 101.71 19.184 148.08l-842.91-0.0317z" fill="#c35f09" stroke="#f5821f" stroke-width="6.2809"/>
+<path d="m50.95 867.05c-19.554-49.73-32.942-99.677-40.468-148.01l842.91 0.0317c26.095 59.079 74.386 109.27 142.39 135.06-2.02 4.5104-3.9687 8.8246-5.8438 12.983l-938.98-0.0632z" fill="#b01c1f" stroke="#e03a3e" stroke-width="6.2809"/>
+<path d="m989.93 867.11c-23.346 51.541-36.879 78.291-69.187 127.67-4.3466 6.6316-8.8382 13.415-13.515 20.262l-778.04 0.072c-2.4925-3.7281-4.9619-7.454-7.3935-11.15-29.089-44.49-52.639-90.616-70.838-136.92l938.98 0.0632z" fill="#903b91" stroke="#963d97" stroke-width="6.2809"/>
+<path d="m907.23 1015c-47.595 70.013-111.49 147.06-189.03 147.79-75.657 0.6895-95.066-49.441-197.71-48.876-102.64 0.5757-124.07 49.751-199.73 49.04-80.888-0.7507-143.7-76.416-191.58-147.88l778.04-0.072z" fill="#0092cc" stroke="#009ddc" stroke-width="6.2809"/>
+</g>
+</svg>
diff --git a/static/f/plat/msx.svg b/static/f/plat/msx.svg
new file mode 100644
index 00000000..9b4ae2bb
--- /dev/null
+++ b/static/f/plat/msx.svg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 16 8.404" xmlns="http://www.w3.org/2000/svg">
+<rect width="16" height="8.404" fill="#000" stroke-width="1.3767"/>
+<g transform="matrix(1.0204 0 0 1.4013 .85714 .8404)" clip-path="url(#a)" fill="#e4e4e4">
+<path d="m0 4.7808 1.2145-4.7808h1.1262l0.58518 2.0867 0.60725-2.0867h1.0599l0.99368 3.5221 2.4244-0.00458c0.2545-0.00248 0.27011-0.52876-0.01884-0.52862l-1.4119-0.01886c-0.60629 0.00587-1.2456-0.65005-1.2145-1.5236 0.00647-0.8013 0.7052-1.4323 1.5991-1.4321l3.6012-0.0032344 0.9164 1.2476 0.8944-1.2587 1.4905 0.01104-1.6341 2.2965 1.7666 2.4901-1.4828-0.00457-1.0281-1.4289-0.978 1.4289-1.5127-0.00133 1.7224-2.4622-0.75078-1.0931-3.1305 0.00457c-0.34164 0.00313-0.32911 0.54061 0.00268 0.53053l1.319 0.02018c0.55746 0.00361 1.3426 0.5829 1.323 1.4873 0.00852 1.0514-0.93848 1.5318-1.3944 1.5062l-3.4526 0.00458-0.57413-2.1511-0.57413 2.1465h-1.0898l-0.59944-2.1355-0.52674 2.1387z" fill="#e4e4e4"/>
+</g>
+<defs>
+<clipPath id="a">
+<rect width="14" height="4.7977" fill="#fff"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/static/f/plat/n3d.svg b/static/f/plat/n3d.svg
new file mode 100644
index 00000000..c32f5559
--- /dev/null
+++ b/static/f/plat/n3d.svg
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 16 7.004" xmlns="http://www.w3.org/2000/svg">
+<g transform="scale(1.1429 1.4008)" clip-path="url(#a)">
+<path d="m10.17 4.0054c0.3504 0.17667 1.0899 0.31995 1.6668 0.31995 0.6317 0 0.8939-0.27715 0.8939-0.62484 0-0.31197-0.2433-0.49534-0.941-0.82217-0.9326-0.44056-1.6166-0.78717-1.6166-1.57 0-0.81075 0.8229-1.2876 2.0781-1.2876 0.6739 0 0.9052 0.054413 1.3334 0.15471l3e-3 0.76921c-0.4202-0.10211-0.7928-0.27769-1.3716-0.27769-0.6201 0-0.8842 0.25157-0.8842 0.51093 0 0.37636 0.4068 0.55628 1.121 0.88149 0.9937 0.45471 1.5467 0.80548 1.5467 1.572 0 0.78862-0.6923 1.358-2.2541 1.358-0.6415 0-1.0836-0.054053-1.5754-0.15508z" fill="#b1b1b4" stroke-width=".99957"/>
+<path d="m6.846 0.70339h-0.74313v3.611h0.74313c1.141 0 1.8607-0.62608 1.8607-1.7981 0-1.1717-0.71971-1.8129-1.8607-1.8129zm1.9955 3.9474c-0.36802 0.21367-1.0632 0.3492-1.6715 0.3492h-2.3231v-4.9686h2.3231c0.6083 0 1.3035 0.13735 1.6718 0.35048 0.89471 0.51843 1.1868 1.3482 1.1868 2.1344 0 0.78675-0.28938 1.6152-1.1871 2.1346z" fill="#b1b1b4" stroke-width="1.0017"/>
+<path d="m3.2185 2.2594s1.0838-0.22063 1.0838-1.0782c0-0.8383-1.154-1.1812-2.3818-1.1812-1.1082 0-1.8367 0.1721-1.8367 0.1721v0.76163c0.50299-0.1546 0.98398-0.28629 1.6397-0.28629 0.70368 0 1.2407 0.2668 1.2407 0.64382 0 0.4546-0.53109 0.71419-1.674 0.71419h-0.52527v0.68532h0.48794c1.204 0 1.8886 0.23018 1.8886 0.79193 0 0.5015-0.61171 0.80619-1.3744 0.80619-0.66508 0-1.2735-0.18003-1.767-0.35411v0.82151c0.23702 0.051773 0.8659 0.21233 2.0372 0.21233 1.2975 0 2.4265-0.53036 2.4265-1.4652 0-0.784-0.78216-1.244-1.2453-1.244z" fill="#d0000f" stroke-width=".99686"/>
+</g>
+<defs>
+<clipPath id="a">
+<rect width="14" height="5" fill="#fff"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/static/f/plat/nds.svg b/static/f/plat/nds.svg
new file mode 100644
index 00000000..33ca9c56
--- /dev/null
+++ b/static/f/plat/nds.svg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 14 5.95" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#a)" fill="#ccc">
+<path d="m8.1423 4.7688c0.53562 0.21475 1.6669 0.38529 2.5498 0.38529 0.9664 0 1.3663-0.32845 1.3663-0.74532 0-0.37897-0.3714-0.59373-1.4383-0.98533-1.4268-0.52426-2.4734-0.94113-2.4734-1.8823 0-0.96638 1.2595-1.5412 3.179-1.5412 1.0308 0 1.3845 0.063161 2.0389 0.18317l5e-3 0.92217c-0.643-0.12-1.2127-0.32844-2.0976-0.32844-0.9487 0-1.353 0.30318-1.353 0.61267 0 0.44846 0.62276 0.66321 1.7149 1.0548 1.5203 0.5432 2.3661 0.96007 2.3661 1.8759 0 0.94744-1.0593 1.6296-3.4481 1.6296-0.98089 0-1.6574-0.06316-2.4096-0.18949z"/>
+<path d="m3.0577 0.8157h-1.1369v4.3077h1.1369c1.7452 0 2.8461-0.75164 2.8461-2.1475s-1.1009-2.1602-2.8461-2.1602zm3.0514 4.7056c-0.56214 0.25266-1.6258 0.41688-2.5556 0.41688h-3.5535v-5.9247h3.5535c0.92976 0 1.9934 0.16422 2.5568 0.41687 1.3687 0.619 1.8147 1.6106 1.8147 2.5455s-0.44214 1.9265-1.8159 2.5454z"/>
+</g>
+<defs>
+<clipPath id="a">
+<rect width="14" height="5.9499" fill="#fff"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/static/f/plat/nes.svg b/static/f/plat/nes.svg
new file mode 100644
index 00000000..07167434
--- /dev/null
+++ b/static/f/plat/nes.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.0" viewBox="0 0 16 11.724" xmlns="http://www.w3.org/2000/svg">
+<g transform="translate(-.22261)" fill="#ca1c02">
+<g transform="matrix(.011932 0 0 .011932 -3.9022 -.0070676)">
+<path transform="matrix(1.0253 0 0 1.0253 -30.273 -2.8852)" d="m1112 147.46a144.02 144.02 0 1 1-288.03 0 144.02 144.02 0 1 1 288.03 0z"/>
+<rect transform="rotate(17.753)" x="598.35" y="-211.4" width="174.1" height="1019.9" rx="87.049" ry="87.049"/>
+<path transform="matrix(1.0253 0 0 1.0253 -125.27 297.25)" d="m1112 147.46a144.02 144.02 0 1 1-288.03 0 144.02 144.02 0 1 1 288.03 0z"/>
+</g>
+<g transform="matrix(.011932 0 0 .011932 2.9789 -.0070676)">
+<path transform="matrix(1.0253 0 0 1.0253 -30.273 -2.8852)" d="m1112 147.46a144.02 144.02 0 1 1-288.03 0 144.02 144.02 0 1 1 288.03 0z"/>
+<rect transform="rotate(17.753)" x="598.35" y="-211.4" width="174.1" height="1019.9" rx="87.049" ry="87.049"/>
+<path transform="matrix(1.0253 0 0 1.0253 -125.27 297.25)" d="m1112 147.46a144.02 144.02 0 1 1-288.03 0 144.02 144.02 0 1 1 288.03 0z"/>
+</g>
+</g>
+</svg>
diff --git a/static/f/plat/oth.svg b/static/f/plat/oth.svg
new file mode 100644
index 00000000..4f49830f
--- /dev/null
+++ b/static/f/plat/oth.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+<path d="m8 1c-3.8657 0-7 3.1343-7 7 0 3.8657 3.1343 7 7 7 3.8657 0 7-3.1343 7-7 0-3.8657-3.1343-7-7-7zm0 12.534c-0.54143 0-0.98-0.44-0.98-0.98 0-0.54143 0.44-0.98 0.98-0.98 0.54143 0 0.98 0.44 0.98 0.98 0 0.54143-0.43857 0.98-0.98 0.98zm1.3571-4.4528c-0.00571 0.00286-0.011429 0.00428-0.017143 0.00856-0.37429 0.17572-0.6157 0.55715-0.6157 0.97001 0 0.4-0.3243 0.72429-0.7243 0.72429-0.4 0-0.72429-0.32429-0.72429-0.72429 0-0.96429 0.56144-1.8543 1.43-2.2714 0.00571-0.00286 0.011418-0.00572 0.017133-0.00858 0.59571-0.28 0.98001-0.88572 0.98001-1.5429 0-0.94-0.7643-1.7043-1.7043-1.7043s-1.7043 0.76429-1.7043 1.7043c0 0.4-0.32429 0.72429-0.72429 0.72429s-0.72429-0.32429-0.72429-0.72429c0-1.7386 1.4143-3.1514 3.1514-3.1514 1.7386 0 3.1514 1.4143 3.1514 3.1514 0.0029 1.2086-0.69999 2.3229-1.7914 2.8443z" fill="#bec10b" stroke-width="1.0204"/>
+</svg>
diff --git a/static/f/plat/p88.svg b/static/f/plat/p88.svg
new file mode 100644
index 00000000..9ac81f99
--- /dev/null
+++ b/static/f/plat/p88.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg">
+<g transform="matrix(1.1508 0 0 1.0186 -.57077 0)" clip-path="url(#a)" clip-rule="evenodd" fill-rule="evenodd">
+<path d="m8.9642 5.406c1.8301-0.24018 3.4232 1.2188 2.8632 3.1134-0.08753 0.29628-0.5887 0.92963-0.5887 0.92963s0.76531 0.71775 0.84903 1.1811c0.34911 1.933-1.09 3.0717-2.5509 3.1133-1.5474 0.04428-3.2502-1.0174-2.9152-3.0078 0.045294-0.2691 0.22247-0.52559 0.31239-0.68598 0.090597-0.16165 0.51705-0.60064 0.51705-0.60064s-0.56755-0.9139-0.62118-1.299c-0.19581-1.4066 0.63185-2.5468 2.1343-2.744zm-0.3644 2.3235c0 1.0146 1.5097 1.0014 1.5097 0.051088 0-1.0749-1.5097-1.0881-1.5097-0.051088zm0.7804 4.4308c1.1807 0 1.187-1.7941-0.020195-1.7941-1.2111 0-1.1796 1.7941 0.020195 1.7941z" fill="#cc6700" stroke-width=".89574"/>
+<path d="m9.8537 0.098995v1.0274c-2.8695-0.75733-2.8503 3.7977-0.038513 3.0433v1.0281c-4.3531 1.0697-4.3723-6.0836 0.038513-5.0988z" fill="#e6e6e6" stroke-width="1.2442"/>
+<path d="m4.5066 3.1859 0.00365-1.0261c0.50733 0 0.81108-0.17267 0.81108-0.5339 0-0.29867-0.050264-0.59291-1.0769-0.59291l0.00424 4.2685h-1.1027l0.012513-5.3015 1.0648 1.0106e-4c2.0448 0.0068367 2.2856 0.81297 2.2856 1.5927 0 1.1204-0.79849 1.5932-2.0024 1.5932z" fill="#e6e6e6" stroke-width="1.2448"/>
+<path d="m3.3157 5.406c1.8301-0.24018 3.4232 1.2188 2.8632 3.1134-0.087573 0.29628-0.5887 0.92963-0.5887 0.92963s0.7653 0.71775 0.84902 1.1811c0.34914 1.933-1.09 3.0717-2.5509 3.1133-1.5474 0.04427-3.2502-1.0174-2.9152-3.0078 0.045297-0.2691 0.22247-0.52558 0.31239-0.68598 0.090592-0.16165 0.51706-0.60064 0.51706-0.60064s-0.56756-0.9139-0.62118-1.299c-0.19581-1.4066 0.63185-2.5468 2.1343-2.744zm-0.3644 2.3235c0 1.0146 1.5097 1.0014 1.5097 0.051088 0-1.0749-1.5097-1.0881-1.5097-0.051088zm0.78039 4.4308c1.1808 0 1.1871-1.7941-0.020197-1.7941-1.2111 0-1.1796 1.7941 0.020197 1.7941z" fill="#cc6700" stroke-width=".89574"/>
+</g>
+<defs>
+<clipPath id="a">
+<rect width="12.753" height="14" fill="#fff"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/static/f/plat/p98.svg b/static/f/plat/p98.svg
new file mode 100644
index 00000000..05218723
--- /dev/null
+++ b/static/f/plat/p98.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg">
+<g transform="matrix(1.1614 0 0 1 -.57631 0)" clip-path="url(#a)" clip-rule="evenodd" fill-rule="evenodd">
+<path d="m4.0443 14h-1.8974l1.5352-3.174c-0.41488 0-1.5612-0.22658-1.9793-0.61306-0.54209-0.50097-0.98088-1.5142-0.67574-2.7193 0.33691-1.3303 1.7933-2.3326 3.3785-1.9195 1.1335 0.29538 1.796 0.87909 1.9909 2.1531 0.089774 0.58675 0.052659 1.1574-0.32194 2.0201zm-1.4059-5.7066c0 1.3811 2.0791 1.4192 2.0791 0.053321 0-1.4261-2.0791-1.4394-2.0791-0.053321z" fill="#c00" stroke-width=".88492"/>
+<path d="m8.8869 5.5064c1.8134-0.24464 3.3919 1.2415 2.837 3.1712-0.08678 0.30178-0.58327 0.9469-0.58327 0.9469s0.75825 0.73111 0.84122 1.203c0.34596 1.9689-1.08 3.1288-2.5275 3.1711-1.5332 0.04509-3.2204-1.0363-2.8886-3.0636 0.04488-0.27412 0.22043-0.53541 0.30953-0.69876 0.089759-0.16462 0.51232-0.61176 0.51232-0.61176s-0.56237-0.93088-0.6155-1.3231c-0.19402-1.4327 0.62607-2.5941 2.1148-2.795zm-0.36106 2.3666c0 1.0334 1.4959 1.02 1.4959 0.052031 0-1.0949-1.4959-1.1083-1.4959-0.052031zm0.77326 4.5132c1.17 0 1.1762-1.8274-0.02002-1.8274-1.2 0-1.1688 1.8274 0.02002 1.8274z" fill="#c00" stroke-width=".88509"/>
+<path d="m9.8535 0.10082v1.0465c-2.8696-0.77139-2.8503 3.8683-0.038522 3.0998v1.0472c-4.3531 1.0895-4.3723-6.1966 0.038519-5.1935z" fill="#e6e6e6" stroke-width="1.2351"/>
+<path d="m4.5069 3.2447 0.00366-1.045c0.50732 0 0.81108-0.17586 0.81108-0.54376 0-0.30419-0.050265-0.60386-1.0769-0.60386l0.00422 4.3473h-1.1027l0.012505-5.3994 1.0648 1.0292e-4c2.0448 0.0069629 2.2857 0.82797 2.2857 1.622 0 1.1411-0.7985 1.6226-2.0024 1.6226z" fill="#e6e6e6" stroke-width="1.2356"/>
+</g>
+<defs>
+<clipPath id="a">
+<rect width="12.966" height="14.234" fill="#fff"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/static/f/plat/pce.svg b/static/f/plat/pce.svg
new file mode 100644
index 00000000..7a33d8bd
--- /dev/null
+++ b/static/f/plat/pce.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 14 12.619" xmlns="http://www.w3.org/2000/svg">
+<g transform="matrix(1.0396 0 0 1.0396 -.22852 0)" clip-path="url(#a)" clip-rule="evenodd" fill="#cc2000" fill-rule="evenodd">
+<path d="m1.0845 9.848s0.98149 0.03059 1.1284-0.59366l0.06026-1.1808 1.1382-0.42475c0.90263-0.39722 1.5121-1.1298 1.5121-2.3616v-1.2403c0-1.0108-0.9811-1.2275-1.6141-1.0194l-3.0583 1.1044-0.031311 4.8212c0.043035 0.93441 0.86472 0.895 0.86472 0.895zm0.93782-4.6501c0-0.06787 0.04247-0.10619 0.17421-0.1656l0.68377-0.25916c0.21669-0.08296 0.28457-0.05418 0.28457 0.15713v1.0279c0 0.12419-0.12835 0.22622-0.27179 0.27609l-0.65838 0.23361c-0.15175 0.05418-0.21238 0.05726-0.21238-0.1105z"/>
+<path d="m8.2369 3.5842c0.103-0.03615 1.4781-0.52679 1.4781-0.52679 0.14762-0.05725 0.11862-0.3769 0.11862-0.44169 0-0.97587-0.85363-1.425-1.461-1.2063l-1.4271 0.49263c-0.8389 0.31426-1.699 0.77304-1.8859 2.1917v2.7354c0 1.6863 1.3168 1.3805 1.8349 1.1893 0.51834-0.19114 2.2652-0.83044 2.4134-0.88661 0.40709-0.1539 0.71274-0.57036 0.65029-1.1055-0.04356-0.33321-0.09069-0.66596-0.14126-0.99818-0.01708-0.09758-0.02144-0.1953-0.13596-0.15299l-1.4274 0.52666c-0.13583 0.05109-0.22069 0.07217-0.22069 0.23792 0 0.1656 0.01271 0.30149-0.22929 0.38229 0 0-0.67545 0.23254-0.75626 0.26332-0.08079 0.03078-0.21237 0.04355-0.21237-0.19546v-2.37c0-0.11466 0.04248-0.16451 0.19545-0.22085 0.15298-0.05633 0.8072-0.28041 0.8072-0.28041 0.12617-0.04031 0.22069-0.04354 0.22069 0.09343v0.14436c0 0.19667 0.07559 0.16375 0.17859 0.12772z"/>
+<path d="m12.682 0.032706-2.37 0.82506c-0.0956 0.031865-0.1221 0.11989-0.1221 0.23993v5.5388c0 0.1815 0.0574 0.19752 0.1868 0.15277 0 0 2.9468-1.0596 3.0243-1.0872 0.0776-0.02766 0.1019-0.01919 0.1019-0.11901v-0.50954c0-0.17636-0.0243-0.24531-0.1868-0.18698l-2.1577 0.78151c-0.1487 0.05415-0.2039 0.0838-0.2039-0.11902v-1.444c0-0.14759 0.0286-0.15082 0.0849-0.16991 0.0564-0.01923 1.2573-0.45892 1.2573-0.45892 0.0892-0.03494 0.2039-0.07726 0.2039-0.18668v-0.47586c0-0.09557-0.0531-0.16344-0.272-0.08511l-1.0704 0.39076c-0.1805 0.07341-0.2039 0.03401-0.2039-0.1359v-1.4271c0-0.06464-0.0223-0.09434 0.1359-0.15266l1.6821-0.62884c0.1284-0.047858 0.1529-0.025537 0.1529-0.15297v-0.47555c0-0.13911-0.036-0.1836-0.2432-0.11358z"/>
+<path d="m8.9231 9.1119-2.8924 3.1728c-0.06048 0.0767-0.02554 0.1022 0.0511 0.0637l3.7462-2.3445c0.07003-0.0446 0.08295-0.05429 0.14036-0.03828 0.05709 0.016 1.4016 0.98128 1.4016 0.98128 0.0955 0.0637 0.1434 0.0351 0.1145-0.0383l-0.7007-1.5292c-0.0382-0.08281-0.0511-0.13699-0.013-0.17838l2.8289-3.0837c0.0734-0.10203 0.0318-0.15297-0.089-0.08925l-3.5043 2.1789c-0.08293 0.05094-0.12741 0.04464-0.1785 0.01278l-1.2997-0.87923c-0.13712-0.07648-0.17822-0.04463-0.14005 0.10204l0.5862 1.4527c0.03801 0.07971 0.01585 0.1402-0.05125 0.21669z" stroke="#fff" stroke-miterlimit="2.613" stroke-width=".10204"/>
+</g>
+<defs>
+<clipPath id="a">
+<rect width="14" height="12.138" fill="#fff"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/static/f/plat/pcf.svg b/static/f/plat/pcf.svg
new file mode 100644
index 00000000..22e2c5e0
--- /dev/null
+++ b/static/f/plat/pcf.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg enable-background="new 0 0 407 136" version="1.1" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg">
+<g transform="matrix(.10931 0 0 .10931 .13362 -.53802)" fill="#666">
+<circle cx="58.075" cy="13.716" r="4.039"/>
+<path d="m58.075 107.3-27.825-15.838 7.535-4.062c0.019 0.044 0.031 0.08 0.051 0.125 5.45 7.98 16.47 8.57 25.22 7.76 5.19-1.655-1.06 2.033-0.73 3.49 0.94 2.7 4.047 1.088 5.482 0.668 3.77-2.16 7.5-4.563 9.838-8.747 1.287-3.878 0.724-1.814 3.75-5.09 2.77-2.86 3-7.33 6.24-9.84 3.47-3.12 5.02-7.55 6.87-11.67 6.24-5.78 11.96-13.38 11.74-22.31 0.34-6.76-3.84-12.78-8.83-16.93-8.22-6.71-18.67-10.14-29.04-11.73-2.41-0.89-4.8 1.96-3.14 4.12 4.75 1.95 10.08 1.89 14.83 3.92 7.63 2.8 15.48 7.04 19.62 14.34 3.53 7.16-0.16 15.82-5.54 21l-0.18 0.18c-2.04-3.3-4.2-6.63-7.38-8.95-8.156-6.182-18.558-8.406-28.57-9.014v-19.217l-50.09 27v56.99l0.07-0.038v1.038l50.079 28.505 50.08-28.505v-25.7zm-0.059-43.565h0.06c5.65 0.33 11.49 1.21 16.37 4.26 0.644 0.494 1.383 0.802-0.533 1.385-1.422 0.513-6.265 1.407-9.925 1.917 0 0-3.304 0.208-4.452 0.158-0.194-8e-3 -0.737-0.037-1.52-0.087zm-3.548 14.673c3.073-0.293 6.175-0.152 9.058 0.538 1.72 0.49 3.84 0.49 4.94 2.11-5.6 0.95-11.345 1.071-16.97 0.7-0.789-0.161-1.673-0.244-2.56-0.366zm3.088 11.837c-5.02-0.24-10.81-0.67-14.48-4.57 10.02 2.51 20.59 2.43 30.52-0.5-4.33 3.85-10.43 4.94-16.04 5.07zm17.91-11.82c-1.345-1.67-3.157-2.545-5.06-3.07 3-0.8 6.01-1.61 8.99-2.49 1.68 3.1-1.275 4.82-3.93 5.56zm9.53-25.2c2.38 2.03 3.62 4.94 4.41 7.89-1.8 1.3-3.65 2.53-5.52 3.72-1.27 0.35-2.77 1.98-3.99 0.58-6.223-4.809-14.171-6.574-21.88-7.073v-14.157c9.55 0.15 19.76 2.41 26.98 9.04z"/>
+</g>
+<g transform="matrix(.10931 0 0 .10931 .13362 -.53802)">
+<path d="m69.24 11.49c-1.66-2.16 0.73-5.01 3.14-4.12 10.37 1.59 20.82 5.02 29.04 11.73 4.99 4.15 9.17 10.17 8.83 16.93 0.22 8.93-5.5 16.53-11.74 22.31-1.85 4.12-3.4 8.55-6.87 11.67-3.24 2.51-3.47 6.98-6.24 9.84-3.026 3.276-2.463 1.213-3.75 5.09-2.338 4.185-6.068 6.587-9.838 8.747-1.435 0.42-4.543 2.033-5.482-0.668-0.33-1.457 5.92-5.145 0.73-3.49-8.75 0.81-19.77 0.22-25.22-7.76-1.048-2.416-0.903-3.166-0.91-4.56-3.95-2.85-6.74-7.22-6.4-12.26-4.38-3.04-8.54-7.37-8.73-13.02-0.75-5.54 3.55-10.02 7.92-12.68 8.43-5.05 18.55-6.31 28.21-6.29 10.04 0.6 20.48 2.82 28.66 9.02 3.18 2.32 5.34 5.65 7.38 8.95l0.18-0.18c5.38-5.18 9.07-13.84 5.54-21-4.14-7.3-11.99-11.54-19.62-14.34-4.75-2.029-10.08-1.969-14.83-3.919zm-35.76 34.55c-4.98 3.99-1.3 12.13 3.84 13.72 6.86-5.61 15.97-7.23 24.6-7.18 7.74 0.49 15.73 2.25 21.98 7.08 1.22 1.4 2.72-0.23 3.99-0.58 1.87-1.19 3.72-2.42 5.52-3.72-0.79-2.95-2.03-5.86-4.41-7.89-7.22-6.63-17.43-8.89-26.98-9.04-9.87-0.22-20.69 1.09-28.54 7.61zm34.512 19.502c3.66-0.51 8.503-1.403 9.925-1.917 1.917-0.583 1.177-0.891 0.533-1.385-4.88-3.05-10.72-3.93-16.37-4.26-6.18-0.02-12.67 0.63-18.14 3.72-0.56 0.342-2.357 0.675 0.01 1.35 5.316 1.856 18.443 2.6 19.59 2.65 1.148 0.05 4.452-0.158 4.452-0.158zm-28.242 1.988c0.5 1.298 1.516 3.22 3.547 4.4 0.859-0.571 2.173-1.225 3.273-1.805 0.714-0.289 1.477-0.797 2.21-1.054-0.358-0.025-0.895-0.088-1.952-0.134-2.535-0.309-4.688-0.827-7.078-1.407zm34.66 2.07c1.902 0.525 3.715 1.4 5.06 3.07 2.655-0.74 5.61-2.46 3.93-5.56-2.98 0.88-5.99 1.69-8.99 2.49zm-24.722 5.088c1.687 0.999 4.002 0.942 5.812 1.312 5.625 0.371 11.37 0.25 16.97-0.7-1.1-1.62-3.22-1.62-4.94-2.11-5.73-1.37-12.322-0.583-17.842 1.498zm-2.608 5.232c3.67 3.9 9.46 4.33 14.48 4.57 5.61-0.13 11.71-1.22 16.04-5.07-9.93 2.93-20.5 3.01-30.52 0.5z" fill="#01015b"/>
+</g>
+<circle cx="6.9195" cy=".4415" r=".4415" fill="#01015b" stroke-width=".10931"/>
+<polygon transform="matrix(.10931 0 0 .10931 .13362 -.53802)" points="62.08 127.24 12 98.74 12 73.04 62.08 101.54" fill="#01015b"/>
+<polygon transform="matrix(.10931 0 0 .10931 .13362 -.53802)" points="62.08 127.24 112.16 98.74 112.16 73.04 62.08 101.54" fill="#f00020"/>
+<polygon transform="matrix(.10931 0 0 .10931 .13362 -.53802)" points="11.93 97.74 62.02 70.74 62.02 13.75 11.93 40.75" fill="#cb9a01"/>
+<g transform="matrix(.10931 0 0 .10931 .13362 -.53802)" fill="#3737fd">
+<path d="m69.24 11.49c-1.66-2.16 0.73-5.01 3.14-4.12 10.37 1.59 20.82 5.02 29.04 11.73 4.99 4.15 9.17 10.17 8.83 16.93 0.22 8.93-5.5 16.53-11.74 22.31-1.85 4.12-3.4 8.55-6.87 11.67-3.24 2.51-3.47 6.98-6.24 9.84-3.026 3.276-2.463 1.213-3.75 5.09-2.338 4.185-6.068 6.587-9.838 8.747-1.435 0.42-4.543 2.033-5.482-0.668-0.33-1.457 5.92-5.145 0.73-3.49-8.75 0.81-19.77 0.22-25.22-7.76-1.048-2.416-0.903-3.166-0.91-4.56-3.95-2.85-6.74-7.22-6.4-12.26-4.38-3.04-8.54-7.37-8.73-13.02-0.75-5.54 3.55-10.02 7.92-12.68 8.43-5.05 18.55-6.31 28.21-6.29 10.04 0.6 20.48 2.82 28.66 9.02 3.18 2.32 5.34 5.65 7.38 8.95l0.18-0.18c5.38-5.18 9.07-13.84 5.54-21-4.14-7.3-11.99-11.54-19.62-14.34-4.75-2.029-10.08-1.969-14.83-3.919zm-35.76 34.55c-4.98 3.99-1.3 12.13 3.84 13.72 6.86-5.61 15.97-7.23 24.6-7.18 7.74 0.49 15.73 2.25 21.98 7.08 1.22 1.4 2.72-0.23 3.99-0.58 1.87-1.19 3.72-2.42 5.52-3.72-0.79-2.95-2.03-5.86-4.41-7.89-7.22-6.63-17.43-8.89-26.98-9.04-9.87-0.22-20.69 1.09-28.54 7.61zm34.512 19.502c3.66-0.51 8.503-1.403 9.925-1.917 1.917-0.583 1.177-0.891 0.533-1.385-4.88-3.05-10.72-3.93-16.37-4.26-6.18-0.02-12.67 0.63-18.14 3.72-0.56 0.342-2.357 0.675 0.01 1.35 5.316 1.856 18.443 2.6 19.59 2.65 1.148 0.05 4.452-0.158 4.452-0.158zm-28.242 1.988c0.5 1.298 1.516 3.22 3.547 4.4 0.859-0.571 2.173-1.225 3.273-1.805 0.714-0.289 1.477-0.797 2.21-1.054-0.358-0.025-0.895-0.088-1.952-0.134-2.535-0.309-4.688-0.827-7.078-1.407zm34.66 2.07c1.902 0.525 3.715 1.4 5.06 3.07 2.655-0.74 5.61-2.46 3.93-5.56-2.98 0.88-5.99 1.69-8.99 2.49zm-24.722 5.088c1.687 0.999 4.002 0.942 5.812 1.312 5.625 0.371 11.37 0.25 16.97-0.7-1.1-1.62-3.22-1.62-4.94-2.11-5.73-1.37-12.322-0.583-17.842 1.498zm-2.608 5.232c3.67 3.9 9.46 4.33 14.48 4.57 5.61-0.13 11.71-1.22 16.04-5.07-9.93 2.93-20.5 3.01-30.52 0.5z" fill="#3737fd"/>
+</g>
+<circle cx="6.9195" cy=".4415" r=".4415" fill="#3737fd" stroke-width=".10931"/>
+<polygon transform="matrix(.10931 0 0 .10931 .13362 -.53802)" points="62.08 127.24 12 98.74 12 73.04 62.08 101.54" fill="#3737fd"/>
+<polygon transform="matrix(.10931 0 0 .10931 .13362 -.53802)" points="62.08 127.24 112.16 98.74 112.16 73.04 62.08 101.54" fill="#cc001b"/>
+</svg>
diff --git a/static/f/plat/ps1.svg b/static/f/plat/ps1.svg
new file mode 100644
index 00000000..6d96dc95
--- /dev/null
+++ b/static/f/plat/ps1.svg
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="16" height="12.156" enable-background="new 0 0 612.092 560.54" overflow="visible" version="1.0" viewBox="0 0 72.951 66.807" xmlns="http://www.w3.org/2000/svg">
+<g transform="translate(-61.686 -312.87)" clip-rule="evenodd" fill-rule="evenodd" stroke-width=".12329">
+<path d="m102.58 326.76-0.0577 52.915-14.177-4.6109v-62.196l18.097 4.7845c11.584 3.1133 18.673 9.165 18.557 19.771-0.11513 12.336-5.8208 17.292-16.944 14.064v-24.325c0-2.9399-5.475-3.112-5.475-0.40271z" fill="#de0029"/>
+<path d="m81.827 364.8-6.6855 2.2486c-4.323 1.499-8.011-2.0169-4.0344-3.4588l3.2272-1.1521-12.161-3.8628c-3.7464 1.2687-7.2622 3.9778-7.0311 7.7824 0.23055 3.8615 9.048 4.7843 15.849 5.8795 6.3392 1.0371 12.103 0.46076 17.348-1.3838v-3.9776zm20.805 14.872 12.391-4.3235-12.506-3.9767v8.0115z" fill="#f3c202"/>
+<path d="m135.6 368.09 0.23038-0.0581c5.4176-1.9016 7.7229-4.5541 7.147-7.0318-0.92222-4.15-7.55-6.3985-17.751-7.148-7.3191-0.51843-14.523 1.0951-21.554 3.5158l-1.1528 0.40395 12.622 3.9196 7.3768-2.479c7.7229-1.4406 10.836 1.0953 3.4006 3.4588l-3.6887 1.2674zm-47.259-18.33-5.591 1.9016 5.591 1.7294z" fill="#326db3"/>
+<path d="m115.02 375.35 20.575-7.2622-13.371-4.1512-19.71 6.7441v0.69254zm-26.684-12.739-6.5126 2.1904 6.5126 2.0752zm14.177 3.4019v-8.2431l12.622 3.9196zm-28.183-3.574 14.005-5.0148v-4.0349l-5.5908-1.7294-20.287 6.8594c-0.05768 0-0.17287 0.0569-0.28806 0.0569z" fill="#00aa9e"/>
+<path d="m102.58 326.76-0.0577 52.915-14.177-4.6109v-62.196l18.097 4.7845c11.584 3.1133 18.673 9.165 18.557 19.771-0.11513 12.336-5.8208 17.292-16.944 14.064v-24.325c0-2.9399-5.475-3.112-5.475-0.40271z" fill="#cc0026"/>
+<path d="m81.827 364.8-6.6855 2.2486c-4.323 1.499-8.011-2.0169-4.0344-3.4588l3.2272-1.1521-12.161-3.8628c-3.7464 1.2687-7.2622 3.9778-7.0311 7.7824 0.23055 3.8615 9.048 4.7843 15.849 5.8795 6.3392 1.0371 12.103 0.46076 17.348-1.3838v-3.9776zm20.805 14.872 12.391-4.3235-12.506-3.9767v8.0115z" fill="#caa202"/>
+<path d="m135.6 368.09 0.23038-0.0581c5.4176-1.9016 7.7229-4.5541 7.147-7.0318-0.92222-4.15-7.55-6.3985-17.751-7.148-7.3191-0.51843-14.523 1.0951-21.554 3.5158l-1.1528 0.40395 12.622 3.9196 7.3768-2.479c7.7229-1.4406 10.836 1.0953 3.4006 3.4588l-3.6887 1.2674zm-47.259-18.33-5.591 1.9016 5.591 1.7294z" fill="#2d639f"/>
+<path d="m115.02 375.35 20.575-7.2622-13.371-4.1512-19.71 6.7441v0.69254zm-26.684-12.739-6.5126 2.1904 6.5126 2.0752zm14.177 3.4019v-8.2431l12.622 3.9196zm-28.183-3.574 14.005-5.0148v-4.0349l-5.5908-1.7294-20.287 6.8594c-0.05768 0-0.17287 0.0569-0.28806 0.0569z" fill="#00ccbe"/>
+</g>
+</svg>
diff --git a/static/f/plat/ps2.svg b/static/f/plat/ps2.svg
new file mode 100644
index 00000000..4266e39f
--- /dev/null
+++ b/static/f/plat/ps2.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="16" height="7.0039" version="1.1" viewBox="0 0 4.2333 1.8531" xmlns="http://www.w3.org/2000/svg">
+<g transform="translate(.0010335 -1.0573)" fill="#7c72b6">
+<path d="m0 2.9094 0.26458 0.00103 0.001034-0.79478h0.79168v-1.0583h-1.0573v0.26458l0.79272 0.00103v0.52917h-0.79375z"/>
+<path d="m2.1164 1.3213 0.52939 0.0016-0.00103-0.26562h-0.79375v1.5875l-0.79375 0.00103 0.00103 0.26355 1.0583 0.00103z"/>
+<path d="m4.2313 1.0583-1.3219-0.00103 0.00103 0.26458 1.0573 0.00207 0.00206 0.5271h-1.0594v1.0583h1.3208l0.0010334-0.26355-1.0573-0.0010335 0.0010334-0.52813h1.0552z"/>
+</g>
+</svg>
diff --git a/static/f/plat/ps3.svg b/static/f/plat/ps3.svg
new file mode 100644
index 00000000..5c086b09
--- /dev/null
+++ b/static/f/plat/ps3.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="16" height="7.004" shape-rendering="crispEdges" version="1.1" viewBox="0 0 4.2333 1.8531" xmlns="http://www.w3.org/2000/svg">
+<g fill="#999">
+<path d="m2.8853-0.0014616 1.0231 0.0029233-0.00146 0.27187 0.3254 0.004382-9.17e-4 0.47064v0.2894l9.725e-4 0.54227-0.31962-0.00292 0.00146 0.27625-1.029-0.00146 0.00146-0.27332 1.0261-0.00146-0.00438-0.54373-1.0217-0.00438 0.00146-0.27332 1.0202 0.00146-0.00146-0.4838-1.0188-0.002923z"/>
+<path d="m0.0010338 1.8521 0.26465 0.00103 0.001034-0.79479h0.79188v-0.79087l-0.26465-0.0018585 0.0026447-0.26562h-0.79555v0.26459l0.79291 0.00103v0.52917h-0.79394z"/>
+<path d="m2.118 0.26402 0.52952 0.0016-0.00103-0.26562h-0.52712l-0.00137 0.26402-0.26545-9.2696e-4v1.3244l-0.79394 0.00103 0.00103 0.26355 1.0586 0.00103z"/>
+</g>
+</svg>
diff --git a/static/f/plat/ps4.svg b/static/f/plat/ps4.svg
new file mode 100644
index 00000000..6a965136
--- /dev/null
+++ b/static/f/plat/ps4.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="16" height="7.004" shape-rendering="crispEdges" version="1.1" viewBox="0 0 4.2333 1.8531" xmlns="http://www.w3.org/2000/svg">
+<g fill="#0185cf">
+<path d="m2.4947 1.6553h1.2139c0.00382 0 0.00643 0.00435 0.00643 0.00869v0.17616c0 0.00869 0.00397 0.013037 0.00782 0.013037h0.30048c0.00401 0 0.00779-0.00435 0.00779-0.013037v-0.17182c0-0.00652 0.00401-0.013037 0.00782-0.013037h0.18659c0.00525 0 0.00782-0.00654 0.00782-0.013006v-0.21117c0-0.00654-0.00258-0.013037-0.00782-0.013037h-0.18659c-0.00382 0-0.00782-0.00652-0.00782-0.013036v-1.216c-7e-7 -0.10229-0.022905-0.16743-0.061458-0.18904h-0.1402c-0.020334 0.00866-0.042435 0.024168-0.066141 0.047792l-1.3103 1.342c-0.052138 0.054296-0.070412 0.15245-0.057357 0.19808 0.010394 0.039135 0.040315 0.067392 0.09906 0.067393zm0.27026-0.26763 0.93184-0.9585c0.00654-0.00869 0.019616-0.006501 0.019616 0.01738v0.9585c0 0.00654-0.00401 0.013037-0.00782 0.013037h-0.9372c-0.00903 0-0.01304-0.00432-0.01425-0.00869-0.00143-0.00869 0.0012-0.015221 0.00779-0.021723z" stroke-width=".37452"/>
+<path d="m0.0010338 1.8521 0.26465 0.00103 0.001034-0.79479h0.79188v-0.79087l-0.26465-0.0018585 0.0026447-0.26562h-0.79555v0.26459l0.79291 0.00103v0.52917h-0.79394z"/>
+<path d="m2.118 0.26402 0.52952 0.0016-0.00103-0.26562h-0.52712l-0.00137 0.26402-0.26545-9.2696e-4v1.3244l-0.79394 0.00103 0.00103 0.26355 1.0586 0.00103z"/>
+</g>
+</svg>
diff --git a/static/f/plat/psp.svg b/static/f/plat/psp.svg
new file mode 100644
index 00000000..9e64a70b
--- /dev/null
+++ b/static/f/plat/psp.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="16" height="7.004" version="1.1" viewBox="0 0 4.2333 1.8531" xmlns="http://www.w3.org/2000/svg">
+<g fill="#dedede">
+<path d="m0.0010338 1.8521 0.26465 0.00103 0.001034-0.79479h0.79188v-1.0583h-1.0576v0.26459l0.79291 0.00103v0.52917h-0.79394z"/>
+<path d="m2.118 0.26402 0.52952 0.0016-0.00103-0.26562h-0.79394v1.5875l-0.79394 0.00103 0.00103 0.26355 1.0586 0.00103z"/>
+<path d="m3.1768 1.853h0.26465v-0.79414l0.79188 0.00103v-1.0599h-1.0576v0.26471l0.79394-0.00103 0.00207 0.5315-0.79498-0.00104z"/>
+</g>
+</svg>
diff --git a/static/f/plat/psv.svg b/static/f/plat/psv.svg
new file mode 100644
index 00000000..59b4140c
--- /dev/null
+++ b/static/f/plat/psv.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="16" height="7.004" version="1.1" viewBox="0 0 4.2333 1.8531" xmlns="http://www.w3.org/2000/svg">
+<g>
+<path d="m0.0010338 1.8521 0.26465 0.00103 0.001034-0.79479h0.79188v-0.79087l-0.26465-0.0018585 0.0026447-0.26562h-0.79555v0.26459l0.79291 0.00103v0.52917h-0.79394z" fill="#33b4ff"/>
+<path d="m2.118 0.26402 0.52952 0.0016-0.00103-0.26562h-0.52712l-0.00137 0.26402-0.26545-9.2696e-4v1.3244l-0.79394 0.00103 0.00103 0.26355 1.0586 0.00103z" fill="#34b6fe"/>
+<path d="m3.4357 1.8528c-0.10657-0.008328-0.15114-0.12542-0.17131-0.17531-0.020163-0.049905-0.61796-1.6775-0.61796-1.6775h0.2974l0.49508 1.3268c0.025791 0.074863 0.084479 0.093298 0.11619 0.00596 0.025919-0.070682 0.49253-1.3328 0.49253-1.3328h0.18578s-0.57897 1.5823-0.60203 1.6364c-0.023057 0.054067-0.08911 0.22481-0.19568 0.21649z" clip-rule="evenodd" display="none" fill="#009bff" fill-rule="evenodd" stroke-width=".34523"/>
+<path d="m2.6464 3.3e-6 0.67749 1.8502 0.26489 0.0058465 0.64459-1.8561h-0.27932l-0.49693 1.5137-0.5104-1.5137z" fill="#34b6fe"/>
+</g>
+</svg>
diff --git a/static/f/plat/sat.svg b/static/f/plat/sat.svg
new file mode 100644
index 00000000..77b0cda1
--- /dev/null
+++ b/static/f/plat/sat.svg
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 14 9.131" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<radialGradient id="g" cx="157.5" cy="52.96" r="22.196" gradientTransform="matrix(.084517 0 0 .084517 -1.8353 -.34956)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#fff" offset=".43"/>
+<stop stop-color="#7A7A7A" offset=".64"/>
+<stop offset=".99"/>
+</radialGradient>
+<path d="m12.279 3.573c0.13438-0.012762 0.23141-0.013016 0.29133-0.00127v0.00879c0.19152 0.12187 0.29615 0.24417 0.30494 0.38337-0.06989 0.2178-0.2877 0.46197-0.63624 0.73217-0.4181 0.31339-0.99324 0.6359-1.6991 0.96695-0.3204 0.14613-0.65771 0.28651-1.0123 0.42292-0.40687 0.15669-0.34584 1.2456-0.04725 1.1373 0.53279-0.19304 1.032-0.39816 1.4951-0.61021 0.78423-0.36613 1.4205-0.72338 1.8998-1.0892 0.60996-0.47076 0.95842-0.91489 1.0193-1.342 0.11291-0.41295 0.01428-0.78085-0.29885-1.1137-0.1228-0.13075-1.3775 0.51065-1.3166 0.5049z" fill="url(#g)" stroke-width=".084517"/>
+<radialGradient id="f" cx="50.105" cy="85.897" r="22.91" gradientTransform="matrix(.084517 0 0 .084517 -1.8353 -.34956)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#fff" offset="0"/>
+<stop offset="1"/>
+</radialGradient>
+<path d="m5.2145 7.3119c-0.30621 0.05781-0.60388 0.10827-0.8958 0.15492l0.0088-0.0088c-0.59238 0.08714-1.1068 0.13066-1.5509 0.13945h-0.0088c-0.38328 0-0.67977-0.02603-0.87129-0.095929-0.13075-0.05232-0.26141-0.04353-0.39216 0.01758-0.13945 0.05232-0.22659 0.15669-0.27891 0.28736-0.0524 0.13945-0.04361 0.2702 0.01758 0.40095 0.06077 0.13075 0.15669 0.22667 0.28744 0.27899 0.27891 0.10429 0.68831 0.15669 1.2547 0.15669 0.47921-0.0088 1.0371-0.05232 1.6818-0.14824h0.0088c0.32226-0.04471 0.65349-0.10066 0.99299-0.16641 0.32116-0.06178 0.0704-1.0777-0.25423-1.0166z" fill="url(#f)" stroke-width=".084517"/>
+<radialGradient id="a" cx="61.442" cy="37.691" r="52.493" gradientTransform="matrix(.084517 0 0 .084517 -1.8353 -.34956)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#fff" offset=".8128"/>
+<stop stop-color="#575757" offset="1"/>
+</radialGradient>
+<path d="m5.1463 1.699c-0.29471 0.097701-0.58215 0.19937-0.86258 0.30434-0.65349 0.25296-1.2374 0.50549-1.7602 0.77569h0.0088c-0.56635 0.28744-1.0281 0.56643-1.3854 0.86258v-0.00879c-0.4357 0.33976-0.73184 0.67106-0.88888 0.98445v0.00879c-0.24383 0.44447-0.26141 0.85412-0.06085 1.2374 0.12196 0.37458 0.49654 0.57513 1.1327 0.60996 0.36579 0.02603 0.86258-0.02637 1.49-0.14824 0.31525-0.06508 0.6747-0.15433 1.0804-0.26259 0.24442-0.06533-0.04631-1.0716-0.2871-1.0063-0.37331 0.10167-0.70589 0.18239-1.0026 0.24079-0.51403 0.10438-0.9149 0.1479-1.2198 0.13066-0.12196 0-0.2091-0.00879-0.24383-0.00879l-0.0088-0.00879c-0.02603-0.087136-0.01724-0.19151 0.04361-0.29615v-0.00879c0.11343-0.2003 0.31374-0.4181 0.60997-0.64469 0.32252-0.25262 0.72338-0.50524 1.2111-0.74941 0.488-0.26141 1.0371-0.49653 1.6471-0.73183v0.00879c0.17275-0.065078 0.34855-0.12889 0.52671-0.19092 0.44236-0.15365 0.33376-1.2186-0.03026-1.0982z" fill="url(#a)" stroke-width=".084517"/>
+<path d="m9.487 1.7553c0.33646-0.043273 0.66473-0.07353 0.98336-0.091615 0.62746-0.052316 1.1938-0.043611 1.6903 0.00879 0.14816 0.01758 0.27012-0.026031 0.38328-0.11317 0.11342-0.095926 0.17436-0.20935 0.19185-0.34855 0.0175-0.14824-0.02612-0.2789-0.11317-0.38362-0.09593-0.11317-0.20935-0.18273-0.34855-0.19151-0.5579-0.061106-1.185-0.061106-1.8733-0.01758-0.44202 0.029919-0.90011 0.080207-1.3775 0.15103-0.21941 0.032286 0.15636 1.0255 0.46374 0.98622z" fill="#ccc" stroke-width=".084517"/>
+<radialGradient id="e" cx="162.87" cy="1.0562" r="29.353" gradientTransform="matrix(.084517 0 0 .084517 -1.8353 -.34956)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#fff" offset="0"/>
+<stop offset="1"/>
+</radialGradient>
+<path d="m9.487 1.7553c0.33646-0.043273 0.66473-0.07353 0.98336-0.091615 0.62746-0.052316 1.1938-0.043611 1.6903 0.00879 0.14816 0.01758 0.27012-0.026031 0.38328-0.11317 0.11342-0.095926 0.17436-0.20935 0.19185-0.34855 0.0175-0.14824-0.02612-0.2789-0.11317-0.38362-0.09593-0.11317-0.20935-0.18273-0.34855-0.19151-0.5579-0.061106-1.185-0.061106-1.8733-0.01758-0.44202 0.029919-0.90011 0.080207-1.3775 0.15103-0.21941 0.032286 0.15636 1.0255 0.46374 0.98622z" fill="url(#e)" stroke-width=".084517"/>
+<linearGradient id="d" x1="53.883" x2="44.935" y1="44.714" y2="37.913" gradientTransform="matrix(.084517 0 0 .084517 -1.8353 -.34956)" gradientUnits="userSpaceOnUse">
+<stop offset="0"/>
+<stop stop-color="#fff" offset="1"/>
+</linearGradient>
+<path d="m0.78821 4.9003c0 0.56491 0.36156 0.52375 0.36097 0.51919 0-2.537e-4 -5.92e-4 -2.537e-4 -0.0021-2.537e-4l-0.0088-0.00879c-0.02603-0.087136-0.01724-0.19151 0.04361-0.29615v-0.00879c0.11342-0.2003 0.31373-0.4181 0.60996-0.64469 0.32252-0.25262 0.72338-0.50524 1.2111-0.74941 0.488-0.26141 1.0371-0.49653 1.6471-0.73183v0.00879c0.17275-0.065078 0.34855-0.12889 0.52671-0.19092 0.19481-0.067783 0.28288-0.31254 0.28922-0.5546-0.22786-0.031187-0.46265-0.047499-0.70284-0.047499-0.51919 0-1.0139 0.076233-1.4634 0.21391-0.27266 0.12069-0.53094 0.24324-0.77604 0.37001h0.0088c-0.17639 0.089588-0.34246 0.17825-0.4989 0.26682-0.63067 0.48335-1.2454 1.1384-1.2454 1.8542z" fill="url(#d)" stroke-width=".084517"/>
+<path d="m12.736 1.2107c0.017495-0.14824-0.026116-0.2789-0.11317-0.38362-0.095926-0.11317-0.20935-0.18272-0.34855-0.19151-0.5579-0.061105-1.185-0.061105-1.8733-0.017579-0.64512 0.043611-1.3246 0.13066-2.0478 0.26141-0.68848 0.12196-1.3857 0.28769-2.0827 0.47921-0.6971 0.19185-1.359 0.40965-1.9865 0.64469-0.65349 0.25296-1.2374 0.50549-1.7602 0.77569h0.0088c-0.56636 0.28744-1.0281 0.56643-1.3854 0.86258v-0.00879c-0.43569 0.33976-0.73183 0.67106-0.88887 0.98445v0.00879c-0.24383 0.44447-0.26141 0.85412-0.06085 1.2374 0.12196 0.37458 0.48978 0.54809 1.126 0.58283 0.36579 0.02603 0.86934 7.61e-4 1.4968-0.1212 0.50524-0.10438 1.1239-0.2702 1.8646-0.47921 0.54006-0.16548 1.2286-0.38328 2.0649-0.66227l2.074-0.67951c0.75786-0.25262 1.3765-0.44447 1.8558-0.57514 0.58384-0.17427 1.0456-0.27865 1.3941-0.33105 0.24417-0.034821 0.40966-0.043611 0.49679-0.026369v0.00879c0.19152 0.12187 0.29615 0.24417 0.30494 0.38337-0.06989 0.2178-0.2877 0.46197-0.63624 0.73217-0.41811 0.31339-0.99325 0.6359-1.6991 0.96695-0.68831 0.31373-1.455 0.60142-2.3003 0.88007h-0.0088c-0.65349 0.20909-1.3242 0.39216-2.0126 0.55764-0.67098 0.15703-1.2985 0.2702-1.8997 0.36612l0.0088-0.0088c-0.59238 0.08714-1.1068 0.13066-1.5509 0.13945h-0.0088c-0.38328 0-0.67977-0.02603-0.87129-0.095929-0.13075-0.05232-0.26141-0.04353-0.39216 0.01758-0.13945 0.05232-0.22659 0.15669-0.27891 0.28736-0.0524 0.13945-0.04361 0.2702 0.01758 0.40095 0.06077 0.13075 0.1567 0.22667 0.28744 0.27899 0.27891 0.10429 0.68831 0.15669 1.2547 0.15669 0.47921-0.0088 1.0371-0.05232 1.6818-0.14824h0.0088c0.6272-0.08714 1.2895-0.21772 1.9778-0.37458h0.0088c0.71468-0.17427 1.4117-0.36612 2.0913-0.58392 0.88887-0.27865 1.6991-0.59238 2.4221-0.92334 0.78423-0.36613 1.4205-0.72338 1.8998-1.0892 0.60996-0.47076 0.95842-0.91489 1.0193-1.342 0.15702-0.57487-0.095599-1.0629-0.76666-1.4897-0.20909-0.16582-0.60108-0.20935-1.1938-0.13066h-0.0084c-0.38371 0.060768-0.89774 0.17427-1.5336 0.357-0.48792 0.13945-1.1155 0.33122-1.8997 0.59271l-2.0737 0.67951c-0.82776 0.2702-1.4988 0.488-2.0301 0.64469-0.70589 0.20943-1.2897 0.36613-1.7778 0.46197-0.51403 0.10438-0.9149 0.1479-1.2198 0.13066-0.12196 0-0.2091-0.00879-0.24383-0.00879l-0.0088-0.00879c-0.02603-0.087136-0.01724-0.19151 0.04361-0.29615v-0.00879c0.11339-0.2003 0.31369-0.4181 0.60992-0.64469 0.32252-0.25262 0.72338-0.50524 1.2111-0.74941 0.488-0.26141 1.0371-0.49653 1.6471-0.73183v0.00879c0.60117-0.22659 1.2372-0.43568 1.8994-0.61866 0.67107-0.19185 1.333-0.34855 1.9953-0.46171 0.67098-0.13066 1.3158-0.20935 1.9257-0.24417 0.62746-0.052316 1.1938-0.043611 1.6903 0.00879 0.14816 0.01758 0.27012-0.026031 0.38328-0.11317 0.11342-0.095841 0.17427-0.20935 0.19177-0.34855z" fill="none" stroke="#333" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1217"/>
+<radialGradient id="c" cx="113.5" cy="35.63" r="47.61" gradientTransform="matrix(.084517 0 0 .084517 -1.8353 -.34956)" gradientUnits="userSpaceOnUse" xlink:href="#a">
+<stop stop-color="#fff" offset=".04"/>
+<stop stop-color="#6E93E1" offset=".23"/>
+<stop stop-color="#6867cb" offset="1"/>
+</radialGradient>
+<ellipse cx="7.0311" cy="4.5655" rx="4.4438" ry="4.4438" fill="url(#c)" stroke="#33317a" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24341"/>
+<linearGradient id="b" x1="110.56" x2="106.98" y1="63.437" y2="51.73" gradientTransform="matrix(.084517 0 0 .084517 -1.8353 -.34956)" gradientUnits="userSpaceOnUse">
+<stop offset="0"/>
+<stop stop-color="#fff" offset=".9893"/>
+</linearGradient>
+<path d="m2.5694 5.3097c-0.05105 0.0098-1.3936 0.30333-1.6155 0.081474-0.06516-0.065163 0.14123 0.10108 0.35159 0.37475 0.02671 0.034736 0.0095 0.092461-0.02172 0.16354-0.0071 0.01631-0.01487 0.02138-0.02823 0.03896-0.0063 0.0084-0.0081 0.04201-0.0092 0.05054-0.0034 0.02721-0.01775 0.04885-0.02172 0.07285-0.01268 0.076149-0.05756 0.13692-0.06719 0.18551-0.0036 0.01834 0.02375 0.03499 0.02189 0.05003-0.0019 0.01614-0.03474 0.0202-0.03364 0.03305s-0.0371 0.01716-0.03381 0.02781c9.29e-4 3e-3 -0.0012 0.01352 0.0057 0.01513 0.02603 6e-3 0.08781 0.012 0.09643 0.01327 0.01327 0.0019 0.13286 0.01944 0.30443 0.02079 0.17157 0.0013 0.38252 0.0016 0.56728-0.01893 0.11308-0.01251 0.23098-0.02848 0.34187-0.04471 0.14571-0.02138 0.27916-0.04319 0.37323-0.05815 0.08748-0.01386 0.12661-0.0035 0.13895-0.0024 0.48166-0.10497 1.0598-0.26073 1.7414-0.45318 0.54006-0.16548 1.2287-0.38328 2.0649-0.66227l2.074-0.67951c0.41811-0.13945 0.79395-0.26023 1.1273-0.36249 0.27105-0.083164 0.51369-0.15399 0.72854-0.21273 0.26445-0.078685 0.50347-0.14309 0.71856-0.19515 0.26014-0.062965 0.48462-0.10742 0.67555-0.13582 0.24417-0.034821 0.40965-0.043611 0.49679-0.026369v0.00879c0.07353 0.046907 0.39427 0.00964 0.55638 0.25473 0.26116 0.39452 0.38912 1.1049 0.49552 0.95909 0.15217-0.20838 0.24387-0.41232 0.27227-0.61262 0.15703-0.57488-0.095589-1.0411-0.76657-1.468-0.2091-0.16582-0.60117-0.20943-1.1939-0.13066h-0.0084c-0.23242 0.036934-0.51276 0.093222-0.83934 0.1725-0.21205 0.051386-0.4438 0.09077-0.69439 0.16278-0.24197 0.069304-0.51851 0.15128-0.83139 0.24839-0.31762 0.09863-0.67284 0.21239-1.0683 0.34424l-2.0737 0.67951c-0.58663 0.19151-1.0943 0.35674-1.5297 0.49256z" fill="url(#b)" stroke-width=".084517"/>
+<path d="m11.15 2.7096c-0.21214 0.051471-0.50753 0.13675-0.75812 0.20876-0.48792 0.13945-1.1155 0.33122-1.8997 0.59271l-2.0737 0.67951c-0.63109 0.20605-1.165 0.3728-1.6214 0.506-0.19802 0.05781-0.33722 0.088573-0.40839 0.10953-0.6889 0.20419-2.3756 0.69557-3.0307 0.62382" fill="none" stroke="#333" stroke-linecap="round" stroke-linejoin="round" stroke-width=".084517"/>
+<path d="m2.8077 6.3253c0.48166-0.10497 1.1954-0.28685 1.877-0.47921 0.54006-0.16548 1.2286-0.38328 2.0649-0.66227l2.074-0.67951c0.75786-0.25262 1.3765-0.44447 1.8558-0.57514 0.26445-0.078685 0.56905-0.15407 0.78415-0.20614" fill="none" stroke="#333" stroke-linecap="round" stroke-linejoin="round" stroke-width=".084517"/>
+</svg>
diff --git a/static/f/plat/sfc.svg b/static/f/plat/sfc.svg
new file mode 100644
index 00000000..dccb4641
--- /dev/null
+++ b/static/f/plat/sfc.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 14 10.041" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#a)" stroke-width="1.0128">
+<path d="m0 5.9382 0.003636-0.072747 0.01082-0.071815 0.01772-0.070873 0.024529-0.06902 0.031152-0.06902 0.037679-0.067157 0.043835-0.065283 0.049991-0.06435 0.055866-0.062487 0.061648-0.060623 0.067245-0.059692 0.072561-0.056887 0.077877-0.055966 0.08282-0.05316 0.087764-0.051297 0.092428-0.049433 0.096902-0.046628 0.10129-0.044774 0.10548-0.041969 0.10941-0.039164 0.11331-0.036378 0.11687-0.034504 0.1204-0.030778 0.12359-0.028914 0.12684-0.025188 0.12964-0.022382 0.13253-0.018655 0.13504-0.01585 0.13748-0.012123 0.13971-0.00933 0.14177-0.0056 0.14363-0.00186c1.5444 0 2.7936 0.63328 2.7936 1.4139 0 0.78344-1.2496 1.4139-2.7936 1.4139-1.5418 6e-7 -2.7915-0.63047-2.7915-1.4139z" fill="#5f9933"/>
+<path d="m5.161 8.556 0.00383-0.076383 0.011372-0.075451 0.018655-0.074337 0.025745-0.073122 0.032732-0.071815 0.039549-0.070509 0.046162-0.06902 0.052512-0.06743 0.05876-0.066215 0.064817-0.06342 0.07061-0.062497 0.076292-0.060613 0.08179-0.057829 0.087107-0.055965 0.092243-0.054092 0.097094-0.051297 0.10184-0.049433 0.10651-0.046628 0.1108-0.043833 0.115-0.041979 0.1191-0.038232 0.12283-0.036378 0.12647-0.032641 0.12992-0.029846 0.13337-0.02611 0.13617-0.023324 0.13897-0.020519 0.1427-0.01585 0.14456-0.013053 0.14642-0.010259 0.14923-0.0056 0.15109-0.00186c1.62 0 2.9361 0.66498 2.9361 1.4855 0 0.81971-1.316 1.4853-2.9361 1.4853-1.6209 0-2.9343-0.66525-2.9343-1.4853z" fill="#c1bc0b"/>
+<path d="m6.3644 5.3003 0.13169-0.0084 0.12992-0.014918 0.12787-0.020519 0.12582-0.027051 0.12339-0.032642 0.12124-0.038241 0.11845-0.044764 0.11565-0.049433 0.11285-0.055034 0.11006-0.059681 0.10632-0.065293 0.10352-0.06901 0.099798-0.074621 0.096061-0.079269 0.092333-0.083005 0.087674-0.086743 0.084869-0.091401 0.079279-0.096061 0.075543-0.098866 0.070884-0.10259 0.066225-0.10539 0.060623-0.10912 0.055955-0.11284 0.050365-0.11473 0.045697-0.11844 0.040105-0.12032 0.033582-0.12311 0.028904-0.12591 0.022392-0.12778 0.01585-0.12963 0.00933-0.13151 0.00373-0.13244c-6.2e-6 -1.4633-1.1882-2.6515-2.6516-2.6515-1.4536 0-2.6344 1.1677-2.6516 2.6189 0.034232-0.00186 0.068463-0.00186 0.1053-0.00186 1.4631 0 2.6516 1.1854 2.6516 2.6516v0.03171" fill="#1489b8"/>
+<path d="m11.523 7.9201 0.12862-0.00839 0.12599-0.013996 0.12498-0.020519 0.12214-0.026109 0.12032-0.032641 0.11748-0.03731 0.11566-0.04291 0.11292-0.048491 0.10999-0.05316 0.10634-0.05876 0.10452-0.063418 0.09976-0.067157 0.09702-0.072747 0.09328-0.076474 0.09044-0.081142 0.08578-0.084869 0.08112-0.089538 0.07839-0.092333 0.07272-0.096993 0.06907-0.099798 0.06431-0.10259 0.05874-0.10633 0.05509-0.11005 0.04942-0.11192 0.04385-0.11472 0.03818-0.11752 0.03362-0.12031 0.02704-0.12218 0.02238-0.12404 0.01489-0.12685 0.0094-0.12777 0.003746-0.12964c0-1.426-1.1537-2.5825-2.5807-2.5825-1.4139 0-2.5629 1.1388-2.5797 2.5508 0.033573-0.00186 0.068078-0.00186 0.10259-0.00186 1.4232 0 2.5807 1.1565 2.5807 2.5825z" fill="#bd0f14"/>
+</g>
+<defs>
+<clipPath id="a">
+<rect width="13.971" height="10" fill="#fff"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/static/f/plat/swi.svg b/static/f/plat/swi.svg
new file mode 100644
index 00000000..771f9196
--- /dev/null
+++ b/static/f/plat/swi.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+<rect x="10.461" y="6.9595" width="3.2116" height="3.4805" fill="#cc0010" stroke-width="1.1389"/>
+<rect x="2.1001" y="2.0908" width="4.5209" height="11.784" ry="0" fill="#cc0010" stroke-width="1.1784"/>
+<path d="m4.2466 3.9016c-0.18266 0.034778-0.46099 0.17391-0.60885 0.30436-0.30442 0.26378-0.45518 0.63771-0.43199 1.0783 0.011595 0.22899 0.026094 0.28986 0.11887 0.47538 0.13627 0.28117 0.34212 0.48698 0.62335 0.62612 0.19424 0.095657 0.24353 0.10725 0.49577 0.11595 0.22904 0.0087 0.31022 0 0.46388-0.052179 0.62915-0.2116 1.0089-0.82322 0.90167-1.4493-0.12467-0.74496-0.83209-1.2435-1.5627-1.0986z" fill="#818990" stroke-width="1.1389"/>
+<path d="m9.1927 1.0203c-0.011606 0.0087-0.020297 3.1509-0.020297 6.9829 0 6.322 0.00289 6.9626 0.046391 6.9801 0.078272 0.02892 2.3281 0.01731 2.6065-0.01162 1.177-0.13335 2.215-0.84929 2.7804-1.9131 0.07244-0.13631 0.16812-0.36532 0.21743-0.50732 0.18258-0.5449 0.17689-0.40005 0.17689-4.5654 0-3.3248-0.0058-3.8205-0.04647-4.0321-0.28703-1.5102-1.438-2.6494-2.9514-2.9103-0.20297-0.034784-0.51608-0.04348-1.5251-0.04348-0.69582 0-1.2757 0.0087-1.2844 0.02029zm3.0965 6.3133c0.45218 0.11885 0.82338 0.4638 0.97407 0.90438 0.09567 0.27248 0.09283 0.6725-0.0028 0.92179-0.17689 0.45799-0.52474 0.77975-0.97122 0.89859-0.72486 0.18842-1.4961-0.24929-1.7077-0.96816-0.06378-0.22031-0.06089-0.59133 0.01159-0.81743 0.21745-0.71018 0.97127-1.1276 1.6961-0.93917z" fill="#818990" stroke-width="1.1389"/>
+<path d="m3.9972 1.0456c-1.3946 0.24928-2.5166 1.2812-2.8703 2.6378-0.12757 0.48987-0.13626 0.77684-0.12177 4.577 0.0087 3.4901 0.011597 3.5711 0.069582 3.8408 0.32182 1.4522 1.354 2.4871 2.821 2.829 0.19135 0.0435 0.43489 0.05216 2.0034 0.06093 1.6236 0.01162 1.7917 0.0087 1.8352-0.03484 0.043487-0.0435 0.046391-0.60286 0.046391-6.9452 0-4.7016-0.0087-6.9162-0.028999-6.9568-0.028987-0.052182-0.078283-0.055081-1.7772-0.052182-1.3801 0.0028984-1.7946 0.011595-1.9773 0.04348zm2.6238 6.9568v5.8728l-1.18-0.014577c-1.0872-0.011501-1.2032-0.017309-1.4206-0.072425-0.93355-0.24062-1.6265-0.95941-1.8207-1.8957-0.063784-0.29278-0.063784-7.5047-0.0029045-7.7917 0.17396-0.81454 0.73931-1.4899 1.5018-1.7943 0.3827-0.15363 0.55955-0.17102 1.8004-0.17392l1.122-0.00289z" fill="#818990" stroke-width="1.1389"/>
+</svg>
diff --git a/static/f/plat/web.svg b/static/f/plat/web.svg
new file mode 100644
index 00000000..8a6e6e77
--- /dev/null
+++ b/static/f/plat/web.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg">
+<path d="m0.66012 7.167c0.31388 0.27982 0.62754 0.54437 0.94177 0.79343 0.41471-0.62982 0.86657-1.2073 1.3577-1.7293-0.09274-0.17466-0.14515-0.37416-0.14515-0.5855 0-0.10436 0.01265-0.20565 0.03691-0.30283-0.51315-0.33246-1.0412-0.7032-1.5911-1.1163-0.40662 0.83854-0.63426 1.7793-0.63426 2.7732h0.001367v3.4e-4h-0.001481c0 0.06745 0.001367 0.13467 0.003418 0.20155l0.030762-0.03464zm0.90371-3.4949c0.55041 0.41517 1.0771 0.78727 1.588 1.1201 0.22787-0.24313 0.55212-0.395 0.91135-0.395 0.28494 0 0.54744 0.09559 0.75765 0.25634 0.15039-0.09969 0.30385-0.19585 0.45994-0.28756 0.65033-0.38236 1.3482-0.69419 2.0975-0.93162-0.00547-0.04968-0.00798-0.10004-0.00798-0.15062 0-0.19073 0.03817-0.37256 0.10767-0.53788-0.76119-0.64497-1.6626-1.2161-2.7002-1.7207-0.86577 0.32243-1.6424 0.82761-2.2837 1.4688-0.3541 0.35376-0.66673 0.74933-0.93026 1.1782zm4.0877-2.9028c0.82054 0.4416 1.5526 0.92854 2.1933 1.466 0.21419-0.18776 0.48649-0.31126 0.78613-0.33974 0.06722-0.32915 0.13068-0.66377 0.19095-1.0048-0.57741-0.17215-1.1888-0.26512-1.8217-0.26512v0.001367h-5.7e-4v-0.001367c-0.46257 0-0.9134 0.049902-1.3482 0.14367zm3.7684 0.33336c-0.05298 0.29611-0.10846 0.58778-0.16657 0.87477 0.41779 0.15677 0.74045 0.50814 0.85745 0.94382 0.5656-0.04159 1.1538-0.04968 1.7664-0.02279-0.118-0.14002-0.2415-0.27537-0.3709-0.40491-0.5923-0.59188-1.2999-1.0677-2.0864-1.3909zm2.9423 2.4524c-0.7828-0.05867-1.5252-0.06015-2.2287-0.00717-0.0577 0.301-0.21239 0.56761-0.42989 0.76608 0.18503 0.28517 0.35269 0.58071 0.50259 0.88696 0.2183 0.44673 0.398 0.9159 0.5399 1.4075 0.0432-0.00444 0.087-0.00695 0.1317-0.00695 0.5604 0 1.0347 0.36914 1.1926 0.87819 0.4132 0.01447 0.8403 0.0221 1.2837 0.02484 0.0131-0.16669 0.0202-0.33474 0.0202-0.50438h-0.0014v-5.7e-4h0.0014c-4e-4 -1.2686-0.3719-2.4509-1.0121-3.4445zm0.9118 4.5734c-0.4039-0.00285-0.7945-0.00991-1.1738-0.02244-0.1013 0.48649-0.4861 0.86941-0.9738 0.96808 0.0214 0.58299 0.0014 1.1926-0.0618 1.829 0.3577-0.0377 0.7203-0.0897 1.0894-0.155 0.5563-0.76307 0.9471-1.6537 1.12-2.6196zm-0.7601 3.1832 0.0013 0.0064-0.0075 0.0014c-0.1733 0.2212-0.3596 0.4315-0.5583 0.6302-1.2656 1.2656-3.0156 2.0487-4.9489 2.0489v0.0014h-5.7e-4v-0.0014c-1.9333 0-3.6832-0.7833-4.9494-2.0493-1.2658-1.2659-2.049-3.0159-2.0492-4.9492h-0.0012533v-3.4e-4h0.0012533c0-1.9335 0.7834-3.6834 2.0494-4.9494 1.266-1.266 3.0156-2.0491 4.949-2.0491v-0.0012533h5.7e-4v0.0012533c1.9335 0 3.6835 0.78317 4.9494 2.0494 1.266 1.2657 2.049 3.0156 2.049 4.949h0.0014v5.7e-4h-0.0014c0 1.6268-0.5546 3.1235-1.4847 4.3115zm-0.9795 0.1653c-0.1832 0.0244-0.3648 0.0454-0.5452 0.0629-0.0224 0.1612-0.0477 0.324-0.0752 0.4887 0.2081-0.162 0.406-0.3363 0.5923-0.5226l0.0281-0.029zm-1.3466 1.0421c0.0638-0.3173 0.1181-0.6279 0.1628-0.932-1.1417 0.0594-2.2328-0.023-3.2887-0.2459-0.20645 0.2448-0.51509 0.401-0.86031 0.401-0.02563 0-0.05093-1e-3 -0.07576-0.0025-0.19927 0.5082-0.39216 1.0027-0.56898 1.4697 0.4637 0.1075 0.94701 0.1647 1.443 0.1647v-0.0014h5.7e-4v0.0014c1.1609 0 2.2496-0.3114 3.1875-0.855zm-5.2337 0.5189c0.19357-0.5146 0.3868-1.0113 0.5831-1.5128-0.24723-0.1811-0.41779-0.4609-0.45367-0.7815-1.1326-0.4488-2.2307-1.0714-3.3164-1.8689-0.17408 0.29326-0.34077 0.59723-0.5005 0.91202 0.31206 0.64022 0.72882 1.221 1.2273 1.7195 0.68462 0.6843 1.5236 1.214 2.4601 1.5317zm-3.9964-4.0045c0.10048-0.18343 0.2036-0.36321 0.30922-0.53947-0.18571-0.14617-0.37131-0.29759-0.55656-0.4539 0.056169 0.34077 0.13934 0.67311 0.24735 0.99337zm4.2501-3.8868c0.06687 0.1529 0.10413 0.32163 0.10413 0.49914 0 0.1194-0.01698 0.23504-0.04831 0.34442 0.68599 0.32812 1.3602 0.58857 2.0436 0.79422 0.24837-0.74364 0.48706-1.5159 0.70934-2.3238-0.17466-0.1112-0.32277-0.26-0.43306-0.43511-0.71151 0.22376-1.3724 0.51805-1.9869 0.87922-0.13148 0.07724-0.26148 0.15813-0.38885 0.24187zm-0.26433 1.3845c-0.2257 0.22479-0.53685 0.36356-0.88047 0.36356-0.25088 0-0.48466-0.07417-0.68063-0.20132-0.4637 0.49663-0.89049 1.0472-1.2836 1.6478 1.018 0.75241 2.0434 1.3433 3.0957 1.7734 0.18479-0.36872 0.56635-0.62199 1.0068-0.62199 0.04239 0 0.08397 0.00239 0.12533 0.00706 0.2617-0.68382 0.52397-1.3888 0.7785-2.1224-0.72381-0.21875-1.4369-0.49617-2.1616-0.84606zm4.2129-1.9087c-0.1243 0.03612-0.25578 0.05549-0.39193 0.05549-0.05264 0-0.10482-0.00262-0.15597-0.00855-0.2191 0.7932-0.45323 1.5518-0.69681 2.2821 0.59814 0.15118 1.2084 0.26432 1.8451 0.3476 0.09263-0.18787 0.23094-0.34886 0.40078-0.46871-0.1338-0.47487-0.30565-0.92627-0.51494-1.3547-0.14424-0.29497-0.30648-0.579-0.48626-0.85324zm1.342 4.4177c-0.485-0.15438-0.8415-0.59701-0.86782-1.1267-0.66172-0.08807-1.2972-0.20747-1.9209-0.3672-0.26307 0.75901-0.53411 1.488-0.80459 2.194 0.25658 0.20622 0.42087 0.5227 0.42087 0.8772 0 0.0467-0.00308 0.0926-0.00854 0.1379 0.99759 0.1984 2.0304 0.2654 3.113 0.2002 0.0713-0.6707 0.0935-1.3088 0.068-1.9154z" fill="#5f57ff"/>
+</svg>
diff --git a/static/f/plat/wii.svg b/static/f/plat/wii.svg
new file mode 100644
index 00000000..4a0979d4
--- /dev/null
+++ b/static/f/plat/wii.svg
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 16 7.6535" xmlns="http://www.w3.org/2000/svg">
+<g transform="scale(1.1429)" clip-path="url(#a)" fill="#b1b1b4">
+<path d="m7.649 0.36694-1.1821 4.6345s-0.9038-3.4788-1.0508-3.9722c-0.1471-0.49423-0.44968-0.71078-0.87887-0.71078-0.4293 0-0.73245 0.21652-0.87946 0.71078-0.14642 0.49342-1.0505 3.9722-1.0505 3.9722l-1.1829-4.6345h-1.4243s1.368 4.9447 1.5539 5.5175c0.14465 0.44695 0.4873 0.81236 0.99523 0.81236 0.58078 0 0.85234-0.42339 0.97813-0.81236 0.12442-0.38674 1.0099-3.6526 1.0099-3.6526s0.88547 3.2659 1.0096 3.6526c0.12564 0.38897 0.39728 0.81236 0.97786 0.81236 0.50836 0 0.85038-0.36539 0.99593-0.81236 0.18553-0.57267 1.5526-5.5175 1.5526-5.5175zm4.8836 6.2821h1.3484v-4.3616h-1.3484zm-0.1307-5.8866c0 0.42038 0.3547 0.76161 0.7901 0.76161 0.4531 0 0.808-0.3342 0.808-0.76161 0-0.42754-0.3549-0.76248-0.808-0.76248-0.4354 0-0.7901 0.3417-0.7901 0.76248zm-2.6092 5.8866h1.348v-4.3616h-1.348zm-0.13108-5.8866c0 0.42038 0.35393 0.76161 0.78963 0.76161 0.4529 0 0.8085-0.3342 0.8085-0.76161 0-0.42754-0.3556-0.76248-0.8085-0.76248-0.4357 0-0.78963 0.3417-0.78963 0.76248z" fill="#b1b1b4"/>
+</g>
+<defs>
+<clipPath id="a">
+<rect width="14" height="6.6968" fill="#fff"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/static/f/plat/win.svg b/static/f/plat/win.svg
new file mode 100644
index 00000000..492c7a8f
--- /dev/null
+++ b/static/f/plat/win.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 16 14.362" xmlns="http://www.w3.org/2000/svg">
+<path d="m1.9187 6.2968c1.8977-0.87077 3.8753-0.72942 5.9195 0.25657l1.5944-5.6446c-1.9044-0.95156-3.8574-1.3693-5.9562-0.18327z" fill="#cc3000" stroke-width=".07257"/>
+<path d="m9.9331 1.048c2.6941 1.2294 4.6159 0.79489 6.0669 0.39874l-1.5541 5.4108c-2.8055 1.3647-4.4822 0.48861-6.1256-0.12829z" fill="#90c200" stroke-width=".07257"/>
+<path d="m8.192 7.2424c1.8033 0.76008 3.7011 1.2368 6.0845 0.25657l-1.9243 6.1578c-2.273 1.1393-4.0053 0.75664-5.9379-0.14661z" fill="#cc9f00" stroke-width=".07257"/>
+<path d="m0 13.107c1.9208-1.001 3.9011-0.78055 5.9195 0.21992l1.7777-6.2861c-0.81906-0.37418-2.7013-1.4018-5.9745-0.073307z" fill="#028bca" stroke-width=".07257"/>
+</svg>
diff --git a/static/f/plat/wiu.svg b/static/f/plat/wiu.svg
new file mode 100644
index 00000000..9e05d911
--- /dev/null
+++ b/static/f/plat/wiu.svg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 16 10.521" xmlns="http://www.w3.org/2000/svg">
+<g transform="matrix(1.0047 0 0 1.0047 .96688 -.033146)" clip-path="url(#a)" clip-rule="evenodd" fill="#009bc8" fill-rule="evenodd">
+<path d="m5.1448 4.7326c0 3.1382 3.7102 2.6893 3.7102 0.49471v-5.1943h-3.7102z"/>
+<path d="m0.032959 8.0308c0 1.5505 1.0709 2.4735 2.6384 2.4735h8.9045c1.3226 0 2.3911-0.91319 2.3911-2.2262v-6.5135c0-0.79129-0.5897-1.649-1.3192-1.649h-2.0612v5.3592c0 4.0704-7.0907 4.0391-7.0907 0.08245v-5.5241h-1.5666c-1.0199 0-1.8964 0.6462-1.8964 1.649z"/>
+</g>
+<defs>
+<clipPath id="a">
+<rect width="14" height="10.537" fill="#fff"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/static/f/plat/x68.svg b/static/f/plat/x68.svg
new file mode 100644
index 00000000..fe81f0ce
--- /dev/null
+++ b/static/f/plat/x68.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 14 7.549" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#a)">
+<path d="m2.8299 0.47393h4.5594l3.7598 6.4459h-4.5595zm-0.94322-0.47161 4.4021 7.5465h5.9742l-4.4021-7.5465z" fill="#c00"/>
+<path d="m3.2754 5.0331 1.284 2.044h-3.3017zm0.18509-0.98574-3.4605 3.5014h5.5027z" fill="#c00"/>
+<path d="m10.725 2.5156-1.2841-2.0438h3.3015zm-0.1851 0.98527 3.4605-3.5009h-5.5029l2.0424 3.5009" fill="#c00"/>
+<rect transform="matrix(1 0 .48391 .87512 0 0)" x="2.5661" y=".30321" width="4.8813" height="7.7968" ry=".014711" fill="#c00" stroke-width="1.0474"/>
+<path d="m3.5944 5.3253-1.3892 1.3655 1.8157-0.057997-0.62707-0.89008" fill="#ff0005" fill-opacity=".86747" stroke="#c00" stroke-width=".92305px"/>
+<path d="m10.401 2.2081 1.3892-1.3655-1.8157 0.057997 0.62707 0.89008" fill="#ff0005" fill-opacity=".86747" stroke="#c00" stroke-width=".92305px"/>
+</g>
+<defs>
+<clipPath id="a">
+<rect width="14" height="7.5488" fill="#fff"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/static/f/plat/xb1.svg b/static/f/plat/xb1.svg
new file mode 100644
index 00000000..c157296d
--- /dev/null
+++ b/static/f/plat/xb1.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 14 11.872" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<defs>
+<clipPath id="k">
+<path d="m481.12 609.93h144.4v-254.9h-144.4z"/>
+</clipPath>
+<clipPath id="l">
+<path d="m242.8 695.39h336.52v-142.36h-336.52z"/>
+</clipPath>
+<radialGradient id="b" cx="0" cy="0" r="1" gradientTransform="matrix(207.43 -21.51 -19.788 -190.88 415.48 501.29)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#fff" offset="0"/>
+<stop offset=".95506"/>
+<stop offset="1"/>
+</radialGradient>
+<radialGradient id="a" cx="0" cy="0" r="1" gradientTransform="matrix(-59.414 -151.8 -183.86 71.965 430.59 518.58)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#fff" offset="0"/>
+<stop offset=".95506"/>
+<stop offset="1"/>
+</radialGradient>
+<linearGradient id="j" x2="1" gradientTransform="matrix(112.95 139.49 139.49 -112.95 242.33 465.08)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#ff0" offset="0"/>
+<stop stop-color="#9dff00" offset=".5"/>
+<stop stop-color="#458c41" offset="1"/>
+</linearGradient>
+<linearGradient id="i" x2="1" gradientTransform="matrix(138.34 -205.1 -205.1 -138.34 228.25 725.86)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#4a7d62" offset="0"/>
+<stop offset="1"/>
+</linearGradient>
+<linearGradient id="h" x2="1" gradientTransform="matrix(221.12 149.15 149.15 -221.12 150.16 295.6)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#ff0" offset="0"/>
+<stop stop-color="#9dff00" offset=".42134"/>
+<stop stop-color="#5c5c5c" offset="1"/>
+</linearGradient>
+<linearGradient id="g" x2="1" gradientTransform="matrix(179.04 310.1 310.1 -179.04 150.04 206.61)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#4a7d62" offset="0"/>
+<stop stop-color="#182920" offset="1"/>
+</linearGradient>
+<linearGradient id="f" x2="1" gradientTransform="matrix(-123.56 119.32 119.32 123.56 588.99 485.63)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#ff0" offset="0"/>
+<stop stop-color="#9dff00" offset=".47752"/>
+<stop stop-color="#4a4a4a" offset="1"/>
+</linearGradient>
+<linearGradient id="e" x2="1" gradientTransform="matrix(19.705 160.48 160.48 -19.705 528.97 540.92)" gradientUnits="userSpaceOnUse">
+<stop offset="0"/>
+<stop stop-color="#45755c" offset=".87079"/>
+<stop stop-color="#45755c" offset="1"/>
+</linearGradient>
+<linearGradient id="d" x2="1" gradientTransform="matrix(57.405 123.11 123.11 -57.405 544.35 308.62)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#ff0" offset="0"/>
+<stop stop-color="#aeff00" offset=".41573"/>
+<stop stop-color="#575757" offset="1"/>
+</linearGradient>
+<linearGradient id="c" x2="1" gradientTransform="matrix(-55.596 315.3 315.3 55.596 625.09 206.59)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#4a7d62" offset="0"/>
+<stop offset=".83147"/>
+<stop offset="1"/>
+</linearGradient>
+</defs>
+<g transform="translate(-27.625 -31.769)">
+<path d="m27.625 43.641h14v-11.872h-14z"/>
+<g transform="matrix(.017523 0 0 .017523 27.141 31.212)">
+<g transform="matrix(1.25 0 0 -1.25 -97.211 943.55)">
+<g clip-path="url(#l)">
+<path d="m417.09 553.03-174.29 83.727s175.19 135.82 336.52-5.986z" fill="url(#b)"/>
+</g>
+<g clip-path="url(#k)">
+<path d="m481.12 501.93 114.42 108s101.09-174.09-67.989-254.9z" fill="url(#a)"/>
+</g>
+<path d="m344.64 507.72v-125.5c24.426 20.367 48.894 41.889 72.242 64.093v108.36s-131.23 43.744-214.07 95.919c34.127-38.852 90.552-100.24 141.83-142.88" fill="url(#j)"/>
+<path d="m202.81 650.6c82.848-52.175 214.07-95.919 214.07-95.919v14.449s-170.67 56.89-245.62 118.3c0 0 12.187-14.789 31.546-36.825" fill="url(#i)"/>
+<path d="m176.8 256.1c42.305 28.866 104.91 73.64 167.84 126.12v102.02s-85.697-130.06-167.84-228.14" fill="url(#h)"/>
+<path d="m124.31 221.47s20.413 12.745 52.494 34.636c82.143 98.077 167.84 228.14 167.84 228.14v23.477s-127.32-193.24-220.33-286.26" fill="url(#g)"/>
+<path d="m416.89 554.68v-108.36c23.349-22.204 47.817-43.726 72.243-64.093v125.5c51.28 42.639 107.71 104.02 141.84 142.88-82.853-52.175-214.08-95.919-214.08-95.919" fill="url(#f)"/>
+<path d="m416.89 569.13v-14.449s131.23 43.744 214.08 95.919c19.355 22.036 31.542 36.825 31.542 36.825-74.95-61.405-245.62-118.3-245.62-118.3" fill="url(#e)"/>
+<path d="m489.13 382.23c62.933-52.482 125.54-97.256 167.84-126.12-82.142 98.077-167.84 228.14-167.84 228.14z" fill="url(#d)"/>
+<path d="m489.13 484.25s85.703-130.06 167.84-228.14c32.077-21.891 52.491-34.636 52.491-34.636-93.011 93.013-220.34 286.26-220.34 286.26z" fill="url(#c)"/>
+</g>
+</g>
+</g>
+</svg>
diff --git a/static/f/plat/xb3.svg b/static/f/plat/xb3.svg
new file mode 100644
index 00000000..a6e2690d
--- /dev/null
+++ b/static/f/plat/xb3.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="16" height="15.841" enable-background="new 2.472168 0.6079102 167 36" version="1.1" viewBox="2.4722 .60791 16 15.841" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<defs>
+<radialGradient id="g" cx="23.69" cy="12.766" r="14.35" gradientTransform="matrix(0 1.8458 -1.5756 0 41.661 -29.484)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#fff" offset="0"/>
+<stop stop-color="#fff" stop-opacity="0" offset="1"/>
+</radialGradient>
+<radialGradient id="f" cx="23.69" cy="12.766" r="14.35" gradientTransform="matrix(0 1.1525 -.98381 0 34.106 -13.06)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#fff" offset="0"/>
+<stop stop-color="#666" stop-opacity="0" offset="1"/>
+</radialGradient>
+<linearGradient id="d" x1="17.161" x2="13.206" y1="21.54" y2="16.9" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+<linearGradient id="a">
+<stop stop-color="#97ca43" offset="0"/>
+<stop stop-color="#97ca43" stop-opacity="0" offset="1"/>
+</linearGradient>
+<linearGradient id="c" x1="11.656" x2="13.586" y1="18.172" y2="19.231" gradientUnits="userSpaceOnUse" xlink:href="#p"/>
+<linearGradient id="p">
+<stop stop-color="#458f41" offset="0"/>
+<stop stop-color="#458f41" stop-opacity="0" offset="1"/>
+</linearGradient>
+<linearGradient id="b" x1="19.903" x2="14.902" y1="19.231" y2="17.2" gradientUnits="userSpaceOnUse" xlink:href="#o"/>
+<linearGradient id="o">
+<stop stop-color="#e5edae" offset="0"/>
+<stop stop-color="#e5edae" stop-opacity="0" offset="1"/>
+</linearGradient>
+<linearGradient id="n" x1="19.663" x2="23.287" y1="13.09" y2="5.0464" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+<linearGradient id="m" x1="17.497" x2="17.321" y1="4.0984" y2="6.218" gradientUnits="userSpaceOnUse" xlink:href="#e"/>
+<linearGradient id="e">
+<stop stop-color="#459743" offset="0"/>
+<stop stop-color="#459743" stop-opacity="0" offset="1"/>
+</linearGradient>
+<linearGradient id="l" x1="19.339" x2="18.286" y1="4.7166" y2="6.3063" gradientUnits="userSpaceOnUse" xlink:href="#e"/>
+<linearGradient id="k" x1="19.515" x2="21.796" y1="15.668" y2="11.517" gradientUnits="userSpaceOnUse">
+<stop stop-color="#e6edae" offset="0"/>
+<stop stop-color="#e6edae" stop-opacity="0" offset="1"/>
+</linearGradient>
+<linearGradient id="j" x1="17.551" x2="20.647" y1="12.031" y2="6.9877" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+<linearGradient id="i" x1="19.552" x2="18.76" y1="5.0688" y2="6.3482" gradientUnits="userSpaceOnUse">
+<stop stop-color="#46873f" offset="0"/>
+<stop stop-color="#46873f" stop-opacity="0" offset="1"/>
+</linearGradient>
+<linearGradient id="h" x1="20.124" x2="21.972" y1="15.569" y2="10.981" gradientUnits="userSpaceOnUse">
+<stop stop-color="#e6eead" offset="0"/>
+<stop stop-color="#e6eead" stop-opacity="0" offset="1"/>
+</linearGradient>
+</defs>
+<g transform="matrix(.41494 0 0 .41494 -2.6194 15.99)">
+<g>
+<ellipse transform="matrix(1.1756 0 0 1.1301 4.1196 -37.636)" cx="23.333" cy="17.392" rx="14.35" ry="14.758" fill="#666"/>
+<ellipse transform="matrix(1.1756 0 0 1.1301 4.1196 -37.636)" cx="23.333" cy="17.392" rx="14.35" ry="14.758" fill="url(#g)"/>
+<ellipse transform="matrix(1.1756 0 0 1.1301 4.1196 -37.636)" cx="23.333" cy="17.392" rx="14.35" ry="14.758" fill="url(#f)"/>
+</g>
+<g transform="translate(-4.7344 9.5518)">
+<g transform="matrix(1.0075 0 0 1.0008 -.2371 .027153)"/>
+<g transform="translate(4.75 -9.5)">
+<g transform="matrix(1.0075 0 0 1.0008 -.23709 .027153)">
+<g transform="translate(1.3344 -34.927)">
+<path transform="translate(8.2169 -1.073)" d="m17.75 10.656c-1.8477 2.256-9.5927 11.425-8.9062 17.625 0.47832 0.61002 1.0047 1.1803 1.5625 1.7188-0.08129-4.7457 5.4515-9.8246 9.7694-13.658z" fill="#00a54d"/>
+</g>
+<g transform="translate(1.3344 -34.927)">
+<path transform="translate(8.2169 -1.073)" d="m17.75 10.656c-1.8477 2.256-9.5927 11.425-8.9062 17.625 0.47832 0.61002 1.0047 1.1803 1.5625 1.7188-0.08129-4.7457 5.4515-9.8246 9.7694-13.658z" fill="url(#d)"/>
+<path transform="translate(8.2169 -1.073)" d="m17.75 10.656c-1.8477 2.256-9.5927 11.425-8.9062 17.625 0.47832 0.61002 1.0047 1.1803 1.5625 1.7188-0.08129-4.7457 5.4515-9.8246 9.7694-13.658z" fill="url(#c)"/>
+<path transform="translate(8.2169 -1.073)" d="m17.75 10.656c-1.8477 2.256-9.5927 11.425-8.9062 17.625 0.47832 0.61002 1.0047 1.1803 1.5625 1.7188-0.08129-4.7457 5.4515-9.8246 9.7694-13.658z" fill="url(#b)"/>
+</g>
+</g>
+<g transform="matrix(1.0075 0 0 1.0008 .96807 -34.898)">
+<g>
+<path transform="translate(8.2169 -1.073)" d="m13.344 3.75c-0.96566 0.58492-1.8629 1.2723-2.6875 2.0312 2.6563 0.50798 5.3208 2.8624 6.7812 4.8125 1.2724 2.0014 1.9634 3.8367 2.8615 5.7312 0.60813-0.51835 1.2265-1.0464 1.8963-1.5867l-0.0039-8.2266c-1.979-1.2378-5.2498-2.867-8.8164-2.7617-0.0076 0.00461-0.02361-0.00463-0.03125 0z" fill="#02a74d"/>
+<path transform="translate(8.2169 -1.073)" d="m13.344 3.75c-0.96566 0.58492-1.8629 1.2723-2.6875 2.0312 2.6563 0.50798 5.3208 2.8624 6.7812 4.8125 1.2724 2.0014 1.9634 3.8367 2.8615 5.7312 0.60813-0.51835 1.2265-1.0464 1.8963-1.5867l-0.0039-8.2266c-1.979-1.2378-5.2498-2.867-8.8164-2.7617-0.0076 0.00461-0.02361-0.00463-0.03125 0z" fill="url(#n)"/>
+<path transform="translate(8.2169 -1.073)" d="m13.344 3.75c-0.96566 0.58492-1.8629 1.2723-2.6875 2.0312 2.6563 0.50798 5.3208 2.8624 6.7812 4.8125 1.2724 2.0014 1.9634 3.8367 2.8615 5.7312 0.60813-0.51835 1.2265-1.0464 1.8963-1.5867l-0.0039-8.2266c-1.979-1.2378-5.2498-2.867-8.8164-2.7617-0.0076 0.00461-0.02361-0.00463-0.03125 0z" fill="url(#m)"/>
+<path transform="translate(8.2169 -1.073)" d="m13.344 3.75c-0.96566 0.58492-1.8629 1.2723-2.6875 2.0312 2.6563 0.50798 5.3208 2.8624 6.7812 4.8125 1.2724 2.0014 1.9634 3.8367 2.8615 5.7312 0.60813-0.51835 1.2265-1.0464 1.8963-1.5867l-0.0039-8.2266c-1.979-1.2378-5.2498-2.867-8.8164-2.7617-0.0076 0.00461-0.02361-0.00463-0.03125 0z" fill="url(#l)"/>
+<path transform="translate(8.2169 -1.073)" d="m13.344 3.75c-0.96566 0.58492-1.8629 1.2723-2.6875 2.0312 2.6563 0.50798 5.3208 2.8624 6.7812 4.8125 1.2724 2.0014 1.9634 3.8367 2.8615 5.7312 0.60813-0.51835 1.2265-1.0464 1.8963-1.5867l-0.0039-8.2266c-1.979-1.2378-5.2498-2.867-8.8164-2.7617-0.0076 0.00461-0.02361-0.00463-0.03125 0z" fill="url(#k)"/>
+</g>
+</g>
+<g transform="matrix(-1.0075 0 0 1.0008 63.323 .027153)">
+<g transform="translate(1.3344 -34.927)">
+<path transform="translate(8.2169 -1.073)" d="m17.75 10.656c-1.8477 2.256-9.5927 11.425-8.9062 17.625 0.47832 0.61002 1.0047 1.1803 1.5625 1.7188-0.08129-4.7457 5.4515-9.8246 9.7694-13.658z" fill="#00a54d"/>
+</g>
+<g transform="translate(1.3344 -34.927)">
+<path transform="translate(8.2169 -1.073)" d="m17.75 10.656c-1.8477 2.256-9.5927 11.425-8.9062 17.625 0.47832 0.61002 1.0047 1.1803 1.5625 1.7188-0.08129-4.7457 5.4515-9.8246 9.7694-13.658z" fill="url(#d)"/>
+<path transform="translate(8.2169 -1.073)" d="m17.75 10.656c-1.8477 2.256-9.5927 11.425-8.9062 17.625 0.47832 0.61002 1.0047 1.1803 1.5625 1.7188-0.08129-4.7457 5.4515-9.8246 9.7694-13.658z" fill="url(#c)"/>
+<path transform="translate(8.2169 -1.073)" d="m17.75 10.656c-1.8477 2.256-9.5927 11.425-8.9062 17.625 0.47832 0.61002 1.0047 1.1803 1.5625 1.7188-0.08129-4.7457 5.4515-9.8246 9.7694-13.658z" fill="url(#b)"/>
+</g>
+</g>
+<g transform="matrix(-1.0042 0 0 1.0017 63.252 .054306)">
+<g transform="translate(1.1962 -34.896)">
+<g>
+<path transform="translate(8.2169 -1.073)" d="m13.344 3.75c-0.96566 0.58492-1.8629 1.2723-2.6875 2.0312 2.6563 0.50798 5.3208 2.8624 6.7812 4.8125 1.2724 2.0014 1.9634 3.8367 2.8615 5.7312 0.60813-0.51835 1.2265-1.0464 1.8963-1.5867l-0.0039-8.2266c-1.979-1.2378-5.2498-2.867-8.8164-2.7617-0.0076 0.00461-0.02361-0.00463-0.03125 0z" fill="#02a74d"/>
+<path transform="translate(8.2169 -1.073)" d="m13.344 3.75c-0.96566 0.58492-1.8629 1.2723-2.6875 2.0312 2.6563 0.50798 5.3208 2.8624 6.7812 4.8125 1.2724 2.0014 1.9634 3.8367 2.8615 5.7312 0.60813-0.51835 1.2265-1.0464 1.8963-1.5867l-0.0039-8.2266c-1.979-1.2378-5.2498-2.867-8.8164-2.7617-0.0076 0.00461-0.02361-0.00463-0.03125 0z" fill="url(#j)"/>
+<path transform="translate(8.2169 -1.073)" d="m13.344 3.75c-0.96566 0.58492-1.8629 1.2723-2.6875 2.0312 2.6563 0.50798 5.3208 2.8624 6.7812 4.8125 1.2724 2.0014 1.9634 3.8367 2.8615 5.7312 0.60813-0.51835 1.2265-1.0464 1.8963-1.5867l-0.0039-8.2266c-1.979-1.2378-5.2498-2.867-8.8164-2.7617-0.0076 0.00461-0.02361-0.00463-0.03125 0z" fill="url(#i)"/>
+<path transform="translate(8.2169 -1.073)" d="m13.344 3.75c-0.96566 0.58492-1.8629 1.2723-2.6875 2.0312 2.6563 0.50798 5.3208 2.8624 6.7812 4.8125 1.2724 2.0014 1.9634 3.8367 2.8615 5.7312 0.60813-0.51835 1.2265-1.0464 1.8963-1.5867l-0.0039-8.2266c-1.979-1.2378-5.2498-2.867-8.8164-2.7617-0.0076 0.00461-0.02361-0.00463-0.03125 0z" fill="url(#h)"/>
+</g>
+</g>
+</g>
+</g>
+</g>
+</g>
+</svg>
diff --git a/static/f/plat/xbo.svg b/static/f/plat/xbo.svg
new file mode 100644
index 00000000..2ec68662
--- /dev/null
+++ b/static/f/plat/xbo.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg fill="none" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+<path d="m8.6981 14.971c1.0785-0.10324 2.1703-0.49026 3.1082-1.102 0.78591-0.51224 0.96336-0.72312 0.96336-1.1436 0-0.84446-0.9292-2.3239-2.5189-4.01-0.90258-0.95786-2.1601-2.08-2.2959-2.0497-0.26457 0.059033-2.3783 2.1197-3.1697 3.0899-1.2513 1.5335-1.8263 2.7896-1.5341 3.3496 0.22211 0.42555 1.6006 1.2575 2.6132 1.5772 0.83474 0.26343 1.931 0.37495 2.8339 0.28857zm5.1331-3.1235c0.65315-1.0015 0.9831-1.9873 1.1422-3.4132 0.052674-0.4708 0.034161-0.73996-0.11926-1.7066-0.19085-1.2034-0.87704-2.5972-1.702-3.4542-0.35112-0.36428-0.38242-0.37403-0.81066-0.22929-0.51906 0.17563-1.0739 0.55878-1.9347 1.3368l-0.50279 0.45438 0.275 0.33664c1.2737 1.5628 2.6181 3.7794 3.1241 5.1504 0.27503 0.74486 0.38569 1.4929 0.26685 1.8043-0.07967 0.21048-0.0064 0.13207 0.26204-0.27866zm-11.464 0.1703c-0.064599-0.31484 0.01708-0.89291 0.20827-1.476 0.41412-1.2628 1.7987-3.6119 3.07-5.2092l0.40029-0.50283-0.43315-0.3973c-0.56528-0.51878-0.95775-0.8294-1.3815-1.0933-0.33405-0.20817-0.81162-0.39242-1.017-0.39242-0.12644 0-0.57212 0.46349-0.93172 0.96763-0.55714 0.78061-0.96686 1.7287-1.1745 2.7142-0.13424 0.6375-0.14547 2.0003-0.021642 2.6362 0.10251 0.52171 0.3173 1.1979 0.52557 1.6567 0.15783 0.34361 0.54672 1.0112 0.71758 1.2284 0.087868 0.11173 0.087868 0.11163 0.03905-0.12941zm6.2153-9.3096c0.58676-0.2976 1.4918-0.61717 1.9917-0.70335 0.17508-0.030094 0.47399-0.047165 0.66389-0.037403 0.41259 0.020812 0.39428-6.542e-4 -0.26736-0.31306-0.54998-0.25971-1.0088-0.41242-1.632-0.54317-0.7005-0.14718-2.0177-0.1488-2.7071-0.0035778-0.74443 0.15693-1.6213 0.483-2.1153 0.78711l-0.1471 0.090099 0.33682-0.016918c0.66974-0.033825 1.6457 0.23662 2.6936 0.74597 0.316 0.15384 0.59066 0.27647 0.61084 0.27322 0.020016-0.0039 0.27759-0.12929 0.57276-0.27891z" fill="#1daf1e" stroke-width="1.0225"/>
+</svg>