diff --git a/royalnet/web/static/logo.png b/royalnet/web/static/logo.png
new file mode 100644
index 00000000..2cca0cc9
Binary files /dev/null and b/royalnet/web/static/logo.png differ
diff --git a/royalnet/web/static/logo.svg b/royalnet/web/static/logo.svg
new file mode 100644
index 00000000..373effee
--- /dev/null
+++ b/royalnet/web/static/logo.svg
@@ -0,0 +1,219 @@
+
+
+
+
diff --git a/royalnet/web/static/styling.css b/royalnet/web/static/styling.css
new file mode 100644
index 00000000..40f116f9
--- /dev/null
+++ b/royalnet/web/static/styling.css
@@ -0,0 +1,393 @@
+body {
+ font-family: "Arial", "Helvetica Neue", sans-serif;
+ background-color: #0d193b;
+ color: #a0ccff;
+ box-sizing: border-box;
+}
+a {
+ color: #00caca;
+ text-decoration: none;
+}
+a:hover {
+ color: #4affff;
+}
+a:active {
+ color: white;
+}
+a:not(.no-icon)::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f0c1";
+ margin-right: 4px;
+}
+a:not(.no-icon)[href^="https://t.me"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f2c6";
+ margin-right: 3px;
+}
+a:not(.no-icon)[href^="https://www.youtube.com"]::before,
+a:not(.no-icon)[href^="https://youtu.be"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f167";
+ margin-right: 3px;
+}
+a:not(.no-icon)[href^="https://vimeo.com"]::before,
+a:not(.no-icon)[href^="https://player.vimeo.com"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f27d";
+ margin-right: 4px;
+}
+a:not(.no-icon)[href^="https://github.com"]::before,
+a:not(.no-icon)[href^="https://gist.github.com"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f09b";
+ margin-right: 4px;
+}
+a:not(.no-icon)[href^="https://itch.io"]::before,
+a:not(.no-icon)[href^="https://steffo.itch.io"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f83a";
+ margin-right: 3px;
+}
+a:not(.no-icon)[href^="https://www.kickstarter.com"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f3bb";
+ margin-right: 4px;
+}
+a:not(.no-icon)[href^="https://reddit.com"]::before,
+a:not(.no-icon)[href^="https://new.reddit.com"]::before,
+a:not(.no-icon)[href^="https://old.reddit.com"]::before,
+a:not(.no-icon)[href^="https://redd.it"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f281";
+ margin-right: 3px;
+}
+a:not(.no-icon)[href^="https://www.twitch.tv"]::before,
+a:not(.no-icon)[href^="https://clips.twitch.tv"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f1e8";
+ margin-right: 4px;
+}
+a:not(.no-icon)[href^="https://store.steampowered.com"]::before,
+a:not(.no-icon)[href^="https://steamcommunity.com"]::before,
+a:not(.no-icon)[href^="https://partner.steamgames.com"]::before,
+a:not(.no-icon)[href^="steam:"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f1b6";
+ margin-right: 4px;
+}
+a:not(.no-icon)[href^="https://twitter.com"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f099";
+ margin-right: 3px;
+}
+a:not(.no-icon)[href^="https://it.wikipedia.org"]::before,
+a:not(.no-icon)[href^="https://en.wikipedia.org"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f266";
+ margin-right: 3px;
+}
+a:not(.no-icon)[href^="#"]::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f13d";
+ margin-right: 3px;
+}
+a:not(.no-icon)[href^="http:"]::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f09c";
+ margin-right: 4px;
+}
+a:not(.no-icon)[href^="magnet:"]::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f076";
+ margin-right: 4px;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ color: #ffffff;
+ margin-top: 0;
+ margin-bottom: 0;
+ font-weight: normal;
+}
+code {
+ font-family: "Consolas", "Source Code Pro", monospace;
+}
+blockquote {
+ color: #a0ccff;
+ border-left: 3px solid #a0ccff;
+ background-color: rgba(160, 204, 255, 0.1);
+ padding: 2px 4px 2px 8px;
+ margin: 8px;
+}
+textarea {
+ background-color: rgba(160, 204, 255, 0.1);
+ color: #a0ccff;
+ border: 1px solid #a0ccff;
+ padding: 2px;
+ margin: 1px;
+ font-size: small;
+ font-family: "Consolas", "Source Code Pro", monospace;
+ width: 100%;
+ height: 300px;
+}
+button,
+input[type="submit"],
+.btn {
+ background-color: rgba(160, 204, 255, 0.1);
+ color: #a0ccff !important;
+ border: 1px solid #a0ccff;
+ border-radius: 0;
+ padding: 2px 8px;
+ margin: 1px;
+ font-size: medium;
+ font-family: sans-serif;
+ text-decoration: none;
+ cursor: default;
+}
+button:hover,
+input[type="submit"]:hover,
+.btn:hover {
+ background-color: rgba(160, 204, 255, 0.2);
+ color: #ffffff;
+ border-color: #ffffff;
+}
+button:active,
+input[type="submit"]:active,
+.btn:active {
+ background-color: rgba(160, 204, 255, 0.3);
+ color: white;
+ border-color: white;
+}
+pre {
+ margin: 0;
+}
+img {
+ margin-left: auto;
+ margin-right: auto;
+ display: block;
+ max-width: 100%;
+}
+.h-container {
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ flex-direction: column;
+}
+@media (min-width: 800px) {
+ .h-container {
+ flex-direction: row;
+ }
+}
+.main-container {
+ width: 100%;
+}
+@media (min-width: 800px) {
+ .main-container {
+ width: 800px;
+ }
+}
+@media (min-width: 1200px) {
+ .main-container {
+ width: 1200px;
+ }
+}
+.title-bar {
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ font-size: 64px;
+ color: #ffffff;
+}
+.title-bar .ryg-logo {
+ width: 144px;
+ height: 144px;
+ display: inline;
+ vertical-align: middle;
+}
+.box {
+ background-color: rgba(160, 204, 255, 0.1);
+ border-radius: 4px;
+ padding: 8px;
+ margin: 8px;
+}
+.doublebox {
+ margin: 8px;
+}
+.doublebox .top {
+ display: flex;
+ justify-content: space-between;
+ background-color: rgba(160, 204, 255, 0.2);
+ padding: 4px;
+ border-radius: 4px 4px 0 0;
+ color: #ffffff;
+ font-size: smaller;
+ font-weight: bold;
+ height: 16px;
+}
+.doublebox .top .left {
+ align-self: flex-start;
+}
+.doublebox .top .right {
+ align-self: flex-end;
+}
+.doublebox .bot {
+ background-color: rgba(160, 204, 255, 0.1);
+ padding: 8px;
+ border-radius: 0 0 4px 4px;
+}
+.multirow {
+ list-style-type: none;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-left: 0;
+}
+.palette-color {
+ border-radius: 4px;
+ width: 32px;
+ height: 32px;
+ display: inline-block;
+}
+.palette-color.light {
+ border: 1px solid black;
+}
+.palette-color.dark {
+ border: 1px solid white;
+}
+.proscons {
+ padding: 4px 4px 4px 8px;
+ margin: 4px;
+ border-radius: 4px;
+}
+.proscons.plus {
+ color: #7dff7d;
+ background-color: rgba(125, 255, 125, 0.1);
+}
+.proscons.plus::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f0fe";
+ margin-right: 6px;
+}
+.proscons.minus {
+ color: #ff7d7d;
+ background-color: rgba(255, 125, 125, 0.1);
+}
+.proscons.minus::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f146";
+ margin-right: 6px;
+}
+.proscons.stars {
+ background-color: rgba(255, 255, 125, 0.1);
+ color: #ffff7d;
+ display: flex;
+}
+.proscons.stars .stars-0 {
+ margin-right: 6px;
+}
+.proscons.stars .stars-0::after {
+ font-family: "Font Awesome 5 Free";
+ font-weight: normal;
+ content: "\f005\f005\f005\f005\f005";
+}
+.proscons.stars .stars-1 {
+ margin-right: 6px;
+}
+.proscons.stars .stars-1::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f005";
+}
+.proscons.stars .stars-1::after {
+ font-family: "Font Awesome 5 Free";
+ font-weight: normal;
+ content: "\f005\f005\f005\f005";
+}
+.proscons.stars .stars-2 {
+ margin-right: 6px;
+}
+.proscons.stars .stars-2::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f005\f005";
+}
+.proscons.stars .stars-2::after {
+ font-family: "Font Awesome 5 Free";
+ font-weight: normal;
+ content: "\f005\f005\f005";
+}
+.proscons.stars .stars-3 {
+ margin-right: 6px;
+}
+.proscons.stars .stars-3::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f005\f005\f005";
+}
+.proscons.stars .stars-3::after {
+ font-family: "Font Awesome 5 Free";
+ font-weight: normal;
+ content: "\f005\f005";
+}
+.proscons.stars .stars-4 {
+ margin-right: 6px;
+}
+.proscons.stars .stars-4::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f005\f005\f005\f005";
+}
+.proscons.stars .stars-4::after {
+ font-family: "Font Awesome 5 Free";
+ font-weight: normal;
+ content: "\f005";
+}
+.proscons.stars .stars-5 {
+ margin-right: 6px;
+}
+.proscons.stars .stars-5::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f005\f005\f005\f005\f005";
+}
+.proscons:not(.plus):not(.minus):not(.stars) {
+ color: #a0ccff;
+ background-color: rgba(160, 204, 255, 0.1);
+}
+.proscons:not(.plus):not(.minus):not(.stars)::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f0c8";
+ margin-right: 6px;
+}
+.proscons.big {
+ font-size: xx-large;
+}
+.spoiler {
+ color: rgba(0, 0, 0, 0);
+ border: 1px solid rgba(160, 204, 255, 0.1);
+ border-radius: 2px;
+}
+.spoiler:hover {
+ color: #a0ccff;
+}
+/*# sourceMappingURL=styling.css.map */
\ No newline at end of file
diff --git a/royalnet/web/static/styling.css.map b/royalnet/web/static/styling.css.map
new file mode 100644
index 00000000..1f8b1e79
--- /dev/null
+++ b/royalnet/web/static/styling.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["styling.less"],"names":[],"mappings":"AAiBA;EACI,aALS,SAAS,4BAKlB;EACA,yBAAA;EACA,cAAA;EACA,sBAAA;;AAGJ;EACI,cAAA;EACA,qBAAA;;AAEA,CAAC;EACG,cAAA;;AAGJ,CAAC;EACG,YAAA;;AAOA,CAFH,IAAI,UAEA;EACG,aAAa,qBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIJ,CAVH,IAAI,UAUA,sBAAsB;EACnB,aAAa,uBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIJ,CAlBH,IAAI,UAkBA,iCAAiC;AAAU,CAlB/C,IAAI,UAkB4C,0BAA0B;EACnE,aAAa,uBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIJ,CA1BH,IAAI,UA0BA,2BAA2B;AAAU,CA1BzC,IAAI,UA0BsC,kCAAkC;EACrE,aAAa,uBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIJ,CAlCH,IAAI,UAkCA,4BAA4B;AAAU,CAlC1C,IAAI,UAkCuC,iCAAiC;EACrE,aAAa,uBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIJ,CA1CH,IAAI,UA0CA,yBAAyB;AAAU,CA1CvC,IAAI,UA0CoC,gCAAgC;EACjE,aAAa,uBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIJ,CAlDH,IAAI,UAkDA,qCAAqC;EAClC,aAAa,uBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIJ,CA1DH,IAAI,UA0DA,4BAA4B;AAAU,CA1D1C,IAAI,UA0DuC,gCAAgC;AAAU,CA1DrF,IAAI,UA0DkF,gCAAgC;AAAU,CA1DhI,IAAI,UA0D6H,yBAAyB;EACnJ,aAAa,uBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIJ,CAlEH,IAAI,UAkEA,+BAA+B;AAAU,CAlE7C,IAAI,UAkE0C,iCAAiC;EACxE,aAAa,uBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIJ,CA1EH,IAAI,UA0EA,wCAAwC;AAAU,CA1EtD,IAAI,UA0EmD,oCAAoC;AAAU,CA1ErG,IAAI,UA0EkG,wCAAwC;AAAU,CA1ExJ,IAAI,UA0EqJ,gBAAgB;EAClK,aAAa,uBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIJ,CAlFH,IAAI,UAkFA,6BAA6B;EAC1B,aAAa,uBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIJ,CA1FH,IAAI,UA0FA,kCAAkC;AAAU,CA1FhD,IAAI,UA0F6C,kCAAkC;EAC5E,aAAa,uBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIJ,CAlGH,IAAI,UAkGA,WAAW;EACR,aAAa,qBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIJ,CA1GH,IAAI,UA0GA,eAAe;EACZ,aAAa,qBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIJ,CAlHH,IAAI,UAkHA,iBAAiB;EACd,aAAa,qBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAKZ;AAAI;AAAI;AAAI;AAAI;AAAI;EAChB,cAAA;EACA,aAAA;EACA,gBAAA;EACA,mBAAA;;AAGJ;EACI,aA3Jc,YAAY,4BA2J1B;;AAGJ;EACI,cAAA;EACA,8BAAA;EACA,0CAAA;EACA,wBAAA;EACA,WAAA;;AAGJ;EACI,0CAAA;EACA,cAAA;EACA,yBAAA;EACA,YAAA;EACA,WAAA;EACA,gBAAA;EACA,aA7Kc,YAAY,4BA6K1B;EACA,WAAA;EACA,aAAA;;AAGJ;AAAQ,KAAK;AAAiB;EAC1B,0CAAA;EACA,cAAA;EACA,yBAAA;EACA,gBAAA;EACA,gBAAA;EACA,WAAA;EACA,iBAAA;EACA,uBAAA;EACA,qBAAA;EACA,eAAA;;AAEA,MAAC;AAAD,KAZS,eAYR;AAAD,IAAC;EACG,0CAAA;EACA,cAAA;EACA,qBAAA;;AAGJ,MAAC;AAAD,KAlBS,eAkBR;AAAD,IAAC;EACG,0CAAA;EACA,YAAA;EACA,mBAAA;;AAIR;EACI,SAAA;;AAGJ;EACI,iBAAA;EACA,kBAAA;EACA,cAAA;EACA,eAAA;;AAKJ;EACI,aAAA;EACA,uBAAA;EACA,qBAAA;EACA,sBAAA;;AAEA,QACA;EADA;IAEI,mBAAA;;;AAIR;EACI,WAAA;;AAEA,QACA;EADA;IAEI,YAAA;;;AAGJ,QACA;EADA;IAEI,aAAA;;;AAIR;EACI,aAAA;EACA,uBAAA;EACA,qBAAA;EACA,eAAA;EACA,cAAA;;AALJ,UAOI;EACI,YAAA;EACA,aAAA;EACA,eAAA;EACA,sBAAA;;AAIR;EACI,0CAAA;EACA,kBAAA;EACA,YAAA;EACA,WAAA;;AAGJ;EACI,WAAA;;AADJ,UAGI;EACI,aAAA;EACA,8BAAA;EACA,0CAAA;EACA,YAAA;EACA,0BAAA;EACA,cAAA;EACA,kBAAA;EACA,iBAAA;EACA,YAAA;;AAZR,UAGI,KAWI;EACI,sBAAA;;AAfZ,UAGI,KAeI;EACI,oBAAA;;AAnBZ,UAuBI;EACI,0CAAA;EACA,YAAA;EACA,0BAAA;;AAKR;EACI,qBAAA;EACA,aAAA;EACA,gBAAA;EACA,eAAA;;AAGJ;EACI,kBAAA;EACA,WAAA;EACA,YAAA;EACA,qBAAA;;AAEA,cAAC;EACG,uBAAA;;AAGJ,cAAC;EACG,uBAAA;;AAKR;EACI,wBAAA;EACA,WAAA;EACA,kBAAA;;AAEA,SAAC;EACG,cAAA;EACA,0CAAA;;AAEA,SAJH,KAII;EACG,aAAa,qBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIR,SAAC;EACG,cAAA;EACA,0CAAA;;AAEA,SAJH,MAII;EACG,aAAa,qBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIR,SAAC;EACG,0CAAA;EACA,cAAA;EACA,aAAA;;AAHJ,SAAC,MAKG;EACI,iBAAA;;AAEA,SARP,MAKG,SAGK;EACG,aAAa,qBAAb;EACA,mBAAA;EACA,SAAS,2BAAT;;AAXZ,SAAC,MAeG;EACI,iBAAA;;AAEA,SAlBP,MAeG,SAGK;EACG,aAAa,qBAAb;EACA,iBAAA;EACA,SAAS,OAAT;;AAGJ,SAxBP,MAeG,SASK;EACG,aAAa,qBAAb;EACA,mBAAA;EACA,SAAS,sBAAT;;AA3BZ,SAAC,MA+BG;EACI,iBAAA;;AAEA,SAlCP,MA+BG,SAGK;EACG,aAAa,qBAAb;EACA,iBAAA;EACA,SAAS,YAAT;;AAGJ,SAxCP,MA+BG,SASK;EACG,aAAa,qBAAb;EACA,mBAAA;EACA,SAAS,iBAAT;;AA3CZ,SAAC,MA+CG;EACI,iBAAA;;AAEA,SAlDP,MA+CG,SAGK;EACG,aAAa,qBAAb;EACA,iBAAA;EACA,SAAS,iBAAT;;AAGJ,SAxDP,MA+CG,SASK;EACG,aAAa,qBAAb;EACA,mBAAA;EACA,SAAS,YAAT;;AA3DZ,SAAC,MA+DG;EACI,iBAAA;;AAEA,SAlEP,MA+DG,SAGK;EACG,aAAa,qBAAb;EACA,iBAAA;EACA,SAAS,sBAAT;;AAGJ,SAxEP,MA+DG,SASK;EACG,aAAa,qBAAb;EACA,mBAAA;EACA,SAAS,OAAT;;AA3EZ,SAAC,MA+EG;EACI,iBAAA;;AAEA,SAlFP,MA+EG,SAGK;EACG,aAAa,qBAAb;EACA,iBAAA;EACA,SAAS,2BAAT;;AAKZ,SAAC,IAAI,OAAO,IAAI,QAAQ,IAAI;EACxB,cAAA;EACA,0CAAA;;AAEA,SAJH,IAAI,OAAO,IAAI,QAAQ,IAAI,QAIvB;EACG,aAAa,qBAAb;EACA,iBAAA;EACA,SAAS,OAAT;EACA,iBAAA;;AAIR,SAAC;EACG,mBAAA;;AAIR;EACI,uBAAA;EACA,0CAAA;EACA,kBAAA;;AAEA,QAAC;EACG,cAAA","file":"styling.css"}
\ No newline at end of file
diff --git a/royalnet/web/static/styling.less b/royalnet/web/static/styling.less
new file mode 100644
index 00000000..c676cc25
--- /dev/null
+++ b/royalnet/web/static/styling.less
@@ -0,0 +1,477 @@
+@bg: #0d193b; //Background color
+@fg: #a0ccff; //Foreground color
+@li: #00caca; //Link
+@ec: #ffffff; //Extra color
+
+@pastel-red: #ff7d7d;
+@pastel-orange: #ffbb7d;
+@pastel-yellow: #ffff7d;
+@pastel-lime: #7dff7d;
+@pastel-cyan: #7dffff;
+@pastel-blue: #7d7dff;
+@pastel-magenta: #ff7dff;
+
+@main-fonts: "Arial", "Helvetica Neue", sans-serif;
+@monospace-fonts: "Consolas", "Source Code Pro", monospace;
+
+//General
+body {
+ font-family: @main-fonts;
+ background-color: @bg;
+ color: @fg;
+ box-sizing: border-box;
+}
+
+a {
+ color: @li;
+ text-decoration: none;
+
+ &:hover {
+ color: lighten(@li, 25%);
+ }
+
+ &:active {
+ color: white;
+ }
+
+ //Icon link
+ //noinspection CssNoGenericFontName
+ &:not(.no-icon) {
+ //External link
+ &::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f0c1";
+ margin-right: 4px;
+ }
+
+ //Telegram link
+ &[href^="https://t.me"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f2c6";
+ margin-right: 3px;
+ }
+
+ //YouTube link
+ &[href^="https://www.youtube.com"]::before, &[href^="https://youtu.be"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f167";
+ margin-right: 3px;
+ }
+
+ //Vimeo link
+ &[href^="https://vimeo.com"]::before, &[href^="https://player.vimeo.com"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f27d";
+ margin-right: 4px;
+ }
+
+ //GitHub link
+ &[href^="https://github.com"]::before, &[href^="https://gist.github.com"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f09b";
+ margin-right: 4px;
+ }
+
+ //Itchio link
+ &[href^="https://itch.io"]::before, &[href^="https://steffo.itch.io"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f83a";
+ margin-right: 3px;
+ }
+
+ //Kickstarter link
+ &[href^="https://www.kickstarter.com"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f3bb";
+ margin-right: 4px;
+ }
+
+ //Reddit link
+ &[href^="https://reddit.com"]::before, &[href^="https://new.reddit.com"]::before, &[href^="https://old.reddit.com"]::before, &[href^="https://redd.it"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f281";
+ margin-right: 3px;
+ }
+
+ //Twitch link
+ &[href^="https://www.twitch.tv"]::before, &[href^="https://clips.twitch.tv"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f1e8";
+ margin-right: 4px;
+ }
+
+ //Steam link
+ &[href^="https://store.steampowered.com"]::before, &[href^="https://steamcommunity.com"]::before, &[href^="https://partner.steamgames.com"]::before, &[href^="steam:"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f1b6";
+ margin-right: 4px;
+ }
+
+ //Twitter link
+ &[href^="https://twitter.com"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f099";
+ margin-right: 3px;
+ }
+
+ //Wikipedia link
+ &[href^="https://it.wikipedia.org"]::before, &[href^="https://en.wikipedia.org"]::before {
+ font-family: "Font Awesome 5 Brands";
+ font-weight: bold;
+ content: "\f266";
+ margin-right: 3px;
+ }
+
+ //Anchor
+ &[href^="#"]::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f13d";
+ margin-right: 3px;
+ }
+
+ //Unsafe link
+ &[href^="http:"]::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f09c";
+ margin-right: 4px;
+ }
+
+ //Magnet link
+ &[href^="magnet:"]::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f076";
+ margin-right: 4px;
+ }
+ }
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: @ec;
+ margin-top: 0;
+ margin-bottom: 0;
+ font-weight: normal;
+}
+
+code {
+ font-family: @monospace-fonts;
+}
+
+blockquote {
+ color: @fg;
+ border-left: 3px solid @fg;
+ background-color: fade(@fg, 10%);
+ padding: 2px 4px 2px 8px;
+ margin: 8px;
+}
+
+textarea {
+ background-color: fade(@fg, 10%);
+ color: @fg;
+ border: 1px solid @fg;
+ padding: 2px;
+ margin: 1px;
+ font-size: small;
+ font-family: @monospace-fonts;
+ width: 100%;
+ height: 300px;
+}
+
+button, input[type="submit"], .btn {
+ background-color: fade(@fg, 10%);
+ color: @fg !important;
+ border: 1px solid @fg;
+ border-radius: 0;
+ padding: 2px 8px;
+ margin: 1px;
+ font-size: medium;
+ font-family: sans-serif;
+ text-decoration: none;
+ cursor: default;
+
+ &:hover {
+ background-color: fade(@fg, 20%);
+ color: lighten(@fg, 25%);
+ border-color: lighten(@fg, 25%);
+ }
+
+ &:active {
+ background-color: fade(@fg, 30%);
+ color: white;
+ border-color: white;
+ }
+}
+
+pre {
+ margin: 0;
+}
+
+img {
+ margin-left: auto;
+ margin-right: auto;
+ display: block;
+ max-width: 100%;
+}
+
+//Elements
+
+.h-container {
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ flex-direction: column;
+
+ @media (min-width: 800px)
+ {
+ flex-direction: row;
+ }
+}
+
+.main-container {
+ width: 100%;
+
+ @media (min-width: 800px)
+ {
+ width: 800px;
+ }
+
+ @media (min-width: 1200px)
+ {
+ width: 1200px;
+ }
+}
+
+.title-bar {
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ font-size: 64px;
+ color: @ec;
+
+ .ryg-logo {
+ width: 144px;
+ height: 144px;
+ display: inline;
+ vertical-align: middle;
+ }
+}
+
+.box {
+ background-color: fade(@fg, 10%);
+ border-radius: 4px;
+ padding: 8px;
+ margin: 8px;
+}
+
+.doublebox {
+ margin: 8px;
+
+ .top {
+ display: flex;
+ justify-content: space-between;
+ background-color: fade(@fg, 20%);
+ padding: 4px;
+ border-radius: 4px 4px 0 0;
+ color: @ec;
+ font-size: smaller;
+ font-weight: bold;
+ height: 16px;
+
+ .left {
+ align-self: flex-start;
+ }
+
+ .right {
+ align-self: flex-end;
+ }
+ }
+
+ .bot {
+ background-color: fade(@fg, 10%);
+ padding: 8px;
+ border-radius: 0 0 4px 4px;
+ }
+}
+
+//This is something about the sidebar... better leave it alone.
+.multirow {
+ list-style-type: none;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-left: 0;
+}
+
+.palette-color {
+ border-radius: 4px;
+ width: 32px;
+ height: 32px;
+ display: inline-block;
+
+ &.light {
+ border: 1px solid black;
+ }
+
+ &.dark {
+ border: 1px solid white;
+ }
+}
+
+//noinspection CssNoGenericFontName
+.proscons {
+ padding: 4px 4px 4px 8px;
+ margin: 4px;
+ border-radius: 4px;
+
+ &.plus {
+ color: @pastel-lime;
+ background-color: fade(@pastel-lime, 10%);
+
+ &::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f0fe";
+ margin-right: 6px;
+ }
+ }
+
+ &.minus {
+ color: @pastel-red;
+ background-color: fade(@pastel-red, 10%);
+
+ &::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f146";
+ margin-right: 6px;
+ }
+ }
+
+ &.stars {
+ background-color: fade(@pastel-yellow, 10%);
+ color: @pastel-yellow;
+ display: flex;
+
+ .stars-0 {
+ margin-right: 6px;
+
+ &::after {
+ font-family: "Font Awesome 5 Free";
+ font-weight: normal;
+ content: "\f005\f005\f005\f005\f005";
+ }
+ }
+
+ .stars-1 {
+ margin-right: 6px;
+
+ &::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f005";
+ }
+
+ &::after {
+ font-family: "Font Awesome 5 Free";
+ font-weight: normal;
+ content: "\f005\f005\f005\f005";
+ }
+ }
+
+ .stars-2 {
+ margin-right: 6px;
+
+ &::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f005\f005";
+ }
+
+ &::after {
+ font-family: "Font Awesome 5 Free";
+ font-weight: normal;
+ content: "\f005\f005\f005";
+ }
+ }
+
+ .stars-3 {
+ margin-right: 6px;
+
+ &::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f005\f005\f005";
+ }
+
+ &::after {
+ font-family: "Font Awesome 5 Free";
+ font-weight: normal;
+ content: "\f005\f005";
+ }
+ }
+
+ .stars-4 {
+ margin-right: 6px;
+
+ &::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f005\f005\f005\f005";
+ }
+
+ &::after {
+ font-family: "Font Awesome 5 Free";
+ font-weight: normal;
+ content: "\f005";
+ }
+ }
+
+ .stars-5 {
+ margin-right: 6px;
+
+ &::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f005\f005\f005\f005\f005";
+ }
+ }
+ }
+
+ &:not(.plus):not(.minus):not(.stars) {
+ color: @fg;
+ background-color: fade(@fg, 10%);
+
+ &::before {
+ font-family: "Font Awesome 5 Free";
+ font-weight: bold;
+ content: "\f0c8";
+ margin-right: 6px;
+ }
+ }
+
+ &.big {
+ font-size: xx-large;
+ }
+}
+
+.spoiler {
+ color: rgba(0, 0, 0, 0);
+ border: 1px solid fade(@fg, 10%);
+ border-radius: 2px;
+
+ &:hover {
+ color: @fg;
+ }
+}
diff --git a/royalnet/web/templates/base.html b/royalnet/web/templates/base.html
index 55d7211d..2b709aa5 100644
--- a/royalnet/web/templates/base.html
+++ b/royalnet/web/templates/base.html
@@ -10,15 +10,12 @@
{% block title %}{% endblock %}
-
-
+
+
-
-
-
- Royal Games
-
+
+
Royal Games