Сделай сайт для проекта серверов в CS:GO,  на основе этого CSS, не копируя его полностью, просто используй как референс. На сайте должны быть статистика, список серверов, и чат

/*! modern-normalize v2.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */

/*
Document
========
*/

/**
Use a better box model (opinionated).
*/

*,
::before,
::after {
	box-sizing: border-box;
}

html {
	/* Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) */
	font-family:
		system-ui,
		'Segoe UI',
		Roboto,
		Helvetica,
		Arial,
		sans-serif,
		'Apple Color Emoji',
		'Segoe UI Emoji';
	line-height: 1.15; /* 1. Correct the line height in all browsers. */
	-webkit-text-size-adjust: 100%; /* 2. Prevent adjustments of font size after orientation changes in iOS. */
	-moz-tab-size: 4; /* 3. Use a more readable tab size (opinionated). */
	tab-size: 4; /* 3 */
}

/*
Sections
========
*/

body {
	margin: 0; /* Remove the margin in all browsers. */
}

/*
Grouping content
================
*/

/**
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
*/

hr {
	height: 0; /* 1 */
	color: inherit; /* 2 */
}

/*
Text-level semantics
====================
*/

/**
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr[title] {
	text-decoration: underline dotted;
}

/**
Add the correct font weight in Edge and Safari.
*/

b,
strong {
	font-weight: bolder;
}

/**
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2. Correct the odd 'em' font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
	font-family:
		ui-monospace,
		SFMono-Regular,
		Consolas,
		'Liberation Mono',
		Menlo,
		monospace; /* 1 */
	font-size: 1em; /* 2 */
}

/**
Add the correct font size in all browsers.
*/

small {
	font-size: 80%;
}

/**
Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
*/

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/*
Tabular data
============
*/

/**
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
*/

table {
	text-indent: 0; /* 1 */
	border-color: inherit; /* 2 */
}

/*
Forms
=====
*/

/**
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
*/

button,
input,
optgroup,
select,
textarea {
	font-family: inherit; /* 1 */
	font-size: 100%; /* 1 */
	line-height: 1.15; /* 1 */
	margin: 0; /* 2 */
}

/**
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
	text-transform: none;
}

/**
Correct the inability to style clickable types in iOS and Safari.
*/

button,
[type='button'],
[type='reset'],
[type='submit'] {
	-webkit-appearance: button;
}

/**
Remove the inner border and padding in Firefox.
*/

::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
Restore the focus styles unset by the previous rule.
*/

:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
Remove the additional ':invalid' styles in Firefox.
See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
*/

:-moz-ui-invalid {
	box-shadow: none;
}

/**
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
*/

legend {
	padding: 0;
}

/**
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
	vertical-align: baseline;
}

/**
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
	height: auto;
}

/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
	-webkit-appearance: textfield; /* 1 */
	outline-offset: -2px; /* 2 */
}

/**
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/

::-webkit-file-upload-button {
	-webkit-appearance: button; /* 1 */
	font: inherit; /* 2 */
}

/*
Interactive
===========
*/

/*
Add the correct display in Chrome and Safari.
*/

summary {
	display: list-item;
}

@font-face {
  font-family: "Bebas Neue Momentum";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/styling/fonts/BebasNeue/woff2/BebasNeueMomentum-Regular.woff2) format("woff2");
  unicode-range: U+0000-007E, U+00A1-0149, U+014C-017E, U+01FC-01FF, U+0218-021B,
    U+0237, U+02BC, U+02C6-02C7, U+02D8-02DD, U+0401, U+0410-044F, U+0451;
}

@font-face {
  font-family: "Bebas Neue Momentum";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/styling/fonts/BebasNeue/woff2/BebasNeueMomentum-Bold.woff2) format("woff2");
  unicode-range: U+0000-007E, U+00A1-0149, U+014C-017E, U+01FC-01FF, U+0218-021B,
    U+0237, U+02BC, U+02C6-02C7, U+02D8-02DD, U+0401, U+0410-044F, U+0451;
}

/* I'm not using these colours very religiously, we have so many different
   shades/variants going on with this site that set palettes are too restrictive. */

/* Autogenerated by https://github.com/momentum-mod/styling/blob/main/colors/src/export.js */

:root {
  --gray-50: 241 241 241;
  --gray-100: 221 221 221;
  --gray-200: 199 199 199;
  --gray-250: 170 170 170;
  --gray-300: 158 158 158;
  --gray-400: 117 117 117;
  --gray-500: 78 78 78;
  --gray-600: 50 50 50;
  --gray-700: 34 34 34;
  --gray-800: 28 28 28;
  --gray-900: 20 20 20;
  --gray-950: 11 11 11;

  --pale-50: 185 222 255;
  --pale-100: 166 203 239;
  --pale-200: 147 182 219;
  --pale-300: 125 156 195;
  --pale-400: 99 128 171;
  --pale-500: 78 101 143;
  --pale-600: 54 69 104;
  --pale-700: 37 47 72;
  --pale-800: 24 29 44;
  --pale-900: 16 18 26;
  --pale-950: 10 11 15;

  --blue-50: 231 244 255;
  --blue-100: 197 231 255;
  --blue-200: 164 221 251;
  --blue-300: 117 202 245;
  --blue-400: 76 182 233;
  --blue-500: 24 150 211;
  --blue-600: 16 110 177;
  --blue-700: 10 72 136;
  --blue-800: 18 46 94;
  --blue-900: 15 27 55;
  --blue-950: 10 15 28;

  --purple-50: 243 235 254;
  --purple-100: 234 221 253;
  --purple-200: 210 182 252;
  --purple-300: 189 148 250;
  --purple-400: 168 113 249;
  --purple-500: 145 76 247;
  --purple-600: 107 16 244;
  --purple-700: 79 8 185;
  --purple-800: 52 5 122;
  --purple-900: 27 3 63;
  --purple-950: 13 1 29;

  --pink-50: 255 245 249;
  --pink-100: 255 235 243;
  --pink-200: 254 215 231;
  --pink-300: 254 195 219;
  --pink-400: 253 175 206;
  --pink-500: 253 157 196;
  --pink-600: 251 75 146;
  --pink-700: 240 5 99;
  --pink-800: 160 3 66;
  --pink-900: 80 2 33;
  --pink-950: 40 1 16;

  --red-50: 249 235 236;
  --red-100: 244 215 216;
  --red-200: 234 179 181;
  --red-300: 223 139 142;
  --red-400: 213 103 107;
  --red-500: 202 65 70;
  --red-600: 168 47 51;
  --red-700: 124 34 37;
  --red-800: 84 23 25;
  --red-900: 40 11 12;
  --red-950: 20 6 6;

  --orange-50: 253 244 231;
  --orange-100: 251 232 208;
  --orange-200: 247 212 166;
  --orange-300: 243 189 119;
  --orange-400: 240 169 76;
  --orange-500: 236 147 31;
  --orange-600: 197 119 17;
  --orange-700: 146 88 12;
  --orange-800: 99 60 8;
  --orange-900: 47 28 4;
  --orange-950: 24 14 2;

  --yellow-50: 253 248 231;
  --yellow-100: 252 243 212;
  --yellow-200: 249 231 169;
  --yellow-300: 247 218 126;
  --yellow-400: 244 206 83;
  --yellow-500: 241 195 37;
  --yellow-600: 211 165 14;
  --yellow-700: 158 124 10;
  --yellow-800: 105 82 7;
  --yellow-900: 53 41 3;
  --yellow-950: 24 19 2;

  --green-50: 239 246 233;
  --green-100: 224 238 211;
  --green-200: 195 222 171;
  --green-300: 163 204 127;
  --green-400: 132 187 83;
  --green-500: 103 152 60;
  --green-600: 82 121 48;
  --green-700: 62 91 36;
  --green-800: 42 62 25;
  --green-900: 20 29 12;
  --green-950: 10 15 6;

  --tier-1: 40 171 234;
  --tier-2: 46 133 229;
  --tier-3: 51 90 211;
  --tier-4: 74 48 206;
  --tier-5: 95 10 183;
  --tier-6: 171 22 105;
  --tier-7: 151 2 55;
  --tier-8: 148 3 3;
  --tier-9: 126 2 2;
  --tier-10: 99 1 1;

  --levels-1: 93 93 93;
  --levels-2: 232 72 85;
  --levels-3: 255 134 69;
  --levels-4: 255 208 0;
  --levels-5: 71 194 124;
  --levels-6: 63 74 202;
  --levels-7: 135 61 225;
  --levels-8: 211 74 141;
  --levels-9: 49 133 252;
  --levels-10: 22 22 22;
  --levels-11: 255 255 255;
}

.ui-chunk {
  display: flex;
  flex-direction: column;
  padding: 0.5rem;

  cursor: default;
  background: rgb(255 255 255 / 0.1);
  border: 1px solid rgb(255 255 255 / 0.05);
  box-shadow: 0 1px 3px rgb(0 0 0 / 0.125);

  /*backdrop-filter: blur(1rem);*/
  border-radius: 0.25rem;

  .row {
    display: flex;
    align-items: center;
    padding: 0.25rem;

    border-radius: 0.25rem;
    border: 1px solid rgb(255 255 255 / 0.05);
    background-color: rgb(255 255 255 / 0.1);
    box-shadow: 0 1px 3px rgb(0 0 0 / 0.2);

    transition: background-color 0.1s ease-out;

    &:hover {
      background-color: rgb(255 255 255 / 0.2);
    }
  }

  p,
  h1 {
    font-weight: 400;
    text-shadow: 0 1px 3px rgb(0 0 0 / 0.375);
    color: rgb(var(--gray-50));
  }

  button {
    display: grid;
    place-items: center;
    border-radius: 0.25rem;

    background-color: rgb(200 200 200 / 0.5);
    box-shadow:
      0 1px 1px rgb(0 0 0 / 0.2),
      1px 1px 3px rgb(0 0 0 / 0.125);
    transition: background-color 0.15s ease-out;

    &:hover {
      background-color: rgb(255 255 255 / 0.5);
    }

    svg {
      filter: drop-shadow(0 1px 1px rgb(0 0 0 / 0.2));
    }
  }
}

#Lobby.ui-chunk {
  gap: 0.25rem;

  > .header {
    margin-top: -0.125rem;
    padding: 0 0.125rem 0.0625rem;
    display: flex;
    align-items: center;

    > * {
      font-size: 1.25rem;
    }

    > .playercount {
      margin-left: auto;
    }

    > svg {
      height: 1.3125rem;
      width: 1.3125rem;
      margin-left: 1px;
    }
  }

  > .row {
    font-size: 0.875rem;

    > .avatar {
      flex: 0 0 auto;
      width: 1.5rem;
      border-radius: 3px;
      height: 1.5rem;
    }

    > .name {
      margin-left: 0.5rem;
      flex: 1 0 0;
    }

    > .map {
      flex: 1 0 0;
      text-align: center;
    }

    > .button {
      width: 4rem;
      align-self: stretch;

      > h1 {
        display: flex;
        align-items: center;
        width: min-content;
        height: 100%;
        margin: auto;
        text-align: center;
        border-radius: 0.25rem;
        font-size: 1.125rem;
        box-shadow:
          0 1px 1px rgb(0 0 0 / 0.3),
          1px 1px 3px rgb(0 0 0 / 0.25);
        background-color: rgb(200 200 200 / 0.5);
        transition: background-color 0.15s ease-out;
        padding-inline: 0.375rem;

        &:hover {
          background-color: rgb(128 128 128 / 0.5);
        }
      }
    }
  }
}

#MapSelector.ui-chunk {
  gap: 0.25rem;

  > .row {
    padding-left: 0.625rem;
    gap: 0.25rem;

    > .name,
    > .tier {
      font-size: 1.25rem;
    }

    > .name {
      flex: 3 0 0;
    }

    > .tier {
      flex: 2 0 0;
      color: rgb(var(--gray-200));
    }

    > button {
      flex: 0 0 1.875rem;

      > svg {
        margin: auto;
        height: 1.875rem;
        padding: 0.1825rem;
        color: white;
        grid-row: 1;
        grid-column: 1;
        transition: opacity 0.1s ease-in-out;
      }

      &.faves {
        > svg.off {
          opacity: 1;
        }

        > svg.on {
          filter: none;
          opacity: 0;
        }

        &.selected {
          background: linear-gradient(
            rgb(var(--yellow-500)),
            rgb(var(--yellow-600))
          );

          > svg.off {
            filter: none;
            opacity: 0;
          }

          > svg.on {
            opacity: 1;
          }
        }
      }

      &.download {
        overflow: hidden;

        > * {
          transition: opacity 0.1s ease-in-out;
        }

        > .download-icon {
          opacity: 1;
        }

        > .play-icon,
        > .progress {
          opacity: 0;
        }

        > .progress {
          opacity: 0;
          overflow: hidden;
          width: 0;
          height: 100%;
          transition-property: width;
          transition-timing-function: linear;
          margin-right: auto;
          grid-row: 1;
          grid-column: 1;
          background: linear-gradient(
            90deg,
            rgb(var(--blue-500)),
            rgb(var(--blue-300))
          );
        }

        &.downloading {
          > .progress {
            opacity: 1;
            width: 100%;
          }

          > .download-icon,
          > .play-icon {
            opacity: 0;
          }
        }

        &.playable {
          background: linear-gradient(
            rgb(var(--green-400)),
            rgb(var(--green-500))
          );

          &:hover {
            opacity: 0.9;
          }

          > .play-icon {
            opacity: 1;
          }

          > .download-icon,
          > .progress {
            opacity: 0;
          }
        }
      }
    }
  }
}

#Leaderboard.ui-chunk {
  > .mask {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;

    > .row {
      font-size: 0.875rem;
      padding-inline: 0.5675rem;

      > .rank {
        font-weight: 400;
      }

      > .avatar {
        flex: 0 0 auto;
        width: 1.5rem;
        border-radius: 3px;
        height: 1.5rem;
        margin-left: 1rem;
      }

      > .name {
        margin-left: 0.5rem;
      }

      > .time {
        margin-left: auto;
        font-weight: 700;
      }
    }
  }
}

#Graph.ui-chunk {
  display: block;

  > .inner {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 0.25rem;
    border: 1px solid rgb(255 255 255 / 0.1);

    > * {
      position: absolute;
    }

    > .upper-region {
      height: 50%;
      width: 100%;
      top: 0;
      background: linear-gradient(to bottom, #784e5e, #723e4a);
      border-top-left-radius: 0.25rem;
      border-top-right-radius: 0.25rem;
    }

    & > .lower-region {
      height: 50%;
      width: 100%;
      bottom: 0;
      background: linear-gradient(to bottom, #55656e, #3f5360);
      border-bottom-left-radius: 0.25rem;
      border-bottom-right-radius: 0.25rem;
    }

    > .h-line {
      width: 1px;
      height: 100%;
      background-color: rgb(255 255 255 / 0.1);
    }

    > .v-line {
      width: 100%;
      height: 1px;
      background-color: rgb(255 255 255 / 0.1);
    }

    > svg {
      width: 100%;
      height: 100%;
      > path {
        stroke-width: 0.5px;
        stroke: rgb(197, 197, 197);
      }
    }

    > .point {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 1.5rem;
      height: 1.5rem;
      transform: translate(-50%, -50%);

      &::after {
        content: '';
        width: 0.75rem;
        height: 0.75rem;
        background-color: rgb(238, 238, 238);
        box-shadow: 0 0 8px rgb(0 0 0 / 0.2);
        border-radius: 100%;

        transition: all ease-out 0.1s;
      }

      &:hover::after {
        background-color: rgb(255, 255, 255);
        box-shadow:
          0 0 2px rgb(0 0 0 / 0.5),
          0 0 8px rgb(152, 240, 255);
      }
    }

    > div#RunGraphPopover {
      display: none;
      align-items: center;
      gap: 0 0.5rem;
      grid-template-columns: auto auto;
      grid-template-rows: auto auto;
      opacity: 0;
      pointer-events: none;
      z-index: 100;
      border-radius: 0.25rem;
      background-color: rgb(var(--gray-800));
      padding: 0.375rem 0.75rem;
      font-size: 1rem;

      flex-direction: column;
      transition-property: opacity, display;
      transition-duration: 0.1s;
      transition-timing-function: ease-out;
      transition-behavior: allow-discrete;

      &.visible {
        display: grid;
        opacity: 1;
      }

      > p {
        color: rgb(var(--gray-200));
        font-weight: 700;
        font-size: 0.875rem;
        text-transform: uppercase;
      }

      > span {
        font-weight: 700;
      }

      > #Difference {
        color: rgb(var(--red-400));

        &.ahead {
          color: rgb(var(--blue-400));
        }
      }
    }
  }
}

#Levels.ui-chunk {
  .top {
    display: grid;
    grid-template-columns: auto 1fr;
  }

  .level-indicator {
    height: min-content;
    padding: 0.25rem 0.375rem;
    grid-column: 1;
    grid-row: 1;

    box-shadow: 0 0 4px rgb(0 0 0 / 0.2);
    border-radius: 0.25rem;
    transition-property: filter, opacity;
    transition-duration: 0s;
    transition-delay: 0s;
    transition-timing-function: ease-out;

    &.before {
      opacity: 1;
      filter: blur(0px);
      background-color: rgb(var(--levels-7));
    }

    &.after {
      opacity: 0;
      background-color: rgb(var(--levels-8));
    }

    > h1 {
      font-weight: 700;
    }
  }

  .change {
    display: flex;
    flex-direction: column;
    align-items: end;
    margin-left: auto;
    margin-top: -0.125rem;
    margin-bottom: -0.125rem;

    .status {
      color: rgb(var(--gray-200));
      font-size: 0.875rem;
    }

    .gain {
      font-weight: 700;
      font-size: 1.25rem;
      background: linear-gradient(135deg, #d0ff89, #9bff40);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      text-shadow: none;
      filter: drop-shadow(0 1px 2px rgba(10, 40, 0, 0.5));
    }
  }

  .prog {
    margin-top: 0.5rem;
    height: 1.5rem;
    border-radius: 0.1875rem;
    box-shadow: 0 0 4px rgb(0 0 0 / 0.2);
    background-color: rgb(255 255 255 / 0.1);

    > span {
      display: block;
      width: 60%;
      height: 100%;

      background: linear-gradient(
        to left,
        rgb(var(--blue-400)),
        rgb(var(--blue-500))
      );
      border: 1px solid rgb(255 255 255 / 0.25);
      border-radius: 0.1875rem;
      background-origin: border-box !important;
      box-shadow: 0 0 4px rgb(var(--blue-800));

      transition: width 0.5s ease-out;
    }
  }

  &:hover {
    .prog > span {
      animation: LevelUpProgressBar 1.5s linear forwards;
    }

    .level-indicator {
      transition-duration: 0.5s;
      transition-delay: 0.75s;

      &.before {
        filter: blur(16px);
        opacity: 0;
      }
      &.after {
        opacity: 1;
      }
    }
  }
}

@keyframes LevelUpProgressBar {
  0% {
    animation-timing-function: ease-in;
    width: 60%;
  }

  50% {
    animation-timing-function: linear;
    width: 100%;
  }

  50.1% {
    animation-timing-function: ease-out;
    width: 0;
  }

  100% {
    width: 40%;
  }
}

#Replay.ui-chunk {
  > .header {
    display: flex;
    gap: 0.5rem;

    & > svg {
      width: 1.375rem;
      height: 1.375rem;
    }

    & > h1 {
      margin: -0.125rem 0;
    }
  }

  > .time-and-ticks {
    margin-top: 0.25rem;
    display: flex;

    h2 {
      margin-bottom: -0.125rem;
      font-size: 1rem;
      color: rgb(var(--gray-200));
    }

    h1 {
      font-size: 1.375rem;
    }

    > .ticks {
      align-self: self-end;
      margin-left: auto;
      display: block;
      text-align: right;
    }
  }

  > .progress {
    margin-top: 0.25rem;
    height: 2rem;
    position: relative;

    /** Tips for styling this bullshit: https://css-tricks.com/sliding-nightmare-understanding-range-input/ */
    input[type='range'] {
      -webkit-appearance: none;
      appearance: none;
      background: transparent;
      cursor: pointer;

      position: absolute;
      z-index: 1;
      width: 100%;

      &:focus,
      &:hover {
        outline: none;

        &::-webkit-slider-thumb {
          box-shadow: 0 0 3px rgb(0 0 0 / 0.75);
          background-color: white;
        }
      }

      &::-webkit-slider-thumb {
        -webkit-appearance: none;
        appearance: none;
        margin-top: -4px;
        background-color: rgb(var(--gray-100));
        border-radius: 50%;
        box-shadow: 0 0 3px rgb(0 0 0 / 0.5);
        height: 1rem;
        width: 1rem;
        transition: all ease-in-out 0.1s;
      }

      &::-moz-range-thumb {
        border: none;
        -webkit-appearance: none;
        appearance: none;
        transform: translateY(-0.375rem);
        background-color: rgb(var(--gray-100));
        border-radius: 50%;
        box-shadow: 0 0 3px rgb(0 0 0 / 0.5);
        height: 1rem;
        width: 1rem;
        transition: all ease-in-out 0.1s;
      }

      &:focus,
      &:hover {
        &::-moz-range-thumb {
          box-shadow: 0 0 3px rgb(0 0 0 / 0.75);
          background-color: white;
        }
      }
    }

    .segments {
      display: flex;
      height: 0.5rem;
      align-items: self-end;

      div {
        flex-shrink: 1;
        position: relative;
        border-radius: 0.125rem;
        background-color: #304956;
        box-shadow: 0 1px 2px rgb(0 0 0 / 0.25);
        height: 0.375rem;
        transition: height 0.1s ease-out;
        margin-inline: 1px;

        &.current {
          height: 0.5rem;
        }

        > span {
          display: block;
        border-radius: 0.125rem;

          height: 100%;
          background-color: rgb(var(--blue-500));
          .current > & {
            background: linear-gradient(
              90deg,
              rgb(var(--blue-500)),
              rgb(var(--blue-300))
            );
          }
        }

        > p {
          position: absolute;
          bottom: -1.25rem;
          left: 50%;
          transform: translateX(-50%);
          font-size: 0.75rem;
          color: rgb(var(--gray-100));
        }
      }
    }
  }

  .buttons {
    display: flex;
    gap: 0.25rem;

    > button {
      display: flex;
      place-items: center;

      &.toggle {
        display: grid;
        margin-inline: auto;
        flex-grow: 1;

        > .play,
        > .pause {
          grid-row: 1;
          grid-column: 1;
          transition: opacity 0.1s ease-out;
        }
        
        > .pause {
          opacity: 0;
        }
        
        &.playing {
          opacity: 1;
          background: linear-gradient(
            90deg,
            rgb(var(--blue-500)),
            rgb(var(--blue-300))
          );
        }
      }

      > svg {
        width: 1.75rem;
        height: 1.75rem;
        padding: 0.125rem;
        color: rgb(var(--gray-50));
      }
    }
  }
}

:root {
  --font-display: 'Bebas Neue Momentum', sans-serif;
}

body {
  font-family: 'Roboto', sans-serif;
  margin: 0;
  background-color: rgb(var(--gray-900));
  color: white;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;

  p {
    margin: 0;
    line-height: 1.5;
  }
}

header {
  width: 100%;
  height: 768px;
  display: grid;
  place-items: center;
  position: relative;

  /* TODO https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images */
  background-image: url('/images/BGLight.jpg');
  background-size: cover;

  .hero {
    display: flex;
    flex-direction: column;
    align-items: center;

    .logo {
      width: 48rem;
    }

    .subheading {
      margin-top: 1.5rem;
      line-height: 1;

      font-size: 2.5rem;
      font-weight: 700;
      font-family: var(--font-display);

      /* TODO: This looks pretty shit, at least on Chromium.
      Important enough that we should just make this as an SVG, in the exact same fashion
      as the main logo. Also the copy is shit. */
      -webkit-text-stroke: 8px rgb(var(--gray-700));
      paint-order: stroke fill;
    }

    .buttons {
      margin-top: 2rem;
      display: flex;
      gap: 1rem;

      a {
        padding: 0.5rem 1.5rem;
        position: relative;

        font-family: var(--font-display);
        font-weight: 700;
        font-size: 2.675rem;

        border: 1px solid rgba(255 255 255 / 0.05);
        border-radius: 0.25rem;
        background-origin: border-box !important;
        backdrop-filter: blur(4px);
        box-shadow:
          0 2px 12px rgb(0 0 0 / 0.4),
          0 1px 4px rgb(0 0 0 / 0.3);
        text-shadow: 0 3px 4px rgba(0 0 0 / 0.325);

        transition-property: box-shadow, border;
        transition-duration: 0.1s;
        transition-timing-function: ease-in-out;

        /* Non-standard colors because they look good and these buttons are special! */
        &.play-now {
          background: linear-gradient(
            45deg,
            rgba(0 140 255 / 0.6),
            rgba(20 173 255 / 0.6)
          );
        }

        &.dashboard {
          background: linear-gradient(
            135deg,
            rgba(255 0 67 / 0.6),
            rgba(255 0 85 / 0.6)
          );
        }

        &::after {
          content: '';
          position: absolute;
          transition: background-color 0.1s ease-in-out;
          background-color: rgb(0 0 0 / 0);
          height: 100%;
          border-radius: 0.25rem;
          width: 100%;
          top: 0;
          left: 0;
        }

        &:hover {
          border: 1px solid rgba(255 255 255 / 0.1);

          &::after {
            background-color: rgb(255 255 255 / 0.15);
          }
        }
      }
    }
  }

  &::after {
    width: 100%;
    height: 15%;
    mix-blend-mode: multiply;
    bottom: 0;
    left: 0;
    position: absolute;

    content: '';
    background: linear-gradient(transparent, rgb(24 105 211 / 0.5));
    border-bottom: 1px solid rgb(0 0 0 / 1);
  }
}

main {
  .section-wrapper {
    width: 100%;

    section {
      margin: 0 auto;
      padding: 0 1rem;
      @media screen {
        max-width: 1280px;
      }
    }

    &:nth-child(1) {
      position: relative;
      border-top: 1px solid rgb(255 255 255 / 0.2);
      border-bottom: 1px solid rgb(0 0 0 / 0.3);
      background: linear-gradient(135deg, #252530, #14151e);

      &::after,
      &::before {
        content: '';
        position: absolute;
        height: 4rem;
        width: 100%;
        left: 0;
      }

      &::before {
        top: 0;
        background: linear-gradient(to bottom, rgba(0 0 0 / 0.2), transparent);
      }

      &::after {
        bottom: 0;
        background: linear-gradient(to top, rgba(23 46 60 / 0.3), transparent);
      }
    }

    &:nth-child(2) {
      position: relative;

      border-top: 1px solid rgb(255 255 255 / 0.4);

      & > .background {
        /*filter: saturate(0);*/
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        z-index: -2;
        position: absolute;
        filter: grayscale(1) invert(1) brightness(0.25) contrast(0.2);
        background-image: url('/images/BGLight.jpg');
      }

      & > .background-overlay {
        position: absolute;
        display: block;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        content: '';
        background: linear-gradient(rgba(24, 60, 241, 0.9), transparent),
          linear-gradient(to top left, rgba(198, 9, 241, 0.9), transparent),
          linear-gradient(to top right, rgba(0, 114, 227, 0.9), transparent);
        /*radial-gradient(#000000, transparent);*/
        opacity: 0.5;
        mix-blend-mode: soft-light;
        background-blend-mode: color-burn;
        z-index: -1;
      }
    }
  }
}

section#WhatIsMomentum {
  margin-top: 3.5rem;

  display: flex;
  gap: 3rem;
  align-items: center;

  > .description {
    flex: 0 1 60%;

    h1 {
      margin-top: -0.5rem;

      font-weight: 700;
      font-size: 4rem;
      background: linear-gradient(185deg, #9ee0ff, #0094ff);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      filter: drop-shadow(0 0 8px rgb(0 0 0 / 0.5));
    }

    p {
      color: #eee;
    }

    p + p {
      margin-top: 1rem;
    }
  }

  > iframe {
    flex: 0 0 40%;
    aspect-ratio: 16 / 9;
    height: fit-content;
  }
}

section#Gamemodes {
  display: flex;
  flex-direction: column;
  padding-top: 4rem;
  padding-bottom: 4rem;
  align-items: center;

  > h1 {
    font-size: 3.25rem;
    font-weight: 700;

    background: linear-gradient(175deg, #ffffff, #e0e0e0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 0 8px rgb(0 0 0 / 0.75));
  }

  .selection {
    position: relative;
    width: 100%;
    margin-top: 1rem;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;

    > button {
      display: inline-flex;
      flex-direction: column;
      align-items: center;
      gap: 0.5rem;
      padding: 0;

      background-origin: border-box !important;
      border: none;
      background: none;

      position: relative;

      &::after {
        z-index: 0;
        content: '';
        bottom: 0;
        left: 0;
        height: 2px;
        width: 100%;
        background-color: rgb(255 255 255 /0.5);
      }

      &,
      & > img,
      & > h1 {
        transition: all 0.1s ease-out;
      }

      > img {
        margin-inline: 2rem;
        width: 4rem;
        height: 4rem;
        opacity: 0.5;
      }

      > h1 {
        margin-inline: 2rem;
        opacity: 0.75;
        color: white;
        font-weight: 400;
        line-height: 1;
        font-size: 1.625rem;
        padding-bottom: 0.75rem;
      }

      &:hover {
        > img {
          opacity: 0.9;
        }

        > h1 {
          opacity: 0.9;
        }

        > #TODO {
          background-color: rgb(255 255 255 / 0.75);
        }
      }

      &.selected {
        filter: drop-shadow(0 0 2px rgb(255 255 255 / 0.175))
          drop-shadow(0 0 8px #00223d);

        > img {
          opacity: 1;
        }

        > h1 {
          opacity: 1;
        }
      }
    }

    > #TimeBar {
      position: absolute;
      bottom: 0;
      left: 0;
      display: block;
      width: 0; /* Controlled by JS */
      height: 2px;
      z-index: 1000;
      background: rgb(255 255 255 / 1);
      box-shadow: 0 0 4px rgb(0 0 0 / 0.25);
      transition-property: left, width;
      transition-timing-function: cubic-bezier(0.25, 0.65, 0.6, 1);
      transition-duration: 0s; /* Controlled by JS */

      filter: drop-shadow(0 0 2px rgb(255 255 255 / 0.175))
        drop-shadow(0 0 8px #00223d);

      > span {
        display: block;
        height: 100%;
        width: 0;
        background-color: #41bcff;
        transition-property: width;
        transition-timing-function: linear;
        /* Controlled by JS */
        transition-duration: 0s;
        transition-delay: 0s;
      }
    }

    &:before,
    &:after {
      content: '';
      display: block;
      height: 2px;
      margin-top: auto;
      flex-grow: 1;
    }

    &:before {
      background: linear-gradient(
        to right,
        transparent,
        rgb(255 255 255 / 0.5)
      );
    }

    &:after {
      background: linear-gradient(to left, transparent, rgb(255 255 255 / 0.5));
    }
  }

  .gamemodes {
    margin-top: 1.5rem;
    display: grid;

    .gamemode {
      grid-column: 1;
      grid-row: 1;

      gap: 2rem;
      display: none;

      > div {
        width: 60%;

        h1 {
          width: fit-content;
          font-weight: 700;
          font-size: 4rem;
          margin-top: -0.5rem;
          background: linear-gradient(175deg, #eeeeff, #c9ccd2);
          -webkit-background-clip: text;
          -webkit-text-fill-color: transparent;
          filter: drop-shadow(0 0 8px rgb(0 0 0 / 0.5));
        }

        p + p {
          margin-top: 1rem;
        }
      }

      > video {
        width: 40%;
        aspect-ratio: 16 / 9;
      }

      &.selected {
        display: flex;
      }
    }
  }
}

section#Features {
  padding: 2rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;

  > h1 {
    font-size: 4rem;
    font-weight: 700;
    margin-bottom: 1rem;

    background: linear-gradient(185deg, #9ee0ff, #0094ff);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 0 8px rgb(0 0 0 / 0.5));

    margin-inline: auto;
  }

  > div {
    display: flex;
    gap: 0.75rem;
    width: 100%;

    > div {
      padding: 0.5rem;
      border-radius: 0.25rem;
      border: 1px solid rgb(255 255 255 / 0.1);
      backdrop-filter: blur(0.75rem);
      background-color: rgb(255 255 255 / 0.1);
      box-shadow: 0 1px 3px rgb(0 0 0 / 0.25);

      > h1,
      > * > h1 {
        padding-left: 0.5rem;
        padding-top: 0.25rem;
        font-size: 2.5rem;
        font-weight: 700;
        line-height: 1;
        margin-bottom: 0.25rem;
        background: linear-gradient(172.5deg, #d6fcff, #a9dfeb);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        filter: drop-shadow(0 1px 2px rgb(0 0 0 / 0.25));
      }

      > p,
      > * > p {
        padding-left: 0.5rem;
        color: rgb(var(--gray-50));

        & ~ p {
          margin-top: 1rem;
        }
      }
    }
  }

  .leaderboards {
    flex: 1 1 auto;
  

    .grid {
      margin-top: 0.5rem;
      display: grid;
      grid-template-columns: 2fr 1fr;
      grid-template-rows: minmax(0, 1fr) auto;
      grid-auto-flow: column;
      gap: 0.5rem;

      .desc {
        padding-left: 0.5rem;
        padding-bottom: 0.5rem;

        p ~ p {
          margin-top: 1rem;
        }
      }

      .leaderboard-wrapper {
        position: relative;
        overflow: hidden;

        #Leaderboard {
          position: absolute;
          width: 100%;
          height: 100%;
          min-height: 0;
          overflow: hidden;

          > .mask {
            overflow-y: scroll;
            scrollbar-width: none;
            mask: linear-gradient(to bottom, black 95%, transparent);

            &::-webkit-scrollbar {
              display: none;
            }
          }
        }
      }
    }
  }

  .map-selector {
    flex: 1 1 auto;

    display: flex;
    flex-direction: column;

    > #MapSelector {
      margin-top: auto;
    }
  }

  .levels {
    flex: 1 1 auto;
  }

  .multiplayer {
    flex: 1 1 auto;
  }
}

footer {
  background-color: #2a2a2a;
  margin: 5rem 0 0 0;

  > .links {
    max-width: 840px;
    margin-left: auto;
    margin-right: auto;

    display: flex;
    justify-content: space-around;

    > div {
      display: flex;
      flex-direction: column;
      gap: 0.5rem;

      > p {
        font-size: 1.25rem;
        font-weight: 600;
      }

      > div a {
        display: flex;
        align-items: center;
        align-content: center;

        > p {
          padding: 0;
          margin: 0 0 0 0.75rem;
          align-self: center;
        }
      }
    }
  }
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-display);
  margin: 0;
  font-weight: 400;
}

button {
  padding: 0;
  margin: 0;
  border: none;
}

a {
  color: inherit;
  text-decoration: inherit;
}

iframe {
  border: 0;
}