@charset "UTF-8";
* {
  box-sizing: border-box;
}

html {
  --bg-light-theme: #fafafa;
  --bg-dark: #263238;
  --bg-light-theme-darker: #ececec;
  --bg-main: hsl(199, 15%, 13%);
  --bg-darker: hsl(199, 15%, 12%);
  --bg-light: hsl(200, 23%, 28%);
  --body: rgb(120, 155, 171);
  --body-dark: hsl(199, 23%, 52%);
  --highlight: #ff4592;
  --bg-highlight: #db045d;
  --header-shadow: 0 2px 24px rgba(0, 0, 0, 0.225), 0 1px 2px rgba(0,0,0,.125);
  --header-height: 108px;
}

::selection {
  background-color: var(--highlight);
  color: white;
}

body {
  --bg: var(--bg-main);
  --text: var(--body);
  font-family: "Ringside Regular SSm A", "Ringside Regular SSm B", system-ui, sans-serif;
  font-size: 15px;
  margin: 0;
  background-color: var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media screen and (min-width: 900px) {
  body::-webkit-scrollbar {
    width: 10px;
    background: var(--bg-main);
  }
  body::-webkit-scrollbar-thumb {
    border-radius: 10px;
    background-color: var(--bg-dark);
  }
}

body.no-transition * {
  transition: none !important;
  transition-delay: 0s !important;
  --transition-duration: 0s !important;
}

ul {
  margin: 0;
  padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6,
blockquote {
  line-height: 1;
  margin: 0;
  font: inherit;
}

blockquote {
  font-style: italic;
  position: relative;
  display: flex;
  align-items: baseline;
  padding-left: 1em;
}
blockquote::before {
  content: "‟";
  position: absolute;
  width: 2em;
  height: 2em;
  top: -0.2em;
  left: -0.075em;
  font-size: 8em;
  opacity: 0.1;
  pointer-events: none;
}

a, a:visited {
  color: var(--highlight);
}

img {
  display: block;
  width: 100%;
  height: auto;
  image-rendering: -webkit-optimize-contrast;
}

label {
  user-select: none;
}

.comma-list-item {
  font-style: inherit;
}
.comma-list-item:not(:last-child):after {
  content: ", ";
}
.comma-list-item:nth-last-child(2):after {
  content: " ";
}
.comma-list-item:last-child:not(:first-of-type):before {
  content: "and ";
}
.comma-list-item:last-child:first-child:before {
  content: "";
}

.site-wrapper {
  display: flex;
  flex-direction: column-reverse;
  padding-top: var(--header-height);
}
@media screen and (min-width: 900px) {
  .site-wrapper {
    flex-direction: row;
    align-items: stretch;
    min-height: 100vh;
    padding-top: 0;
  }
}

.sidebar {
  background-color: var(--bg-darker, var(--bg-dark));
  --text: var(--body-dark);
}
@media screen and (min-width: 900px) {
  .sidebar {
    max-height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    flex: 256px 0 0;
    position: sticky;
    top: 0;
  }
  .sidebar::-webkit-scrollbar {
    width: 10px;
    background: var(--bg-main);
  }
  .sidebar::-webkit-scrollbar-thumb {
    border-radius: 10px;
    background-color: var(--bg-dark);
  }
}

.sidebar-header {
  display: flex;
  align-items: center;
  padding: 24px;
  background-color: inherit;
  font-size: 19px;
  font-weight: 700;
  color: white;
  height: var(--header-height);
  position: fixed;
  width: 100vw;
  top: 0;
  z-index: 9;
  box-shadow: var(--header-shadow);
  transition: box-shadow 0.3s ease-out;
}
@media screen and (min-width: 900px) {
  .sidebar-header {
    position: sticky;
    width: 100%;
  }
  .sidebar-header:not(.stuck) {
    box-shadow: none;
  }
  .sidebar-header.stuck {
    padding-top: 26px;
  }
}
.sidebar-header svg {
  width: 64px;
  height: 64px;
  margin-right: 0.75em;
  margin: -4px 0.75em 0 -4px;
}

.fonts-nav {
  padding: 12px 0;
}
@media screen and (min-width: 900px) {
  .fonts-nav {
    padding: 0;
  }
}

.contribute {
  margin: 18px 24px 12px;
  padding: 24px 0 12px;
  border-top: solid 1px var(--bg-light);
  font-size: 0.8em;
}
.contribute a {
  display: block;
  margin-top: 0.33em;
}

a.fonts-nav-link {
  display: block;
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  line-height: 1;
  padding: 12px;
  text-decoration: none;
  color: var(--text);
  transition: all 0.3s ease-out;
  margin: 0 12px;
  border-radius: 6px;
}
@media screen and (min-width: 900px) {
  a.fonts-nav-link {
    padding: 9px 12px;
  }
  a.fonts-nav-link:after {
    content: "";
    background-image: url("data:image/svg+xml,%3Csvg width='15' height='15' viewBox='0 0 15 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.65685 12.7929L10.7377 7.13605L7.65685 1.47919' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
    background-size: 100%;
    margin-right: -6px;
    width: 15px;
    height: 15px;
    display: block;
    opacity: 0;
    transform: translateX(-50%) scale(0.75);
  }
}
@media screen and (max-width: 400px) {
  a.fonts-nav-link {
    margin: 0 3px;
    padding: 12px 9px;
  }
}
a.fonts-nav-link:hover {
  color: white;
}
a.fonts-nav-link.active {
  background-color: var(--bg-highlight);
  color: white;
  font-weight: 700;
}
a.fonts-nav-link.active:after {
  opacity: 1;
  transform: none;
  transition: all 0.45s ease-out 0.075s;
}

.fonts-nav-item {
  animation: enter-fonts-nav-item 0.6s ease-in-out calc((var(--i) - (1 / (var(--i) * var(--i)))) * 0.05s + 0.3s) 1 backwards;
}
@keyframes enter-fonts-nav-item {
  from {
    opacity: 0;
    transform: translateX(-24px);
  }
}

@media screen and (min-width: 900px) {
  main {
    flex: 1;
  }
}
@media screen and (min-width: 1366px) {
  main {
    display: flex;
    margin-top: 72px;
    align-self: flex-start;
  }
}

.screenshot-stage {
  --transition-duration: 0.2333s;
  --transition-timing: ease-out;
  --transition: all var(--transition-duration) var(--transition-timing);
  position: relative;
  max-width: 100vw;
  flex: 1;
  margin: 24px;
  border-radius: 9px;
  overflow: hidden;
  user-select: none;
}
@media screen and (min-width: 1366px) {
  .screenshot-stage {
    margin: 12px;
    max-width: 100vh;
  }
}
@media screen and (max-width: 400px) {
  .screenshot-stage {
    margin: 6px;
  }
}
.screenshot-stage:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: var(--bg-dark);
  transition: background-color var(--transition-duration) cubic-bezier(0, 0.91, 0.11, 1);
  z-index: -1;
}
[value=light]:checked ~ .screenshot-stage:after {
  background-color: var(--bg-light-theme);
}
[value=light]:checked ~ .screenshot-stage .controls {
  background-color: var(--bg-light-theme-darker);
}
[value=light]:checked ~ .screenshot-stage .controls label {
  --inactive-text: var(--bg-dark);
}
@media screen and (min-width: 1366px) {
  .screenshot-stage {
    flex: 1600px 0 1;
    margin: 0;
    margin-left: 72px;
    border-radius: 18px;
    align-self: flex-start;
  }
}

.screenshot-wrapper {
  flex: 1;
  padding-bottom: 75%;
  max-width: 100%;
  position: relative;
}
.screenshot-wrapper .screenshot {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  transition: var(--transition);
}

.screenshot-controls {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 12px 0;
  z-index: 3;
  position: relative;
}
@media screen and (min-width: 900px) {
  .screenshot-controls {
    padding: 24px 24px 0;
  }
}
@media screen and (max-width: 400px) {
  .screenshot-controls {
    padding: 3px 3px 0;
  }
}
.screenshot-controls .controls {
  display: flex;
  background-color: var(--bg-light);
  padding: 3px;
  border-radius: 9px;
  transition: var(--transition);
  position: relative;
  font-size: 12px;
  font-weight: 500;
  --active: var(--bg-highlight);
}
.screenshot-controls .controls label {
  --inactive-text: white;
  display: block;
  line-height: 1;
  padding: 0.5em 1em;
  color: white;
  cursor: pointer;
  border-radius: 6px;
  background-color: var(--active);
  position: relative;
  z-index: 1;
}
.screenshot-controls .controls.with-widths:after {
  content: "";
  position: absolute;
  margin: 3px 0;
  top: 0;
  bottom: 0;
  background-color: var(--active);
  border-radius: 6px;
  z-index: 0;
  transition: all 0.15s ease-out;
}
[value=html]:checked ~ .screenshot-stage .screenshot-controls .controls.with-widths:after {
  left: var(--left-html);
  width: var(--width-html);
}
[value=css]:checked ~ .screenshot-stage .screenshot-controls .controls.with-widths:after {
  left: var(--left-css);
  width: var(--width-css);
}
[value=js]:checked ~ .screenshot-stage .screenshot-controls .controls.with-widths:after {
  left: var(--left-js);
  width: var(--width-js);
}
[value=charmap]:checked ~ .screenshot-stage .screenshot-controls .controls.with-widths:after {
  left: var(--left-charmap);
  width: var(--width-charmap);
}
.screenshot-controls .controls.with-widths label {
  --active: transparent;
}
.screenshot-controls .theme-controls {
  border-radius: 16px;
  width: 32px;
  height: 32px;
  margin-right: -2px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: transparent;
}
.screenshot-controls .theme-controls label {
  position: absolute;
  border-radius: inherit;
  padding: 16px;
  font-size: 20px;
  background-color: var(--bg-light);
  background-size: 1em;
  background-position: center;
  background-repeat: no-repeat;
  color: white;
  transition: var(--transition);
}
.screenshot-controls .theme-controls label[data-theme=dark] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round' class='css-i6dzq1'%3E%3Cpath d='M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z'%3E%3C/path%3E%3C/svg%3E");
}
.screenshot-controls .theme-controls label[data-theme=light] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' stroke='%232D2D2D' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round' class='css-i6dzq1'%3E%3Ccircle cx='12' cy='12' r='5'%3E%3C/circle%3E%3Cline x1='12' y1='1' x2='12' y2='3'%3E%3C/line%3E%3Cline x1='12' y1='21' x2='12' y2='23'%3E%3C/line%3E%3Cline x1='4.22' y1='4.22' x2='5.64' y2='5.64'%3E%3C/line%3E%3Cline x1='18.36' y1='18.36' x2='19.78' y2='19.78'%3E%3C/line%3E%3Cline x1='1' y1='12' x2='3' y2='12'%3E%3C/line%3E%3Cline x1='21' y1='12' x2='23' y2='12'%3E%3C/line%3E%3Cline x1='4.22' y1='19.78' x2='5.64' y2='18.36'%3E%3C/line%3E%3Cline x1='18.36' y1='5.64' x2='19.78' y2='4.22'%3E%3C/line%3E%3C/svg%3E");
  background-color: var(--bg-light-theme-darker);
}

[value=light]:not(:checked) ~ .screenshot-stage .screenshot-controls [data-theme=light] {
  opacity: 0;
  transition: opacity 0.3s ease-out;
  z-index: 2;
}
[value=light]:not(:checked) ~ .screenshot-stage .screenshot-wrapper [data-theme=light] {
  opacity: 0;
  pointer-events: none;
  transition: none;
}

[value=dark]:not(:checked) ~ .screenshot-stage .screenshot-controls [data-theme=dark] {
  opacity: 0;
  transition: opacity 0.3s ease-out;
  z-index: 2;
}
[value=dark]:not(:checked) ~ .screenshot-stage .screenshot-wrapper [data-theme=dark] {
  opacity: 0;
  pointer-events: none;
  transition: none;
}

[value=html]:not(:checked) ~ .screenshot-stage .screenshot-controls [data-language=html] {
  background-color: transparent;
  color: var(--inactive-text, white);
}
[value=html]:not(:checked) ~ .screenshot-stage .screenshot-wrapper [data-language=html] {
  opacity: 0;
  pointer-events: none;
}

[value=css]:not(:checked) ~ .screenshot-stage .screenshot-controls [data-language=css] {
  background-color: transparent;
  color: var(--inactive-text, white);
}
[value=css]:not(:checked) ~ .screenshot-stage .screenshot-wrapper [data-language=css] {
  opacity: 0;
  pointer-events: none;
}

[value=js]:not(:checked) ~ .screenshot-stage .screenshot-controls [data-language=js] {
  background-color: transparent;
  color: var(--inactive-text, white);
}
[value=js]:not(:checked) ~ .screenshot-stage .screenshot-wrapper [data-language=js] {
  opacity: 0;
  pointer-events: none;
}

[value=charmap]:not(:checked) ~ .screenshot-stage .screenshot-controls [data-language=charmap] {
  background-color: transparent;
  color: var(--inactive-text, white);
}
[value=charmap]:not(:checked) ~ .screenshot-stage .screenshot-wrapper [data-language=charmap] {
  opacity: 0;
  pointer-events: none;
}

.details {
  margin: 24px;
  word-break: break-word;
}
@media screen and (min-width: 1366px) {
  .details {
    flex: 314px 0 0;
    margin-right: 60px;
    margin: 22px 24px 24px 60px;
  }
}
@media screen and (max-width: 400px) {
  .details {
    margin: 12px;
  }
}
.details h2 {
  font-size: 32px;
  font-weight: 200;
  color: white;
}
.details a {
  display: block;
}
.details .designers {
  font-weight: 500;
}
@media screen and (min-width: 900px) {
  .details .enter {
    animation: enter-details 0.3s ease-in-out calc(var(--i) * 0.05s) 1 backwards;
  }
  @keyframes enter-details {
    from {
      opacity: 0;
      transform: translateY(3px);
    }
  }
}

ul.features {
  margin-top: 48px;
}
ul.features li {
  display: flex;
  justify-content: space-between;
}
ul.features li:not(:last-of-type) {
  padding-bottom: 1em;
  margin-bottom: 1em;
  border-bottom: solid 1px var(--bg-light);
}
ul.features span::first-letter {
  text-transform: uppercase;
}

.icon {
  display: block;
  background-size: contain;
  background-position: center;
}
.icon.v {
  width: 18px;
  height: 13px;
  background-image: url("data:image/svg+xml,%3Csvg width='18' height='13' viewBox='0 0 18 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17 1L6 12L1 7' stroke='%23789bab' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.icon.x {
  width: 14px;
  height: 14px;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13 1L1 13' stroke='%23789bab' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M1 1L13 13' stroke='%23789bab' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

button:focus:not(:focus-visible) {
  outline: none;
}

.modal {
  position: fixed;
  width: 100vw;
  height: 100vh;
  top: 0;
  left: 0;
  z-index: 10;
  display: flex;
  justify-content: center;
  align-items: center;
  color: var(--body);
}
.modal:before {
  content: "";
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: var(--bg-light);
  opacity: 0.85;
  transition: opacity 0.3s ease-out;
}
.modal .content {
  position: relative;
  background-color: var(--bg);
  padding: 36px;
  margin: 24px;
  border-radius: 24px;
  box-shadow: var(--header-shadow);
  transition: all 0.3s ease-out 0.15s;
}
.modal header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 12px;
}
.modal .close {
  --webkit-appearance: none;
  background-color: transparent;
  border: none;
  color: var(--body-dark);
  transition: color 0.15s ease-out;
  cursor: pointer;
}
.modal .close:hover {
  color: var(--body);
}
.modal li {
  list-style: none;
}
.modal h2 {
  font-size: 21px;
  font-weight: 500;
  color: white;
}
.modal h3 {
  margin-top: 12px;
  margin-bottom: 6px;
  color: white;
  font-weight: 500;
}
@media screen and (min-width: 900px) {
  .modal .shortcuts-categories {
    display: flex;
    flex-wrap: wrap;
  }
  .modal .shortcuts-categories > li {
    flex: 50% 0 0;
  }
}
.modal .shortcut {
  display: flex;
  align-items: baseline;
  font-size: 12px;
}
.modal .keyboard-key {
  display: inline-block;
  color: white;
  background-color: var(--bg-dark);
  padding: 0.15em 0.25em;
  border-radius: 3px;
  font-family: monospace;
  font-size: 15px;
  font-weight: bold;
  margin: 3px 6px 3px 0;
}
.modal.hidden {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
.modal.hidden:before {
  opacity: 0;
  transition: none;
}
.modal.hidden .content {
  opacity: 0;
  transition: none;
  transform: scale(0.97);
}

.modal-toggle {
  --webkit-appearance: none;
  background-color: transparent;
  color: inherit;
  border: none;
  font-size: 18px;
  position: fixed;
  bottom: 0;
  left: calc(256px - 2em - 12px);
  padding: 6px;
  transition: opacity 0.15s ease-out;
  cursor: pointer;
  display: none;
}
@media screen and (min-width: 900px) {
  .modal-toggle {
    display: block;
  }
}
.modal-toggle:not(:hover) {
  opacity: 0.25;
}
.modal-toggle svg {
  width: 1em;
}
.modal-toggle path {
  fill: var(--body-dark);
}

/*# sourceMappingURL=style.css.map */
