@import "https://fonts.googleapis.com/css?family=Roboto:400,500,700&display=swap";

/* app/public/src/pages/component/icons/synergy-icon.css */
.synergy-icon {
  width: 40px;
  height: 40px;
  filter: drop-shadow(2px 2px 0px #505261);
  vertical-align: bottom;
}

/* app/public/src/pages/component/profile/elo-badge.css */
.elo.badge {
  display: flex;
  align-items: center;
  flex: 0 0 calc(48px + 3em);
  gap: 5px;
  padding: 0;
  font-size: 1em;
}
.badge img {
  width: 40px;
  height: 40px;
}
@media (max-width: 640px) {
  .badge img {
    width: 25px;
    height: 25px;
  }
}

/* app/public/src/pages/component/profile/role-badge.css */
.badge {
  display: inline-block;
  padding: .25em .4em;
  font-size: 75%;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: .25rem;
}
.badge.admin {
  background-color: #28a745;
}
.badge.moderator {
  background-color: #007bff;
}
.badge.basic {
  background-color: #6c757d;
}
.badge.bot {
  background-color: #6c757d;
}
.badge.bot-manager {
  background-color: #dc3545;
}
.badge.banned {
  background-color: red;
}

/* app/public/src/pages/component/profile/avatar.css */
.avatar.player.my-box {
  display: flex;
  align-items: center;
  padding: 0;
  gap: 12px;
  overflow: hidden;
}
.player-portrait {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
}
.avatar .pokemon-portrait {
  width: 60px;
  height: 60px;
  border-radius: 10px 0 0 10px;
}
.player-name {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.player-title-role {
  display: flex;
  align-content: center;
  align-items: center;
  gap: 4px;
  font-size: 1.25rem;
}
.player-title-role .player-title {
  margin: 0;
  font-size: 1rem;
}
.player-title {
  color: var(--color-fg-gold);
}
.avatar .elo {
  margin-right: 8px;
}
.avatar .elo img {
  height: 45px;
  width: 45px;
}

/* app/public/src/pages/component/after/team.css */
.player-team-pokemons {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  gap: 8px;
  margin: 0;
}
.player-team-pokemons li {
  position: relative;
}
.player-team-pokemons .pokemon-portrait {
  width: 60px;
  height: 60px;
  margin: 10px 0;
}
.player-team-pokemons .pokemon-items {
  position: absolute;
  top: 70px;
  left: 0;
  display: flex;
}
.player-team-pokemons .pokemon-items img {
  width: 20px;
  height: 20px;
  image-rendering: pixelated;
}

/* app/public/src/pages/component/after/after-menu.css */
.after-menu {
  text-align: center;
}
.after-menu .my-container {
  display: inline-block;
  max-width: 98vw;
  max-height: calc(100vh - 8vw);
  margin: auto;
  color: white;
  padding: 0.5em 1em;
  overflow: auto;
}
.after-menu .gamemode {
  margin-bottom: 0.5em;
}
.after-menu .player-rank {
  font-size: 4rem;
  color: white;
  text-shadow: 4px 4px 0 black;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
}
.after-menu .player-gains {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
}
.after-menu .player-elo,
.after-menu .player-exp {
  font-size: 1.5 rem;
  color: white;
  text-shadow: 2px 2px 0 black;
}
.after-menu .player-rank img {
  height: 48px;
}
.after-menu table th {
  text-transform: capitalize;
}
.after-menu table td {
  padding: 8px;
}
.after-menu table td:first-child {
  font-size: 2rem;
  color: white;
  text-shadow: 4px 4px 0 black;
  width: 80px;
}
.after-menu table td p {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 4px;
}
.after-menu .player-team-synergies {
  display: flex;
  align-items: center;
  padding: 0;
}
.after-menu .player-team-synergies img:not(:first-of-type) {
  margin-left: 0.5em;
}

/* app/public/src/pages/component/ability/ability-tooltip.css */
.damage-physical {
  color: #ff6e55;
}
.damage-special {
  color: #7fc9ff;
}
.damage-true {
  color: #ffd800;
}
.description-icon {
  white-space: nowrap;
}
.description-icon > img,
img.description-icon {
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  margin-right: 3px;
  vertical-align: bottom;
}
h2 .description-icon > img {
  vertical-align: -0.15em;
  width: 1em;
  height: 1em;
}
.description-icon.icon-star {
  width: 1.25em;
  height: 1.25em;
  vertical-align: -0.25em;
}
.ability-description {
  white-space: pre-line;
}
.ability-value {
  color: rgb(171, 171, 171);
  font-weight: 500;
}
.ability-value .active {
  color: rgb(255, 255, 255);
}
.scales-ap .ability-value {
  color: #440093;
}
.scales-ap .ability-value .active {
  color: #d172ff;
}
.scales-luck .ability-value {
  color: #07c552;
}
.scales-luck .ability-value .active {
  color: #2aed72;
}
.stat-label {
  color: rgb(171, 171, 171);
  white-space: normal;
  font-weight: 500;
}
.status-label {
  color: #f5a9a9;
  font-weight: 500;
}
.status-label.positive {
  color: #a9f5ad;
}
.item-label {
  color: rgb(190, 190, 190);
  font-weight: 500;
}

/* app/public/src/pages/component/game/game-pokemon-detail.css */
.game-pokemon-detail {
  color: #fff;
  font-size: 16px;
  display: grid;
  position: relative;
  max-width: 320px;
  gap: 5px;
  grid-template-columns: 88px 1fr auto;
}
.react-tooltip.game-pokemon-detail-tooltip,
.my-container.game-pokemon-detail-tooltip {
  padding: 5px;
}
.game-pokemon-detail p {
  margin: 0;
}
.game-pokemon-detail-entry {
  display: flex;
  flex-direction: column;
  align-items: start;
  justify-content: start;
}
.game-pokemon-detail-entry-name {
  text-transform: capitalize;
  font-size: 1.2em;
  font-weight: 600;
}
.game-pokemon-detail-entry-rarity {
  text-transform: uppercase;
  font-size: 90%;
}
.game-pokemon-detail-portrait {
  width: 80px;
  height: 80px;
  border-style: solid;
  border-width: 4px;
  border-radius: 8px;
  image-rendering: pixelated;
  box-sizing: content-box;
}
.game-pokemon-detail-portrait-hint {
  width: 60px;
  height: 60px;
  position: absolute;
  top: 23px;
  left: 7px;
  border-radius: 50%;
  image-rendering: pixelated;
  filter: grayscale(1) contrast(0.2) brightness(1.8);
}
.game-pokemon-detail-types {
  display: flex;
  flex-wrap: wrap;
}
.game-pokemon-detail-stats {
  grid-column: span 3;
  display: grid;
  grid-template: 32px 32px / repeat(5, 1fr);
}
.in-shop .game-pokemon-detail-stats,
.in-board .game-pokemon-detail-stats {
  grid-template: 32px 32px / repeat(4, 1fr);
}
.game-pokemon-detail-stats > div {
  white-space: nowrap;
  overflow: visible;
}
.game-pokemon-detail-stats img {
  width: 32px;
  height: 32px;
}
.game-pokemon-detail-stats img + span {
  display: inline-block;
  vertical-align: middle;
  font-weight: 500;
  font-size: 90%;
}
.game-pokemon-detail-stat-range {
  grid-row: span 2;
  display: flex;
  align-items: center;
}
.game-pokemon-detail-stats .game-pokemon-detail-stat-range img + span {
  display: inline-block;
  margin: 0.5em;
  font-size: 120%;
}
.game-pokemon-detail-stats .negative {
  color: red;
}
.game-pokemon-detail-dish {
  grid-column: span 3;
  display: grid;
  grid-template-columns: 50px 1fr;
  align-items: center;
  background-color: #4f5160;
  margin: 0 -5px -7px -5px;
  padding: 0 2px 5px 2px;
}
.game-pokemon-detail-dish-name {
  grid-column: span 2;
  padding: 5px;
  display: flex;
  justify-content: start;
  align-items: center;
  gap: 0.5em;
  font-size: 1em;
  font-style: italic;
}
.game-pokemon-detail-dish-icon {
  width: 45px;
  height: 45px;
}
.game-pokemon-detail-ult {
  grid-column: span 3;
}
.game-pokemon-detail-ult .ability-name {
  background-color: #4f5160;
  text-transform: capitalize;
  font-variant: small-caps;
  padding: 0.25em 5px;
  margin: 0 -5px 4px -5px;
  font-size: 1.2em;
  box-shadow: 0 -1px 2px rgb(0 0 0 / 50%);
}
.game-pokemon-detail-ult .custom-description {
  background-color: #4f5160;
  padding: 0.25em 0.5em;
  margin: 0 -5px -5px -5px;
}
.game-pokemon-detail-passive {
  grid-column: span 3;
  font-style: italic;
  background-color: #4f5160;
  padding: 0.25em 5px;
  margin: 0 -5px -5px -5px;
  font-size: 1em;
  box-shadow: 0 -1px 1px rgb(0 0 0 / 50%);
  white-space: pre-wrap;
}
.game-pokemon-detail-passive:last-child {
  border-radius: 0 0 8px 8px;
}

/* app/public/src/game/components/item-detail.css */
.game-item-detail {
  min-width: 200px;
  max-width: 400px;
  color: white;
  display: grid;
  font-size: 1.2rem;
  grid-template-columns: 55px 1fr;
  grid-template-areas: "icon name" "icon stats" "description description" "combinations combinations";
}
.item-detail-tooltip.my-container {
  padding: 5px;
}
.game-item-detail-icon {
  width: 45px;
  height: 45px;
  align-self: center;
  image-rendering: pixelated;
  object-fit: contain;
  grid-area: icon;
}
.game-item-detail-name {
  grid-area: name;
  margin: 0;
  white-space: nowrap;
  font-weight: 500;
}
.game-item-recipe {
  float: right;
}
.game-item-recipe img {
  width: 22.5px;
  height: 22.5px;
  image-rendering: pixelated;
  object-fit: contain;
}
.game-item-detail-stats {
  grid-area: stats;
  display: flex;
  gap: 1em;
  font-size: 80%;
  margin: 0 0 0.5em 0;
  align-items: center;
  line-height: 1;
  min-height: 15px;
}
.game-item-detail-stats > div {
  display: flex;
  align-items: center;
}
.game-item-detail-stats img {
  width: 20px;
  height: 20px;
}
.game-item-detail-description {
  grid-area: description;
  background-color: #4f5160;
  box-shadow: 0 -1px 2px rgb(0 0 0 / 50%);
  padding: 0.25em 0.5em;
  margin: 0 -5px 4px -5px;
  font-size: 0.8em;
  z-index: 2;
  white-space: pre-line;
}
.game-item-detail-description:last-child,
.react-tooltip .game-item-detail-description:last-child {
  margin-bottom: -5px;
  border-radius: 0 0 8px 8px;
}
.game-item-detail-combinations {
  display: flex;
  justify-content: space-between;
  grid-area: combinations;
  gap: 0.5em;
}
.game-item-detail-combination {
  display: flex;
  flex-flow: column;
  justify-content: space-between;
}
.game-item-detail-combination > p {
  margin: 0;
  font-size: 60%;
  text-shadow: 0 0 2px black;
  text-align: center;
}
.game-item-detail-combination > img {
  width: 20px;
  height: 20px;
}

/* app/public/src/pages/component/typeahead/pokemon-typeahead.css */
.pokemon-typeahead .form-control {
  color: #fff;
  background-color: #40404080;
  font-size: 1em;
  border-radius: 12px;
  width: 100%;
  border: var(--border-thin);
  padding: 0 0.75rem;
  min-height: 1em;
}
.pokemon-typeahead .form-control::placeholder {
  color: #ccc;
}

/* app/public/src/pages/component/wiki/wiki-pokemon-detail.css */
.wiki-pokemon-detail {
  display: grid;
  grid-template-columns: calc(320px + 1em) 18em 14em 1fr;
  gap: 1em;
  padding: 0.5em 0;
}
.wiki-pokemon-detail .game-pokemon-detail-tooltip {
  background-color: var(--color-bg-primary);
  color: #fff;
  padding: 5px;
  align-self: start;
  margin: 0;
  max-width: 330px;
}
.wiki-pokemon-detail dl {
  display: grid;
  grid-template-columns: 12ch auto;
  height: fit-content;
}
.wiki-pokemon-detail dt {
  display: inline-block;
  text-align: right;
  color: #ccc;
}
.wiki-pokemon-detail dd {
  text-align: left;
  white-space: pre-line;
  margin: 0;
}
.wiki-pokemon-detail dt::after {
  content: ":";
  margin-right: 1ch;
}
.wiki-pokemon-detail dd::after {
  content: "";
  display: block;
}
.wiki-pokemon-detail dl:nth-child(3) {
  grid-template-columns: 16ch auto;
}
.wiki-pokemon-detail dl:nth-child(3) dt {
  text-align: left;
}
.wiki-pokemon-detail dd ul {
  margin: 0;
}
@media (width <= 640px) {
  .wiki-pokemon-detail {
    display: block;
  }
}

/* app/public/src/pages/component/checkbox/checkbox.css */
.checkbox-container {
  display: flex;
  align-items: center;
  gap: 4px;
  cursor: var(--cursor-hover);
  margin: 0;
}
.checkbox-container span {
  line-height: 1;
}

/* app/public/src/pages/component/wiki/wiki.css */
#wiki-page {
  color: white;
  width: min(95vw, 1800px);
  max-width: 100%;
}
#wiki-page h2 {
  display: flex;
  align-items: center;
  gap: 4px;
}
#wiki-page ul {
  padding: 0;
}
#wiki-page li {
  list-style: none;
}
#wiki-page li[role=tab] {
  text-transform: uppercase;
}
#wiki-page li[role=tab] > img.pokemon-portrait {
  display: block;
  margin: -6px -12px;
}
#wiki-page .wiki-types li[role=tab] {
  padding: 4px;
  line-height: 40px;
  min-width: 48px;
  text-align: center;
}
#wiki-page .synergy-overlaps {
  display: grid;
  max-width: 300px;
  grid-template-columns: repeat(auto-fit, 80px);
  gap: 0.5em;
  margin: 1em;
}
.synergy-overlaps li {
  display: flex;
  align-items: center;
  background-color: var(--color-bg-secondary);
  border-radius: 8px;
  background-color: var(--color-bg-secondary);
  border: var(--border-extra-thin);
  cursor: var(--cursor-hover);
}
.synergy-overlaps li.active {
  background-color: var(--color-bg-accent);
}
.synergy-overlaps li > img:nth-child(2) {
  margin-left: -25px;
  z-index: 2;
}
#wiki-page > .react-tabs > .react-tabs__tab-panel {
  height: 75vh;
  padding: 0.5em 0 40px 0;
  overflow-y: auto;
  scrollbar-gutter: stable;
}
#wiki-page .pokemon-name {
  text-transform: capitalize;
}
#wiki-page .pokemon-portrait {
  margin: 2px;
}
#wiki-page .pokemon-portrait > img {
  display: block;
  border-radius: 2px;
}
#wiki-page .pokemon-typeahead {
  float: right;
  font-size: 80%;
  padding: 0px 16px 0px 8px;
}
#wiki-page p.description {
  line-height: 1.2em;
}
#wiki-page .wiki-faq summary {
  color: var(--color-fg-green);
}
#wiki-page .wiki-faq details {
  margin-bottom: 0.5em;
}
#wiki-page .wiki-status,
#wiki-page .wiki-stat {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20em, 1fr));
  gap: 0.5em;
}
#wiki-page .wiki-status li {
  list-style: none;
  display: grid;
  grid-template: auto 1fr / 30% 1fr;
  padding: 0.5em;
  min-height: calc(122px + 1em);
  column-gap: 0.5em;
}
#wiki-page .wiki-status h2 {
  margin: 0;
  font-size: 2rem;
}
#wiki-page .wiki-stat h2 {
  margin: 0;
}
#wiki-page .wiki-stat li {
  list-style: none;
  display: grid;
  grid-template: auto 1fr / 80px 1fr;
}
#wiki-page .wiki-status li > img,
#wiki-page .wiki-stat li > img {
  grid-row: 1 / 3;
  width: 100%;
}
#wiki-page .wiki-status li > img {
  border-radius: 8px;
  border: 2px solid #000000;
}
#wiki-page .wiki-stat li > img {
  width: 64px;
  height: 64px;
  margin-right: 10px;
}
#wiki-page .wiki-status li .status-label {
  white-space: initial;
}
#wiki-page .wiki-tutorials ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  padding: 0;
}
#wiki-page .wiki-tutorials h3 {
  margin: 0;
}
#wiki-page .wiki-tutorials iframe {
  width: 560px;
  height: 315px;
  max-width: 100%;
}
#wiki-page .wiki-types .pokemon-portrait {
  display: inline-block;
}
#wiki-pokemons-all section {
  border-top: 4px solid currentColor;
}
#wiki-types-all section {
  border-top: 4px solid #40404080;
}
#wiki-pokemons-all section ul,
#wiki-types-all section ul {
  display: flex;
  flex-wrap: wrap;
}
#wiki-weather > ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20em, 1fr));
  gap: 0.5em;
}
#wiki-weather > ul > .my-box {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
}
#wiki-ability h2 {
  margin: 0;
  font-size: 2rem;
}
#wiki-ability > ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20em, 1fr));
  gap: 0.5em;
  margin: 0;
}
#wiki-ability > ul > .my-box {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
#wiki-regions > ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20em, 1fr));
  gap: 0.5em;
}
#wiki-regions > ul > .my-box {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
  position: relative;
}
#wiki-regions > ul > .my-box > img {
  border: 1px solid #000000;
  border-radius: 4px;
  box-shadow: 2px 2px 0 #00000060;
  image-rendering: pixelated;
  height: 250px;
  object-fit: cover;
}
#wiki-regions .my-box h2 {
  margin: 0;
  font-size: 1.5rem;
}
#wiki-regions .wiki-regional-mons {
  position: absolute;
  bottom: 1em;
  left: 1em;
  right: 1em;
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}
#wiki-weather .my-box header {
  display: flex;
  align-items: center;
  gap: 0.5em;
}
#wiki-weather .my-box h2 {
  flex: 1;
  margin: 0;
  font-size: 2rem;
}
#wiki-weather .my-box header .weather-icon {
  aspect-ratio: 1 / 1;
  height: 40px;
}
#wiki-weather .my-box p {
  margin: 0;
  white-space: pre-line;
}
#wiki-weather .my-box ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  padding: 0;
  margin: 0;
}
#wiki-ability .my-box ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  padding: 0;
}
#wiki-ability .my-box p {
  font-size: 0.8em;
}
#wiki-ability img.item {
  width: 45px;
  height: 45px;
}
#wiki-items {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr auto;
  justify-content: space-evenly;
}
#wiki-items article {
  padding: 1em;
}
#wiki-items ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  padding: 0;
  margin: 0;
}
#wiki-items .craftable table {
  margin: 1em;
}
#wiki-items .berries {
  grid-column: 1 / 3;
}
#wiki-items article:nth-child(n+3) {
  grid-column: 1 / 3;
}
#wiki-items img.item {
  width: 45px;
  height: 45px;
  cursor: var(--cursor-hover);
  margin: 8px;
}
#wiki-items img.tree {
  image-rendering: pixelated;
  width: 50px;
  margin: -8px 8px 0 8px;
}
#wiki-items th,
#wiki-items td:first-child {
  background-color: var(--color-bg-secondary);
}
#wiki-items tr:nth-child(odd),
#wiki-items td:nth-child(n+2) {
  background-color: var(--color-bg-primary);
}
#wiki-data {
  padding: 0 0.5em;
}
#wiki-data table {
  text-align: center;
  table-layout: fixed;
  background-color: var(--color-bg-secondary);
}
#wiki-data thead {
  border-bottom: 2px solid currentColor;
}
#wiki-data th,
#wiki-data td {
  padding: 0 0.5em;
}
#wiki-data-tiers-by-level th,
#wiki-data-booster-rarity-probability th {
  width: 10ch;
}
#wiki-page input[type=search] {
  display: block;
  margin: 0.5em 0 0.5em auto;
  width: auto;
}
@media (width <= 960px) {
  #wiki-items {
    display: block;
  }
  #wiki-items img.item {
    width: 24px;
    height: 24px;
    margin: 4px;
  }
  #wiki-page .wiki-types li[role=tab] {
    padding: 4px;
  }
}

/* app/public/src/pages/component/modal/modal.css */
#modal-root {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: grid;
  place-content: center center;
  z-index: 100;
  pointer-events: none;
}
dialog::backdrop {
  background-color: #00000080;
}
.modal {
  position: relative;
  max-width: 95vw;
  width: fit-content;
  background: transparent;
  border: none;
  pointer-events: all;
}
.modal.my-container {
  padding: 0;
}
.modal[open] {
  animation: modal-slide-in 0.3s forwards;
}
@keyframes modal-slide-in {
  0% {
    top: -10vh;
    opacity: 0;
  }
  100% {
    top: 0;
    opacity: 1;
  }
}
.modal.anchor-top {
  margin: 2.5vh auto;
}
.modal > header {
  border-bottom: var(--border-thin);
  background-color: var(--color-bg-secondary);
  color: white;
  padding: 0.5em;
  text-align: center;
}
.modal > header .close-btn {
  float: right;
  padding: 0.5em;
  margin: -0.5em 0;
  cursor: var(--cursor-hover);
  appearance: none;
  background: transparent;
  border: none;
  color: white;
  font-size: 1em;
}
.modal-body {
  padding: 0.5em;
  color: white;
  max-height: 90vh;
  overflow-y: auto;
}
.modal > footer {
  display: flex;
  justify-content: end;
  flex-direction: row-reverse;
  border-top: var(--border-thin);
  background-color: var(--color-bg-secondary);
  color: white;
  padding: 0.5em 1em;
  gap: 1em;
}
.modal.custom-bg {
  background-attachment: local;
  background-position: center;
}
@media (width <= 640px) {
  .modal {
    width: 95vw;
  }
}

/* app/public/src/game/components/emote-menu.css */
.emote-menu ul {
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 4px;
}
.emote-menu li {
  display: block;
  list-style: none;
  position: relative;
}
.emote-menu li img {
  width: 80px;
  height: 80px;
  image-rendering: pixelated;
  border: 1px solid #000000;
  border-radius: 4px;
  box-shadow: 2px 2px #00000060;
}
.emote-menu li .counter {
  position: absolute;
  bottom: 0;
  left: 0.25em;
  opacity: 0.5;
  color: black;
  font-size: 1em;
  text-shadow:
    -1px -1px 0 #fff,
    1px -1px 0 #fff,
    -1px 1px 0 #fff,
    1px 1px 0 #fff;
}
.emote-menu li img.locked {
  filter: grayscale(1) contrast(0.5);
}
.emote-menu li img:not(.locked) {
  cursor: var(--cursor-hover);
}

/* app/public/src/pages/component/icons/money.css */
.icon-money {
  display: inline-block;
  vertical-align: middle;
  image-rendering: auto;
  width: 1em;
  height: 1em;
  filter: drop-shadow(1px 1px 0px 505261);
}

/* app/public/src/pages/component/game/game-pokemon-portrait.css */
.game-pokemon-portrait {
  position: relative;
  --container-height: 6vw;
  --portrait-size: calc(var(--container-height) - 5px);
  width: 7.5vw;
  height: var(--container-height);
  image-rendering: pixelated;
  padding: 0;
  background-repeat: no-repeat;
  background-size: contain;
  cursor: var(--cursor-hover);
}
.game-pokemon-portrait .synergy-icon {
  width: 1.4vw;
  height: 1.4vw;
}
.game-pokemon-portrait.empty {
  border-color: transparent;
}
.game-pokemon-portrait.shimmer {
  box-shadow: 0 0 4px #ffffff80;
}
.game-pokemon-portrait.disabled {
  filter: contrast(0.8) brightness(0.8);
}
.game-pokemon-portrait-cost {
  position: absolute;
  left: 5px;
  bottom: 0;
  line-height: 1.2vw;
  display: flex;
  align-items: center;
  color: black;
}
.game-pokemon-portrait-cost > span {
  font-size: 1.2em;
  text-shadow:
    -1px -1px 0 #fff,
    1px -1px 0 #fff,
    -1px 1px 0 #fff,
    1px 1px 0 #fff;
  margin: 0 2px 0 0;
}
.game-pokemon-portrait-types {
  list-style-type: none;
  padding: 0;
  display: flex;
  position: absolute;
  justify-content: start;
  flex-direction: column;
  top: 0;
  right: 0;
  height: 100%;
}
.game-pokemon-portrait-types img {
  display: block;
}
.game-pokemon-portrait-evolution,
.game-pokemon-portrait-planned-icon {
  position: absolute;
  top: 4px;
  left: 4px;
}
.game-pokemon-portrait-evolution-icon {
  display: inline-block;
  width: 22px;
  height: 22px;
  image-rendering: pixelated;
  margin-left: 4px;
  vertical-align: middle;
}
.game-pokemon-portrait-evolution-portrait {
  width: 40px;
  height: 40px;
  border: 1px solid white;
  border-radius: 4px;
  image-rendering: pixelated;
}
.game-pokemon-portrait-planned-icon {
  width: 1.4vw;
  height: 1.4vw;
  animation: rotateY 1s linear infinite;
}
@keyframes rotateY {
  0% {
    transform: rotateY(0deg);
  }
  100% {
    transform: rotateY(360deg);
  }
}
.game-pokemon-portrait-duo-part {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 4px;
  width: var(--portrait-size);
  height: var(--portrait-size);
  background-size: contain;
  background-repeat: no-repeat;
  border-radius: 8px;
  image-rendering: pixelated;
}
.game-pokemon-portrait-duo-part-down {
  clip-path: polygon(0 calc(var(--portrait-size) * 0.5), var(--portrait-size) calc(var(--portrait-size) * 0.52), var(--portrait-size) var(--portrait-size), 0 var(--portrait-size));
  background-position: 0 calc(var(--portrait-size) * 0.2);
}
.game-pokemon-portrait-duo-part-up {
  clip-path: polygon(0 calc(var(--portrait-size) * 0.5), var(--portrait-size) calc(var(--portrait-size) * 0.48), var(--portrait-size) 0, 0 0);
  transform: scaleX(-1);
  background-position: 0 calc(var(--portrait-size) * -0.25);
}

/* app/public/src/pages/component/progress-bar/progress-bar.css */
.progress {
  display: flex;
  height: 1rem;
  overflow: hidden;
  font-size: .75rem;
  background-color: #e9ecef;
}
.progress,
.progress-stacked {
  display: flex;
  height: 16px;
  overflow: hidden;
}
.progress-bar {
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #fff;
  text-align: center;
  background-color: #007bff;
  transition: width .6s ease;
}
.progress-stacked > .progress {
  overflow: visible;
}
.progress-stacked > .progress > .progress-bar {
  width: 100%;
}
.my-progress {
  border-image-slice: none;
  border-image-width: none;
  border-image-repeat: none;
  border-image-source: none;
  border-image-outset: none;
  border-radius: 12px;
  border: var(--border-thin);
  width: 100%;
  height: 48px;
  margin: 4px;
  background-color: var(--color-bg-secondary);
  color: white;
  appearance: none;
  -webkit-appearance: none;
}
.my-progress::-webkit-progress-bar {
  background-color: var(--color-bg-secondary);
  border-radius: 12px;
}
.my-progress::-webkit-progress-value {
  background-color: var(--color-bg-accent);
  border-radius: 8px;
}
.my-progress::-moz-progress-bar {
  background-color: var(--color-bg-accent);
  border-radius: 12px;
}
.my-progress::-ms-fill {
  background-color: var(--color-bg-secondary);
  border: none;
  border-radius: 12px;
}

/* app/public/src/pages/component/game/game-dps-meter.css */
#root .game-dps-meter {
  position: absolute;
  right: 6vw;
  top: calc(1.5% + 10px + 2vw);
  width: 320px;
  display: flex;
  flex-flow: column;
  justify-content: space-between;
  padding: 10px;
  overflow-y: scroll;
  max-height: 78%;
  color: #fff;
}
.game-dps-meter header {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5em;
  text-align: center;
}
.game-dps-meter header img {
  width: 60px;
  height: 60px;
}
.game-dps-meter .react-tabs__tab-list {
  display: flex;
  justify-content: space-evenly;
  margin-top: 0.5em;
  font-size: 1rem;
}
.game-dps-meter .react-tabs__tab-panel {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.game-dps-meter .react-tabs__tab-panel > p {
  grid-column: span 2;
  text-align: center;
  margin-bottom: 0.5em;
  font-size: 0.8em;
}
.game-dps-bar {
  display: flex;
  align-items: center;
  width: 90%;
  margin-bottom: 0.5em;
}
.game-dps-bar img {
  width: 40px;
  height: 40px;
}
.game-dps-progress-wrapper {
  display: flex;
  flex-flow: column;
  justify-content: space-around;
  margin-left: 5px;
  width: 100%;
}
.game-dps-progress-wrapper p {
  position: relative;
  margin-top: -6px;
  margin-bottom: -6px;
  margin-left: 4px;
}
.game-dps-progress-wrapper .my-progress {
  height: 14px;
  border-width: 2px;
  border-image-outset: 1.5;
  box-shadow: 1px 1px 0 #00000060;
}
#game-dps-icon {
  position: absolute;
  right: 6vw;
  top: 0.5%;
  padding: 5px;
  background-color: var(--color-bg-primary);
}
#root #game-dps-icon:hover {
  filter: brightness(1.25);
}
#game-dps-icon img {
  height: 2vw;
  width: 2vw;
}

/* app/public/src/pages/component/game/game-final-rank.css */
.game-final-rank {
  position: fixed;
  z-index: 10;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: grid;
  justify-content: center;
  align-content: center;
  text-align: center;
  color: white;
  background-color: rgba(0, 0, 0, 0.25);
}
.game-final-rank .my-container {
  position: relative;
  top: -10vh;
  padding: 1em;
}
.game-final-rank .rank {
  font-size: 3em;
  font-weight: 700;
  text-shadow: .05em .05em .1em black;
}
.game-final-rank .waiting {
  font-size: 1em;
}
.game-final-rank .actions {
  display: flex;
  gap: 1em;
  justify-content: center;
}

/* app/public/src/pages/component/game/game-items-proposition.css */
.game-items-proposition {
  position: absolute;
  top: 30%;
  left: 50%;
  transform: translateX(-50%);
  pointer-events: none;
}
.game-items-proposition .active {
  cursor: var(--cursor-hover);
  pointer-events: initial;
}
.game-items-proposition-list {
  display: flex;
  gap: 1vw;
  justify-content: center;
  color: white;
}
.game-items-proposition .show-hide-action {
  display: flex;
  justify-content: center;
  margin: 1em;
}

/* node_modules/react-circular-progressbar/dist/styles.css */
.CircularProgressbar {
  width: 100%;
  vertical-align: middle;
}
.CircularProgressbar .CircularProgressbar-path {
  stroke: #3e98c7;
  stroke-linecap: round;
  -webkit-transition: stroke-dashoffset 0.5s ease 0s;
  transition: stroke-dashoffset 0.5s ease 0s;
}
.CircularProgressbar .CircularProgressbar-trail {
  stroke: #d6d6d6;
  stroke-linecap: round;
}
.CircularProgressbar .CircularProgressbar-text {
  fill: #3e98c7;
  font-size: 20px;
  dominant-baseline: middle;
  text-anchor: middle;
}
.CircularProgressbar .CircularProgressbar-background {
  fill: #d6d6d6;
}
.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background {
  fill: #3e98c7;
}
.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text {
  fill: #fff;
}
.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path {
  stroke: #fff;
}
.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail {
  stroke: transparent;
}

/* app/public/src/pages/component/game/game-player-loading.css */
.game-player-loading {
  transform: translate(-50%, -50%);
  color: white;
}
.game-player-loading-icon {
  height: 8vh;
  width: 8vh;
  background-size: cover;
  border-radius: 50%;
  image-rendering: pixelated;
  box-shadow: inset 0 0 0 0.8vh black;
  margin: auto;
}
.game-player-loading-icon .CircularProgressbar {
  transform: scale(1);
  transition: all 100ms ease-out;
  border-radius: 50%;
  border: 1px solid black;
}
.game-player-loading-icon .CircularProgressbar-path {
  stroke: #f7d51d;
}
.game-player-loading-icon .CircularProgressbar-trail {
  stroke: var(--color-shadow);
}
.game-player-loading p {
  text-align: center;
}

/* app/public/src/pages/component/game/game-loading-screen.css */
.game-loading-screen {
  position: fixed;
  width: 100vw;
  height: 100vh;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: black;
  text-align: center;
}
.game-loading-screen li {
  list-style: none;
}
.game-loading-screen .loading-bar {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 20vw;
  right: 20vw;
  color: white;
}
.game-loading-screen .loading-bar p {
  text-align: center;
  font-size: 28pt;
}
.game-loading-screen .loading-hint {
  position: absolute;
  width: 14vw;
  right: 2vw;
  bottom: 0;
}
.game-loading-screen .loading-hint img {
  width: 80%;
}
.game-loading-screen .error {
  color: red;
}
.game-loading-screen button {
  margin: auto;
}
.game-loading-screen footer {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 1rem;
  color: white;
  font-size: 1rem;
}
.speech-bubble {
  position: relative;
  background: #ffffff;
  border-radius: .4em;
  padding: 0.5em 0.25em;
}
.speech-bubble:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 0;
  border: 20px solid transparent;
  border-top-color: #ffffff;
  border-bottom: 0;
  border-left: 0;
  margin-left: -10px;
  margin-bottom: -19px;
}

/* app/public/src/pages/component/icons/life.css */
.icon-life {
  display: inline-block;
  vertical-align: middle;
  image-rendering: auto;
  width: 1em;
  height: 1em;
  filter: drop-shadow(1px 1px 0px 505261);
}

/* app/public/src/pages/component/game/game-player.css */
.game-player {
  cursor: var(--cursor-hover);
  height: 6.5vh;
  width: 6.5vh;
  position: absolute;
  right: 0.5%;
  background-size: cover;
  border-radius: 50%;
  image-rendering: pixelated;
  box-shadow: inset 0 0 0 0.8vh black;
}
.game-player .CircularProgressbar {
  transform: scale(1);
  transition: all 100ms ease-out;
  border-radius: 50%;
  border: 1px solid black;
}
.game-player .CircularProgressbar-path {
  stroke: #f7d51d;
}
.game-player .CircularProgressbar-trail {
  stroke: var(--color-shadow);
}
.game-player.spectated {
  box-shadow: inset 0 0 0 0.4vh black;
}
.game-player.spectated .CircularProgressbar {
  transform: scale(1.25);
  border-width: 4px;
}
.game-player.self .CircularProgressbar-trail {
  stroke-width: 12px;
}
.game-player.self .CircularProgressbar-path {
  stroke: #01ff01;
  stroke-width: 12px;
}
.game-player.dead {
  filter: grayscale(1) brightness(0.5);
}
.game-player .life-text {
  margin: -0.2em auto;
  z-index: -1;
  text-align: center;
  color: white;
  padding: 0;
  line-height: 1em;
  transition: margin 100ms ease-out;
  width: 2.5em;
}
.game-player.spectated .life-text {
  margin-top: calc(-0.2em + 0.65vh);
}

/* app/public/src/pages/component/game/game-pokemon-propositions.css */
.game-pokemons-proposition {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.game-pokemons-proposition .active {
  cursor: var(--cursor-hover);
  pointer-events: initial;
}
.game-pokemons-proposition > .my-container > h2,
.game-pokemons-proposition > .my-container > p {
  color: white;
  text-align: center;
}
.game-pokemons-proposition-list {
  display: flex;
  padding: 10px;
  gap: 1vw;
  justify-content: center;
}
.game-pokemons-proposition .show-hide-action {
  display: flex;
  justify-content: center;
  margin: 1em;
}
.game-pokemons-proposition-list > .my-box {
  padding: 5px;
}
.game-pokemons-proposition-list > .my-box:hover {
  cursor: var(--cursor-hover);
  background-color: var(--color-bg-accent);
}
.game-pokemons-proposition-list .game-pokemon-portrait {
  margin: 0 auto;
}
.game-pokemons-proposition .additional-pick-item {
  color: white;
  text-align: center;
}
.game-pokemons-proposition .additional-pick-item p {
  font-size: 80%;
  max-width: 240px;
}

/* app/public/src/pages/component/game/game-shop.css */
.game-shop.my-container {
  position: absolute;
  left: 8vw;
  right: 8vw;
  bottom: 5px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
}
.game-shop-actions {
  display: grid;
  grid-template: 1fr 1fr / 3vw 1fr;
  padding: 5px;
  gap: 0.5em;
  align-items: center;
}
.game-rarity-percentage.my-box {
  grid-column: 1 / 3;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  padding: 0;
  border-radius: 8px;
  color: black;
}
.game-rarity-percentage > div {
  display: grid;
  place-content: center;
  font-size: 0.8em;
  border: 1px solid rgba(0, 0, 0, 0.5);
}
.game-rarity-percentage > div:first-of-type {
  border-radius: 8px 0 0 8px;
}
.game-rarity-percentage > div:last-of-type {
  border-radius: 0 8px 8px 0;
}
.game-shop-actions .refresh-button {
  font-size: 1em;
  white-space: nowrap;
  padding: 0.25em 0.5em;
  min-height: 2.5em;
  position: relative;
}
.game-shop-actions .refresh-button > img:first-child {
  vertical-align: middle;
  width: 1.25em;
  height: 1.25em;
}
.game-shop-actions .lock-icon {
  padding: 0;
  display: grid;
  place-content: center;
  height: 2.5em;
  font-size: 1em;
}
.game-shop-actions .lock-icon > img:only-child {
  width: 1.5em;
  height: 1.5em;
  margin: 0.25em;
}
.game-additional-pokemons,
.game-regional-pokemons {
  padding: 0 !important;
  color: white;
  background-color: rgb(97, 115, 138);
  overflow: hidden;
}
.game-additional-pokemons h2,
.game-regional-pokemons h2 {
  margin: 0.25em auto 0 auto;
  text-align: center;
}
.game-additional-pokemons p.help,
.game-regional-pokemons p.help {
  margin: 0 auto 0.5em auto;
}
.game-additional-pokemons .grid {
  display: grid;
  grid-template: repeat(4, 1fr) / repeat(6, 1fr);
  grid-auto-flow: column;
  gap: 2px;
  width: 682px;
  height: 360px;
}
.game-regional-pokemons .grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 2px;
  width: 682px;
}
.game-additional-pokemons .game-pokemon-portrait,
.game-regional-pokemons .game-pokemon-portrait {
  width: 112px;
  height: 90px;
  min-height: 0;
  min-width: 0;
  border: 2px solid #333;
}
.game-additional-pokemons .game-pokemon-portrait .synergy-icon,
.game-regional-pokemons .game-pokemon-portrait .synergy-icon {
  width: 24px;
  height: 24px;
}
.game-additional-pokemons .grid > p,
.game-regional-pokemons .grid > p {
  grid-row: 1 / 5;
  grid-column: 1 / 7;
  display: grid;
  place-content: center;
  padding: 1em;
}
.game-additional-pools {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
  padding: 5px;
}
.game-pokemons-store {
  display: flex;
  flex: 1;
  list-style: none;
  gap: 5px;
  margin: 0;
  padding: 0;
  justify-content: center;
}
.game-experience {
  width: 12vw;
  display: grid;
  grid-template: 1fr 1fr / 3vw 1fr;
  padding: 5px;
  gap: 0.5em;
  align-items: center;
  text-align: center;
}
@media (width <= 1024px) {
  .game-experience {
    display: block;
  }
}
.game-experience > span {
  color: white;
}
.buy-xp-button.bubbly {
  font-size: 1em;
  white-space: nowrap;
  padding: 0.25em 0.5em;
}
.game-experience .progress-bar {
  grid-column: 1 / 3;
  position: relative;
  background: transparent;
  height: 2em;
}
.game-experience .progress-bar > span {
  position: absolute;
  margin: 0px;
  color: white;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  display: grid;
  place-content: center;
}
.game-experience .progress-bar > .progress {
  overflow: hidden;
  height: 100%;
}
#game-shop-info {
  position: absolute;
  bottom: 100%;
  left: 0;
  right: 0;
  display: flex;
  gap: 1em;
  padding: 0 1em;
  pointer-events: none;
}
#game-money-info {
  background-image: url(assets/ui/money-bg.png);
  background-size: 70px 40px;
}
#game-life-info {
  background-image: url(assets/ui/heart-bg.png);
  background-size: 48px 38px;
}
#game-team-info {
  background-image: url(assets/ui/pokeball-bg.png);
  background-size: 70px 40px;
}
#toast-life .toast-player-damage {
  color: red;
  font-weight: bold;
}
#toast-money .toast-player-income {
  color: white;
  font-weight: bold;
}
#toast-life img,
#toast-money img {
  width: 24px;
  height: 24px;
  object-fit: contain;
  display: inline-block;
}
.game-shop .information {
  padding: 0.001px 0.001px 0.001px 36px;
  display: flex;
  justify-content: end;
  color: white;
  border-radius: 12px 12px 0 0;
  pointer-events: initial;
}
.game-shop .information > div {
  background: var(--color-bg-primary);
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  border-radius: 0 7px 0 0;
  height: 100%;
  padding: 0 0.5em;
}
.game-shop .information .icon {
  width: 1em;
  height: 1em;
}
@media (aspect-ratio < 4 / 3) {
  .game-shop.my-container {
    flex-wrap: wrap;
  }
  .game-shop-actions {
    min-width: 240px;
    width: auto;
    grid-template: 1fr / 200px min-content min-content;
    order: 2;
  }
  .game-rarity-percentage.my-box {
    grid-column: 1 / 2;
  }
  .game-pokemons-store {
    flex: 0 0 100%;
  }
  .game-additional-pools {
    flex-direction: row;
    order: 3;
  }
  .game-experience {
    min-width: 240px;
    width: auto;
    grid-template: 1fr / auto 120px min-content;
    order: 4;
  }
  .game-experience .progress-bar {
    grid-column: 2 / 3;
    grid-row: 1 / 1;
  }
  .game-experience .buy-xp-button {
    grid-column: 3 / 4;
    grid-row: 1 / 1;
  }
  .game-shop .game-pokemons-store > .game-pokemon-portrait {
    width: 12.5vw;
    --container-height: 10vw;
  }
  .game-shop .game-pokemons-store > .game-pokemon-portrait .synergy-icon {
    width: 2.5vw;
    height: 2.5vw;
  }
}
@media (aspect-ratio > 4 / 3) and (width <= 1280px) {
  #game-wrapper .game-shop {
    transform: scale(0.8);
    transform-origin: bottom left;
    right: 0;
  }
}
@media (aspect-ratio > 4 / 3) {
  #game-wrapper .game-shop {
    max-height: 20vh;
  }
}

/* app/public/src/pages/component/game/game-spectate-player-info.css */
.game-spectate-player-info {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 1em;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1em;
  font-size: 1em;
}
.game-spectate-player-info .player-name {
  font-weight: bold;
}
.game-spectate-player-info span {
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 0.5em;
}
.game-spectate-player-info .icon-life,
.game-spectate-player-info .icon-money {
  width: 1.5em;
  height: 1.5em;
}

/* app/public/src/pages/component/game/game-timer-bar.css */
.timer-bar {
  position: absolute;
  top: 100%;
  left: -4px;
  right: -4px;
  height: 12px;
  background: black;
  border-radius: 0 0 8px 8px;
}
.timer-bar-inner {
  position: absolute;
  top: 0;
  left: 0;
  height: 12px;
  background: #f7d51d;
  border-radius: 0 0 12px 12px;
  border: var(--border-thick);
  transition: all linear 1s;
}

/* app/public/src/pages/component/game/game-stage-info.css */
#game-stage-info {
  position: absolute;
  top: 0.5%;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-width: 40%;
  max-width: 100vw;
  color: white;
  border-radius: 12px 12px 0 0;
  padding: 1px 0.5em;
  font-size: 1em;
  gap: 0.5em;
}
@media (width <= 1024px) {
  #game-stage-info {
    font-size: 0.6em;
  }
}
#game-stage-info p {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 600;
}
#game-stage-info .stage-information {
  text-align: center;
}
#detail-stage p {
  margin: 0 0.25em;
}
#game-stage-info .players-information {
  display: flex;
  flex: 1;
  justify-content: center;
  align-items: center;
  height: 100%;
  gap: 0.5em;
}
#game-stage-info .players-information:not(.has-opponent) {
  flex: 0;
}
#game-stage-info .player-information {
  padding: 5px;
  display: flex;
  align-items: center;
  height: 100%;
  gap: 5px;
  overflow: hidden;
}
#game-stage-info .player-information img {
  width: 1.5em;
  height: 1.5em;
  margin: auto;
  align-self: center;
}
#game-stage-info .player-information .player-title {
  margin: 0;
  color: var(--color-fg-gold);
}
#game-stage-info .player-information .player-name {
  margin-left: 0.25em;
  color: white;
  text-align: center;
}
.game-stage-path {
  flex: 1;
  display: flex;
  justify-content: center;
}
.game-stage-path .stage-path {
  position: relative;
  background-color: var(--color-bg-secondary);
  border-radius: 8px;
  border: 4px solid transparent;
}
.game-stage-path .stage-path.current {
  background-color: #109fff;
}
.game-stage-path .stage-path.current::before {
  content: "";
  display: block;
  height: 0;
  width: 0;
  position: absolute;
  bottom: 100%;
  left: calc(0.75em - 10px);
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px solid black;
}
.game-stage-path .stage-path.victory {
  border-color: #4aa52e;
}
.game-stage-path .stage-path.defeat {
  border-color: #8c2022;
}
.game-stage-path .stage-path.draw {
  border-color: #cc6a28;
}
.game-stage-path .stage-path img {
  display: block;
  height: 1.5em;
  width: 1.5em;
}
#game-stage-info .weather-information > img,
#game-stage-info .map-information > img {
  width: 1.5em;
  height: 1.5em;
}
#detail-weather p,
#detail-map p {
  white-space: pre-line;
  margin: 0 0.25em;
  line-height: 40px;
}

/* app/public/src/pages/component/synergy/synergies.css */
.synergies-container {
  display: flex;
  flex-flow: column;
  color: #fff;
  background-color: var(--color-bg-primary);
  font-size: 1em;
  overflow-y: auto;
}
#game-wrapper .synergies-container {
  position: absolute;
  left: 0.5%;
  top: 9%;
  max-height: 70%;
  padding: 0;
  background-color: var(--color-bg-primary);
}
.synergies-header {
  padding: 0.25em;
  margin: 0;
  text-align: center;
}
@media (width <= 1024px) {
  .synergies-header {
    padding: 0.1em;
    font-size: 1.5rem;
  }
}
@media (aspect-ratio < 4 / 3) {
  #game-wrapper .synergies-container {
    max-height: 70%;
  }
}
@media (width <= 1280px) {
  #game-wrapper .synergies-container {
    transform: scale(0.8);
    transform-origin: top left;
  }
}

/* node_modules/react-toastify/dist/ReactToastify.css */
:root {
  --toastify-color-light: #fff;
  --toastify-color-dark: #121212;
  --toastify-color-info: #3498db;
  --toastify-color-success: #07bc0c;
  --toastify-color-warning: #f1c40f;
  --toastify-color-error: #e74c3c;
  --toastify-color-transparent: rgba(255, 255, 255, 0.7);
  --toastify-icon-color-info: var(--toastify-color-info);
  --toastify-icon-color-success: var(--toastify-color-success);
  --toastify-icon-color-warning: var(--toastify-color-warning);
  --toastify-icon-color-error: var(--toastify-color-error);
  --toastify-toast-width: 320px;
  --toastify-toast-offset: 16px;
  --toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));
  --toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));
  --toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));
  --toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));
  --toastify-toast-background: #fff;
  --toastify-toast-min-height: 64px;
  --toastify-toast-max-height: 800px;
  --toastify-toast-bd-radius: 6px;
  --toastify-font-family: sans-serif;
  --toastify-z-index: 9999;
  --toastify-text-color-light: #757575;
  --toastify-text-color-dark: #fff;
  --toastify-text-color-info: #fff;
  --toastify-text-color-success: #fff;
  --toastify-text-color-warning: #fff;
  --toastify-text-color-error: #fff;
  --toastify-spinner-color: #616161;
  --toastify-spinner-color-empty-area: #e0e0e0;
  --toastify-color-progress-light:
    linear-gradient(
      
      to right,
      #4cd964,
      #5ac8fa,
      #007aff,
      #34aadc,
      #5856d6,
      #ff2d55 );
  --toastify-color-progress-dark: #bb86fc;
  --toastify-color-progress-info: var(--toastify-color-info);
  --toastify-color-progress-success: var(--toastify-color-success);
  --toastify-color-progress-warning: var(--toastify-color-warning);
  --toastify-color-progress-error: var(--toastify-color-error);
  --toastify-color-progress-bgo: 0.2;
}
.Toastify__toast-container {
  z-index: var(--toastify-z-index);
  -webkit-transform: translate3d(0, 0, var(--toastify-z-index));
  position: fixed;
  padding: 4px;
  width: var(--toastify-toast-width);
  box-sizing: border-box;
  color: #fff;
}
.Toastify__toast-container--top-left {
  top: var(--toastify-toast-top);
  left: var(--toastify-toast-left);
}
.Toastify__toast-container--top-center {
  top: var(--toastify-toast-top);
  left: 50%;
  transform: translateX(-50%);
}
.Toastify__toast-container--top-right {
  top: var(--toastify-toast-top);
  right: var(--toastify-toast-right);
}
.Toastify__toast-container--bottom-left {
  bottom: var(--toastify-toast-bottom);
  left: var(--toastify-toast-left);
}
.Toastify__toast-container--bottom-center {
  bottom: var(--toastify-toast-bottom);
  left: 50%;
  transform: translateX(-50%);
}
.Toastify__toast-container--bottom-right {
  bottom: var(--toastify-toast-bottom);
  right: var(--toastify-toast-right);
}
@media only screen and (max-width : 480px) {
  .Toastify__toast-container {
    width: 100vw;
    padding: 0;
    left: env(safe-area-inset-left);
    margin: 0;
  }
  .Toastify__toast-container--top-left,
  .Toastify__toast-container--top-center,
  .Toastify__toast-container--top-right {
    top: env(safe-area-inset-top);
    transform: translateX(0);
  }
  .Toastify__toast-container--bottom-left,
  .Toastify__toast-container--bottom-center,
  .Toastify__toast-container--bottom-right {
    bottom: env(safe-area-inset-bottom);
    transform: translateX(0);
  }
  .Toastify__toast-container--rtl {
    right: env(safe-area-inset-right);
    left: initial;
  }
}
.Toastify__toast {
  --y: 0;
  position: relative;
  -ms-touch-action: none;
  touch-action: none;
  min-height: var(--toastify-toast-min-height);
  box-sizing: border-box;
  margin-bottom: 1rem;
  padding: 8px;
  border-radius: var(--toastify-toast-bd-radius);
  box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1);
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: justify;
  justify-content: space-between;
  max-height: var(--toastify-toast-max-height);
  font-family: var(--toastify-font-family);
  cursor: default;
  direction: ltr;
  z-index: 0;
  overflow: hidden;
}
.Toastify__toast--stacked {
  position: absolute;
  width: 100%;
  transform: translate3d(0, var(--y), 0) scale(var(--s));
  transition: transform 0.3s;
}
.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,
.Toastify__toast--stacked[data-collapsed] .Toastify__close-button {
  transition: opacity 0.1s;
}
.Toastify__toast--stacked[data-collapsed=false] {
  overflow: visible;
}
.Toastify__toast--stacked[data-collapsed=true]:not(:last-child) > * {
  opacity: 0;
}
.Toastify__toast--stacked:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: calc(var(--g) * 1px);
  bottom: 100%;
}
.Toastify__toast--stacked[data-pos=top] {
  top: 0;
}
.Toastify__toast--stacked[data-pos=bot] {
  bottom: 0;
}
.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before {
  transform-origin: top;
}
.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before {
  transform-origin: bottom;
}
.Toastify__toast--stacked:before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  transform: scaleY(3);
  z-index: -1;
}
.Toastify__toast--rtl {
  direction: rtl;
}
.Toastify__toast--close-on-click {
  cursor: pointer;
}
.Toastify__toast-body {
  margin: auto 0;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  padding: 6px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
  align-items: center;
}
.Toastify__toast-body > div:last-child {
  word-break: break-word;
  -ms-flex: 1;
  flex: 1;
}
.Toastify__toast-icon {
  -webkit-margin-end: 10px;
  margin-inline-end: 10px;
  width: 20px;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  display: -ms-flexbox;
  display: flex;
}
.Toastify--animate {
  animation-fill-mode: both;
  animation-duration: 0.5s;
}
.Toastify--animate-icon {
  animation-fill-mode: both;
  animation-duration: 0.3s;
}
@media only screen and (max-width : 480px) {
  .Toastify__toast {
    margin-bottom: 0;
    border-radius: 0;
  }
}
.Toastify__toast-theme--dark {
  background: var(--toastify-color-dark);
  color: var(--toastify-text-color-dark);
}
.Toastify__toast-theme--light {
  background: var(--toastify-color-light);
  color: var(--toastify-text-color-light);
}
.Toastify__toast-theme--colored.Toastify__toast--default {
  background: var(--toastify-color-light);
  color: var(--toastify-text-color-light);
}
.Toastify__toast-theme--colored.Toastify__toast--info {
  color: var(--toastify-text-color-info);
  background: var(--toastify-color-info);
}
.Toastify__toast-theme--colored.Toastify__toast--success {
  color: var(--toastify-text-color-success);
  background: var(--toastify-color-success);
}
.Toastify__toast-theme--colored.Toastify__toast--warning {
  color: var(--toastify-text-color-warning);
  background: var(--toastify-color-warning);
}
.Toastify__toast-theme--colored.Toastify__toast--error {
  color: var(--toastify-text-color-error);
  background: var(--toastify-color-error);
}
.Toastify__progress-bar-theme--light {
  background: var(--toastify-color-progress-light);
}
.Toastify__progress-bar-theme--dark {
  background: var(--toastify-color-progress-dark);
}
.Toastify__progress-bar--info {
  background: var(--toastify-color-progress-info);
}
.Toastify__progress-bar--success {
  background: var(--toastify-color-progress-success);
}
.Toastify__progress-bar--warning {
  background: var(--toastify-color-progress-warning);
}
.Toastify__progress-bar--error {
  background: var(--toastify-color-progress-error);
}
.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,
.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,
.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,
.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error {
  background: var(--toastify-color-transparent);
}
.Toastify__close-button {
  color: #fff;
  background: transparent;
  outline: none;
  border: none;
  padding: 0;
  cursor: pointer;
  opacity: 0.7;
  transition: 0.3s ease;
  -ms-flex-item-align: start;
  align-self: flex-start;
  z-index: 1;
}
.Toastify__close-button--light {
  color: #000;
  opacity: 0.3;
}
.Toastify__close-button > svg {
  fill: currentColor;
  height: 16px;
  width: 14px;
}
.Toastify__close-button:hover,
.Toastify__close-button:focus {
  opacity: 1;
}
@keyframes Toastify__trackProgress {
  0% {
    transform: scaleX(1);
  }
  100% {
    transform: scaleX(0);
  }
}
.Toastify__progress-bar {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: var(--toastify-z-index);
  opacity: 0.7;
  transform-origin: left;
  border-bottom-left-radius: var(--toastify-toast-bd-radius);
}
.Toastify__progress-bar--animated {
  animation: Toastify__trackProgress linear 1 forwards;
}
.Toastify__progress-bar--controlled {
  transition: transform 0.2s;
}
.Toastify__progress-bar--rtl {
  right: 0;
  left: initial;
  transform-origin: right;
  border-bottom-left-radius: initial;
  border-bottom-right-radius: var(--toastify-toast-bd-radius);
}
.Toastify__progress-bar--wrp {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 5px;
  border-bottom-left-radius: var(--toastify-toast-bd-radius);
}
.Toastify__progress-bar--wrp[data-hidden=true] {
  opacity: 0;
}
.Toastify__progress-bar--bg {
  opacity: var(--toastify-color-progress-bgo);
  width: 100%;
  height: 100%;
}
.Toastify__spinner {
  width: 20px;
  height: 20px;
  box-sizing: border-box;
  border: 2px solid;
  border-radius: 100%;
  border-color: var(--toastify-spinner-color-empty-area);
  border-right-color: var(--toastify-spinner-color);
  animation: Toastify__spin 0.65s linear infinite;
}
@keyframes Toastify__bounceInRight {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  from {
    opacity: 0;
    transform: translate3d(3000px, 0, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(-25px, 0, 0);
  }
  75% {
    transform: translate3d(10px, 0, 0);
  }
  90% {
    transform: translate3d(-5px, 0, 0);
  }
  to {
    transform: none;
  }
}
@keyframes Toastify__bounceOutRight {
  20% {
    opacity: 1;
    transform: translate3d(-20px, var(--y), 0);
  }
  to {
    opacity: 0;
    transform: translate3d(2000px, var(--y), 0);
  }
}
@keyframes Toastify__bounceInLeft {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    transform: translate3d(-3000px, 0, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(25px, 0, 0);
  }
  75% {
    transform: translate3d(-10px, 0, 0);
  }
  90% {
    transform: translate3d(5px, 0, 0);
  }
  to {
    transform: none;
  }
}
@keyframes Toastify__bounceOutLeft {
  20% {
    opacity: 1;
    transform: translate3d(20px, var(--y), 0);
  }
  to {
    opacity: 0;
    transform: translate3d(-2000px, var(--y), 0);
  }
}
@keyframes Toastify__bounceInUp {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  from {
    opacity: 0;
    transform: translate3d(0, 3000px, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }
  75% {
    transform: translate3d(0, 10px, 0);
  }
  90% {
    transform: translate3d(0, -5px, 0);
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
@keyframes Toastify__bounceOutUp {
  20% {
    transform: translate3d(0, calc(var(--y) - 10px), 0);
  }
  40%, 45% {
    opacity: 1;
    transform: translate3d(0, calc(var(--y) + 20px), 0);
  }
  to {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
}
@keyframes Toastify__bounceInDown {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    transform: translate3d(0, -3000px, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(0, 25px, 0);
  }
  75% {
    transform: translate3d(0, -10px, 0);
  }
  90% {
    transform: translate3d(0, 5px, 0);
  }
  to {
    transform: none;
  }
}
@keyframes Toastify__bounceOutDown {
  20% {
    transform: translate3d(0, calc(var(--y) - 10px), 0);
  }
  40%, 45% {
    opacity: 1;
    transform: translate3d(0, calc(var(--y) + 20px), 0);
  }
  to {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
}
.Toastify__bounce-enter--top-left,
.Toastify__bounce-enter--bottom-left {
  animation-name: Toastify__bounceInLeft;
}
.Toastify__bounce-enter--top-right,
.Toastify__bounce-enter--bottom-right {
  animation-name: Toastify__bounceInRight;
}
.Toastify__bounce-enter--top-center {
  animation-name: Toastify__bounceInDown;
}
.Toastify__bounce-enter--bottom-center {
  animation-name: Toastify__bounceInUp;
}
.Toastify__bounce-exit--top-left,
.Toastify__bounce-exit--bottom-left {
  animation-name: Toastify__bounceOutLeft;
}
.Toastify__bounce-exit--top-right,
.Toastify__bounce-exit--bottom-right {
  animation-name: Toastify__bounceOutRight;
}
.Toastify__bounce-exit--top-center {
  animation-name: Toastify__bounceOutUp;
}
.Toastify__bounce-exit--bottom-center {
  animation-name: Toastify__bounceOutDown;
}
@keyframes Toastify__zoomIn {
  from {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
  50% {
    opacity: 1;
  }
}
@keyframes Toastify__zoomOut {
  from {
    opacity: 1;
  }
  50% {
    opacity: 0;
    transform: translate3d(0, var(--y), 0) scale3d(0.3, 0.3, 0.3);
  }
  to {
    opacity: 0;
  }
}
.Toastify__zoom-enter {
  animation-name: Toastify__zoomIn;
}
.Toastify__zoom-exit {
  animation-name: Toastify__zoomOut;
}
@keyframes Toastify__flipIn {
  from {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    animation-timing-function: ease-in;
    opacity: 0;
  }
  40% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    animation-timing-function: ease-in;
  }
  60% {
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1;
  }
  80% {
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  }
  to {
    transform: perspective(400px);
  }
}
@keyframes Toastify__flipOut {
  from {
    transform: translate3d(0, var(--y), 0) perspective(400px);
  }
  30% {
    transform: translate3d(0, var(--y), 0) perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1;
  }
  to {
    transform: translate3d(0, var(--y), 0) perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0;
  }
}
.Toastify__flip-enter {
  animation-name: Toastify__flipIn;
}
.Toastify__flip-exit {
  animation-name: Toastify__flipOut;
}
@keyframes Toastify__slideInRight {
  from {
    transform: translate3d(110%, 0, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, var(--y), 0);
  }
}
@keyframes Toastify__slideInLeft {
  from {
    transform: translate3d(-110%, 0, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, var(--y), 0);
  }
}
@keyframes Toastify__slideInUp {
  from {
    transform: translate3d(0, 110%, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, var(--y), 0);
  }
}
@keyframes Toastify__slideInDown {
  from {
    transform: translate3d(0, -110%, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, var(--y), 0);
  }
}
@keyframes Toastify__slideOutRight {
  from {
    transform: translate3d(0, var(--y), 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(110%, var(--y), 0);
  }
}
@keyframes Toastify__slideOutLeft {
  from {
    transform: translate3d(0, var(--y), 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(-110%, var(--y), 0);
  }
}
@keyframes Toastify__slideOutDown {
  from {
    transform: translate3d(0, var(--y), 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(0, 500px, 0);
  }
}
@keyframes Toastify__slideOutUp {
  from {
    transform: translate3d(0, var(--y), 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(0, -500px, 0);
  }
}
.Toastify__slide-enter--top-left,
.Toastify__slide-enter--bottom-left {
  animation-name: Toastify__slideInLeft;
}
.Toastify__slide-enter--top-right,
.Toastify__slide-enter--bottom-right {
  animation-name: Toastify__slideInRight;
}
.Toastify__slide-enter--top-center {
  animation-name: Toastify__slideInDown;
}
.Toastify__slide-enter--bottom-center {
  animation-name: Toastify__slideInUp;
}
.Toastify__slide-exit--top-left,
.Toastify__slide-exit--bottom-left {
  animation-name: Toastify__slideOutLeft;
  animation-timing-function: ease-in;
  animation-duration: 0.3s;
}
.Toastify__slide-exit--top-right,
.Toastify__slide-exit--bottom-right {
  animation-name: Toastify__slideOutRight;
  animation-timing-function: ease-in;
  animation-duration: 0.3s;
}
.Toastify__slide-exit--top-center {
  animation-name: Toastify__slideOutUp;
  animation-timing-function: ease-in;
  animation-duration: 0.3s;
}
.Toastify__slide-exit--bottom-center {
  animation-name: Toastify__slideOutDown;
  animation-timing-function: ease-in;
  animation-duration: 0.3s;
}
@keyframes Toastify__spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* app/public/src/pages/component/game/game-vampire-battle.css */
.game-vampire-battle {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1000;
}
.game-vampire-battle .battle-button {
  padding: 10px 20px;
  font-size: 16px;
  font-weight: bold;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}
.game-vampire-battle .battle-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
}
.game-vampire-battle .battle-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}
.game-vampire-battle .battle-controls {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.game-vampire-battle .battle-status {
  background-color: rgba(0, 0, 0, 0.7);
  color: white;
  padding: 10px;
  border-radius: 8px;
  margin-bottom: 10px;
  font-size: 14px;
  width: 200px;
}
.game-vampire-battle .position-info {
  margin-bottom: 5px;
  font-family: monospace;
}
.game-vampire-battle .controls-info {
  font-style: italic;
  font-size: 12px;
  opacity: 0.8;
}

/* app/public/src/pages/component/booster/booster-card.css */
.booster-card {
  position: absolute;
  top: 5%;
  transition: all 1s ease-out;
  transform: translateX(-50%);
  height: 40%;
  aspect-ratio: 7 / 10;
  animation: 1s ease-in-out distribute;
  animation-fill-mode: forwards;
  transform-style: preserve-3d;
}
.booster-card:nth-child(5n+1) {
  left: 10%;
}
.booster-card:nth-child(5n+2) {
  left: 30%;
}
.booster-card:nth-child(5n+3) {
  left: 50%;
}
.booster-card:nth-child(5n+4) {
  left: 70%;
}
.booster-card:nth-child(5n+5) {
  left: 90%;
}
.booster-card:nth-child(n+6) {
  top: 55%;
}
.booster-card .back,
.booster-card .front {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
}
.booster-card .back {
  transform: rotateY(0);
  border-radius: 1.5vw;
}
.booster-card .front {
  width: 100%;
  height: 100%;
  transform: rotateY(180deg);
  background-color: var(--color-bg-primary);
  border: 4px solid var(--rarity-color, #161616);
  border-radius: 1em;
  overflow: hidden;
}
.booster-card:hover .back {
  box-shadow: 0 0 4vmax var(--rarity-color, white);
}
.booster-card:hover .back:hover {
  animation: 300ms horizontal-shaking infinite;
}
.booster-card:not(.flipped) {
  cursor: var(--cursor-hover);
}
.booster-card.flipped {
  animation: 500ms ease-in-out flipCard;
  animation-fill-mode: forwards;
  z-index: 2;
}
.booster-card.flipped .front {
  box-shadow: 0 0 4vmax var(--rarity-color, white);
}
@keyframes flipCard {
  0% {
    transform: translateX(-50%) rotateY(0) scale(1);
  }
  50% {
    transform: translateX(-50%) rotateY(90deg) rotateZ(-10deg) scale(1.25);
  }
  100% {
    transform: translateX(-50%) rotateY(180deg) scale(1);
  }
}
@keyframes distribute {
  0% {
    position: absolute;
    top: 100%;
    left: 50%;
  }
}
@keyframes horizontal-shaking {
  0% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(4px);
  }
  50% {
    transform: translateX(-5px);
  }
  75% {
    transform: translateX(3px);
  }
  100% {
    transform: translateX(0);
  }
}
.booster-card .back img {
  width: 100%;
  height: 100%;
}
.booster-card .front img {
  width: 100%;
  height: 65%;
  image-rendering: pixelated;
  border: none;
}
.booster-card .front-text {
  position: absolute;
  top: 65%;
  bottom: 0;
  left: 0;
  right: 0;
}
.booster-card .name {
  text-align: center;
  background-color: #4f5160;
  font-weight: bold;
  margin: 0px -5px 4px -5px;
  font-size: 1em;
  padding: 4px 5px 2px 5px;
  box-shadow: 0 0.1em 0.25em rgb(0 0 0 / 50%);
}
.booster-card.shiny .name {
  color: gold;
}
.booster-card img.dust {
  width: 40px;
  height: 40px;
  margin: 0 0.5em;
  image-rendering: pixelated;
  border-radius: 50%;
  border: 1px solid black;
}
.booster-card .new {
  background:
    linear-gradient(
      45deg,
      #fff 20%,
      gold 40%,
      gold 60%,
      #fff 80%);
  background-size: 200% auto;
  color: #000;
  background-clip: text;
  text-fill-color: transparent;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: shine 1s linear infinite;
  font-weight: bolder;
  font-size: 1.2em;
}
@keyframes shine {
  from {
    background-position: 0% center;
  }
  to {
    background-position: 200% center;
  }
}

/* app/public/src/pages/component/booster/booster.css */
#boosters-page {
  position: relative;
  height: 90vh;
  width: 1800px;
  max-width: 95vw;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: white;
}
#boosters-page p.help {
  font-size: 200%;
  text-shadow: 2px 2px 0 black;
}
#boosters-page .actions {
  text-align: center;
  position: relative;
  bottom: 1em;
  color: white;
  display: flex;
  align-items: center;
  gap: 1em;
}
#boosters-page .actions .booster-count {
  font-size: 200%;
}
#boosters-page .actions button {
  margin: auto;
}
#boosters-page .actions img {
  height: 128px;
  width: 128px;
}
.boosters-content {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 40px;
  position: relative;
  width: 100%;
}

/* app/public/src/pages/component/bot-builder/team-builder.css */
#team-builder {
  width: 100%;
  display: grid;
  grid-template-areas: "synergies actions selected" "synergies board selected" "pokemons pokemons items";
  grid-template-columns: 250px 1fr 350px;
  grid-template-rows: min-content 1fr 420px;
  min-width: 1400px;
  gap: 5px;
  padding: 5px;
  height: 75vh;
  overflow-y: auto;
  position: relative;
}
.team-builder-modal .modal-body {
  padding: 0;
}
.modal-body > #team-builder {
  border-radius: 0 0 12px 12px;
  width: 2000px;
  max-width: 94vw;
}
#team-builder .synergies-container {
  grid-area: synergies;
  background-color: var(--color-bg-secondary);
  border: var(--border-thin);
}
#team-builder .actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: end;
  gap: 1em;
}
#team-editor {
  grid-area: board;
  display: grid;
  place-content: center;
  position: relative;
}
#team-editor td {
  width: 84px;
  height: 84px;
  cursor: var(--cursor-hover);
  padding: 0;
  background-color: var(--color-bg-secondary);
  border: var(--border-thick);
  position: relative;
  background-clip: padding-box;
}
#team-editor td.dragover {
  background-color: #109fff;
}
#team-editor td img {
  width: 80px;
  height: 80px;
  image-rendering: pixelated;
}
#team-editor td .pokemon-items {
  position: absolute;
  bottom: 0;
  display: flex;
  justify-content: space-evenly;
  gap: 1px;
  user-select: none;
}
#team-editor td .pokemon-items > img {
  height: 26px;
  width: 26px;
  object-fit: contain;
  border-radius: 50%;
  border: var(--border-thin);
  background-color: var(--color-bg-secondary);
}
#selected-entity {
  grid-area: selected;
  align-self: start;
  background-color: var(--color-bg-primary);
  padding: 5px;
  overflow-y: auto;
  max-height: 100%;
  max-width: 320px;
  margin: 0 auto;
}
#selected-entity fieldset {
  color: white;
  font-size: 1rem;
  display: flex;
  justify-content: space-between;
  border: none;
  padding: 0;
  margin: 0 0 0.5em 0;
}
#item-picker {
  grid-area: items;
  display: flex;
  flex-wrap: wrap;
  align-content: start;
  overflow: auto;
  padding: 5px;
}
#item-picker .react-tabs__tab {
  font-size: 80%;
  padding: 4px 8px;
}
#item-picker img.item {
  width: 40px;
  height: 40px;
  image-rendering: pixelated;
  cursor: var(--cursor-hover);
  margin: 2px;
}
#pokemon-picker {
  grid-area: pokemons;
  overflow-y: auto;
  padding: 5px;
}
#pokemon-picker .selected,
#item-picker .selected {
  outline: 4px solid #109fff;
}
#pokemon-picker dd > .pokemon-portrait {
  width: 40px;
  height: 40px;
  cursor: var(--cursor-hover);
}
#pokemon-picker dd > .pokemon-portrait img {
  display: block;
  image-rendering: pixelated;
}
#pokemon-picker .react-tabs__tab {
  padding: 0;
  text-align: center;
  vertical-align: bottom;
  min-width: max(1ch, 40px);
  line-height: 40px;
  margin: 0 1px;
}
#pokemon-picker .react-tabs__tab img {
  display: block;
}
#pokemon-picker .synergy-overlaps {
  display: flex;
  gap: 0.5em;
  padding: 0;
  flex-wrap: wrap;
}
#pokemon-picker summary {
  margin: 0.5em 0;
  font-size: 1rem;
}
#pokemon-picker .filters label {
  float: right;
  margin-left: 1em;
}
#rarity-grid {
  display: grid;
  grid-template: auto / 8ch 2fr 8ch 1fr;
  margin: 0;
  gap: 0 0.5em;
}
#bot-info {
  position: absolute;
  top: 4px;
  left: 280px;
}
#bot-info .bot-avatar {
  width: 80px;
  height: 80px;
  border: var(--border-thick);
  border-radius: 8px;
}
#bot-info p {
  margin: 0;
}
@media (width <= 640px) {
  #team-builder {
    grid-template-areas: "synergies" "board" "selected" "pokemons" "items";
    grid-template-columns: 1fr;
    grid-template-rows: min-content;
    grid-auto-rows: min-content;
    min-width: auto;
    gap: 5px;
    height: 75vh;
    overflow-y: auto;
  }
  .modal-body > #team-builder {
    width: 95vw;
  }
  #team-editor td {
    width: 44px;
    height: 44px;
    border-width: 2px;
  }
  #team-editor td img {
    width: 40px;
    height: 40px;
  }
  #pokemon-picker {
    padding: 2px;
  }
  #rarity-grid {
    grid-template: auto / auto;
  }
  #bot-info {
    position: static;
  }
}

/* app/public/src/pages/component/collection/pokemon-emotion.css */
.pokemon-emotion.my-box {
  display: flex;
  flex-flow: column;
  cursor: var(--cursor-hover);
  padding: 0;
  background-color: var(--color-bg-secondary);
}
.pokemon-emotion > img {
  width: 80px;
  height: 80px;
  image-rendering: pixelated;
  border-radius: 8px 8px 0 0;
  border: none;
}
.pokemon-emotion:not(.unlocked, .unlockable) {
  filter: grayscale(1) contrast(0.5);
}
.pokemon-emotion.unlocked {
  filter: grayscale(0) contrast(1);
}
.pokemon-emotion.unlockable:not(.unlocked) {
  filter: grayscale(1) contrast(1);
}
.pokemon-emotion.unlockable:not(.unlocked):hover {
  filter: grayscale(0) contrast(0.8);
}
.pokemon-emotion.selected.my-box {
  background-color: var(--color-bg-accent);
}
.pokemon-emotion > p {
  max-width: 80px;
  word-break: break-word;
  font-weight: 500;
  font-size: 90%;
  text-align: center;
}
.pokemon-emotion .shortcut {
  font-size: 0.5em;
  position: absolute;
  top: 0;
  right: 0;
  background: #00000080;
  border-radius: 8px;
  padding: 0 4px;
}
.pokemon-emotion p > * {
  vertical-align: middle;
  color: white;
}
.pokemon-emotion .dust {
  display: flex;
  align-items: center;
  justify-content: center;
}
.pokemon-emotion .dust > img {
  width: 20px;
  height: 20px;
  image-rendering: pixelated;
  margin: 2px 2px 0px calc(2px + 0.25em);
  border-radius: 50%;
  border: 1px solid black;
}

/* app/public/src/pages/component/collection/pokemon-emotions-modal.css */
.pokemon-emotions-modal.my-container {
  padding: 0;
}
.pokemon-emotions-modal header {
  padding: 0;
  color: white;
  text-transform: capitalize;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.pokemon-emotions-modal header > img {
  width: 80px;
  height: 80px;
  margin-right: 0.5em;
  image-rendering: pixelated;
}
.pokemon-emotions-modal header img.unlocked {
  filter: grayscale(0);
}
.pokemon-emotions-modal header > h2 {
  margin: 0;
  text-transform: none;
}
.pokemon-emotions-modal header .dust {
  display: flex;
  align-items: center;
  color: white;
  font-size: 120%;
}
.pokemon-emotions-modal header img {
  width: 40px;
  height: 40px;
  margin: 0 0.5em;
  image-rendering: pixelated;
}
.pokemon-emotions-modal img.dust {
  border-radius: 50%;
  width: 30px;
  height: 30px;
  border: 1px solid black;
  margin: 2px;
}
.pokemon-emotions-modal .bubbly img.dust {
  width: 1.4em;
  height: 1.4em;
  margin: 0;
}
.pokemon-emotions-modal .modal-body {
  display: flex;
  justify-content: space-around;
}
.pokemon-emotions-modal section p {
  text-align: center;
  margin: 0;
}
.pokemon-emotions-modal section > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1vw;
  margin: 0 1vw;
}

/* app/public/src/pages/component/collection/pokemon-collection-item.css */
.pokemon-collection-item.my-box {
  cursor: var(--cursor-hover);
  padding: 0;
  background-color: var(--color-bg-secondary);
}
.pokemon-collection-item > img {
  width: 80px;
  height: 80px;
  image-rendering: pixelated;
  border-radius: 8px 8px 0 0;
  border: none;
}
.pokemon-collection-item:not(.unlocked, .unlockable) {
  filter: grayscale(1) contrast(0.5);
}
.pokemon-collection-item.unlocked {
  filter: grayscale(0) contrast(1);
}
.pokemon-collection-item.unlockable:not(.unlocked) {
  filter: grayscale(1) contrast(1);
}
.pokemon-collection-item > p {
  text-align: center;
  border-radius: 0 0 8px 8px;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
}
.pokemon-collection-item p > * {
  vertical-align: middle;
}
.pokemon-collection-item .dust > img {
  width: 20px;
  height: 20px;
  image-rendering: pixelated;
  margin: 2px 2px 2px calc(2px + 0.25em);
  border-radius: 50%;
  border: 1px solid black;
}

/* app/public/src/pages/component/collection/unown-panel.css */
#unown-panel {
  background-image: url(assets/ui/unown-panel.png);
  background-size: 100% 100%;
  width: 40em;
  height: 10em;
  margin: auto;
  font-size: 2rem;
  padding: 1.5em 1.5em 2em 1.5em;
  text-align: center;
}
#unown-panel .char {
  display: inline-block;
  width: 1.1em;
  height: 1.1em;
  background-color: rgba(255, 255, 255, 0.2);
  border-radius: 4px;
  margin: 0 0.15em;
  background-position: center;
  background-size: 80px 80px;
}
#unown-panel .char.space {
  background-color: rgba(255, 255, 255, 0.05);
}

/* app/public/src/pages/component/collection/pokemon-collection.css */
#pokemon-collection {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
#pokemon-collection .pokemon-collection-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  justify-content: center;
  overflow-y: scroll;
  max-height: calc(90vh - 200px);
}
#pokemon-collection header {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 1vw;
  padding: 4px 8px;
}
#pokemon-collection header p {
  flex: 1;
  text-align: left;
  font-weight: bold;
  text-transform: capitalize;
}
#pokemon-collection header label {
  margin-bottom: 0;
}
#pokemon-collection .unown-icon {
  width: 36px;
  height: 36px;
  margin: 2px;
}
.pokemon-collection-tabs {
  display: flex;
  justify-content: center;
  align-items: center;
  overflow-x: auto;
  overflow-y: hidden;
  padding-left: 0;
  margin: 0;
  flex-wrap: wrap;
}
.pokemon-collection-tabs li {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 55px;
  min-width: 50px;
  padding: 5px;
}
#pokemon-collection .bubbly {
  height: 50px;
  font-size: 22px;
}

/* app/public/src/pages/component/pokeguesser/pokeguesser.css */
.game-pokeguesser-modal {
  min-width: 980px;
}
.game-pokeguesser-modal .modal-body {
  min-height: 480px;
  text-align: center;
}
#pokemon-select-form {
  display: flex;
  gap: 1rem;
  justify-content: center;
}
#pokemon-select-form > div {
  position: relative;
  width: 400px;
  display: flex;
  align-items: center;
  background-color: white;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 0.5rem;
}
#pokemon-select-form input {
  width: 100%;
  border: none;
}
#pokemon-select-form .dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: white;
  color: black;
  border: 1px solid #ccc;
  max-height: 240px;
  overflow-y: auto;
  z-index: 10;
}
#pokemon-select-form .dropdown-item {
  display: flex;
  align-items: center;
  padding: 4px 8px;
  cursor: pointer;
}
.game-pokeguesser-modal .attempts {
  max-height: 480px;
  overflow-y: auto;
}
.game-pokeguesser-modal ul {
  padding: 0;
  margin: 0;
}
.game-pokeguesser-modal .pokemon-attempt {
  display: flex;
  list-style: none;
  gap: 1em;
  align-items: stretch;
  margin: 8px 0;
}
.game-pokeguesser-modal .pokemon-attempt span {
  display: inline-flex;
  align-items: center;
  border-radius: 8px;
  background-color: var(--color-bg-red);
  padding: 5px;
}
.game-pokeguesser-modal .pokemon-attempt span.valid {
  background-color: var(--color-bg-green);
}

/* app/public/src/pages/component/jukebox/jukebox.css */
.game-jukebox-modal select {
  display: block;
  width: 100%;
}
.game-jukebox-modal .actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.game-jukebox-modal .compact-disc {
  position: relative;
}
.game-jukebox-modal .compact-disc > span {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -45%);
}
.game-jukebox-modal .compact-disc img {
  height: 80px;
  width: 80px;
  animation: rotate infinite 2s linear;
  filter: invert();
}
.game-jukebox-modal .compact-disc.loading img {
  animation: rotate infinite 1s reverse;
  opacity: 0.25;
}
@keyframes rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* app/public/src/pages/component/meta-report/pokemon-report.css */
#pokemon-report {
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 1rem;
}
#pokemon-report .filters {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
#pokemon-report article {
  overflow-y: auto;
}

/* app/public/src/pages/component/meta-report/meta-chart.css */
.meta-svg-icon:hover {
  filter: invert(0.7);
  cursor: var(--cursor-hover);
}

/* app/public/src/pages/component/meta-report/composition-report.css */
#meta-report-compo {
  height: 100%;
  display: flex;
  flex-direction: column;
}
#meta-report-compo article {
  overflow-y: auto;
  display: flex;
  justify-content: space-between;
  gap: 1em;
}
#meta-report-compo-list {
  overflow-y: scroll;
  width: 50%;
  padding-right: 2px;
}
@media (width <= 1280px) {
  #meta-report-compo article {
    display: block;
  }
  #meta-report-compo svg {
    display: none;
  }
  #meta-report-compo-list {
    width: 100%;
  }
}

/* app/public/src/pages/component/meta-report/metadata-report.css */
#metadata-report {
  display: flex;
  gap: 1rem;
  flex-direction: row;
  justify-content: center;
  float: right;
  padding: .5rem;
}

/* app/public/src/pages/component/meta-report/meta-report.css */
#meta-report {
  height: calc(95vh - 6rem);
  color: white;
  width: 90vw;
}
#meta-report h2 {
  margin: 0;
}
#meta-report .react-tabs {
  height: 100%;
  display: flex;
  flex-direction: column;
}
#meta-report .react-tabs__tab-panel {
  flex: 1;
  overflow-y: auto;
}
#meta-report header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 0.25em;
}
#meta-report .rank {
  min-width: 2ch;
  text-align: center;
  font-size: 150%;
}
#meta-report label {
  color: #ccc;
  margin: 0;
}
#meta-report .team-comp,
#meta-report .item-stat,
#meta-report .pokemon-family-stat {
  background-color: rgb(84, 89, 107);
  margin-bottom: 0.5em;
  color: white;
  display: grid;
  grid-template-columns: 1ch 132px 5ch 6ch 8ch 5ch 1ch 1fr;
  justify-content: space-between;
  align-items: center;
  gap: 1em;
  overflow-x: auto;
}
#meta-report .team-comp {
  grid-template-columns: 1ch 12ch 5ch 6ch 8ch 5ch 1ch 1fr;
}
#meta-report .team-comp label {
  display: block;
}
#meta-report .item-stat {
  grid-template-columns: 2ch 48px 16ch 16ch 10ch 1fr;
}
#meta-report .pokemon-family-stat {
  grid-template-columns: 3ch 16ch 10ch 10ch 14ch 1fr;
}
#meta-report .pokemon-family-stat ul {
  padding: 0;
  margin: 0;
}
#meta-report .pokemon-family-stat li {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.5em;
}

/* app/public/src/pages/component/options/keybind-info.css */
.keybind-container.my-container {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
.keybind-container dl {
  display: grid;
  grid-template-columns: max-content auto;
  gap: 0.5em;
}
.keybind-container dt {
  grid-column-start: 1;
  text-align: right;
}
.keybind-container dd {
  grid-column-start: 2;
}
kbd.remappable {
  cursor: var(--cursor-hover);
}
kbd.remapping {
  background-color: var(--color-bg-accent);
}
kbd.conflict {
  background-color: red;
}

/* app/public/src/pages/component/options/game-files.css */
#game-files-tab progress {
  width: 100%;
}

/* app/public/src/pages/component/options/game-options-modal.css */
.game-options-modal {
  width: min(95vw, 500px);
}
.game-options-modal .modal-body {
  line-height: 1.5;
}
.game-options-modal .modal-body p {
  margin-bottom: 0.5em;
}
.game-options-modal .modal-body p.info {
  font-style: italic;
  font-size: 80%;
  line-height: 1.1;
  margin: 0.5em 0;
}

/* app/public/src/pages/component/patchnotes/poster.css */
.poster {
  position: relative;
  transition: all 1s ease-out;
  transform-style: preserve-3d;
  cursor: var(--cursor-hover);
  width: 350px;
  height: 500px;
}
.poster img {
  width: 100%;
  height: 100%;
}
.poster:hover {
  transform: scale(1.05);
}
.poster:hover .front {
  box-shadow: 0 0 2vw white;
}
.poster.flipped {
  animation: 500ms ease-in-out flipCard;
  animation-fill-mode: forwards;
}
.poster.flipped .front {
  box-shadow: 0 0 4vw var(--rarity-color, white);
}
@keyframes flipCard {
  0% {
    transform: translateX(-50%) rotateY(0) scale(1);
  }
  50% {
    transform: translateX(-50%) rotateY(90deg) rotateZ(-10deg) scale(1.25);
  }
  100% {
    transform: translateX(-50%) rotateY(180deg) scale(1);
  }
}
.poster .back,
.poster .front {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  transition: all 100ms ease-out;
  transform-origin: 25% top;
}
.poster .back {
  transform: rotateY(180deg);
  background: var(--color-bg-secondary);
  border-radius: 12px;
  border: var(--border-thick);
  text-align: left;
  padding: 0.5em;
  font-size: 16px;
  overflow: auto;
  height: 100%;
}
.poster .front {
  transform: rotateY(0);
}
.poster .back img {
  width: 40px;
  height: 40px;
  margin: 2px 0;
}
.poster .back h2 {
  margin-top: 0.5em;
}

/* app/public/src/pages/component/patchnotes/patchnotes.css */
.patchnotes.my-container {
  text-align: center;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.patchnotes h1 {
  font-size: 150%;
  text-shadow: 2px 2px 2px #00000040;
}
.patchnotes .modal-body {
  flex: 1;
  overflow-y: scroll;
}
.patchnotes .modal-body h2 {
  font-size: 120%;
  border-bottom: 2px solid #80808080;
}
.patchnotes .modal-body ul {
  padding: 0;
  margin: auto;
  justify-content: center;
}
.patchnotes .modal-body blockquote {
  text-align: right;
  color: gray;
  margin: 0;
}
.patchnotes .modal-body hr {
  height: 2px;
  background-color: white;
  margin: 1em 0;
}
.patchnotes .modal-body > ul {
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
  padding: 0;
}
.patchnotes .modal-body > ul > li {
  list-style: none;
  padding: 0;
}
@media (max-width: 640px) {
  .patchnotes .modal-body {
    padding: 0;
  }
}

/* app/public/src/pages/component/profile/game-history.css */
.game-history-list {
  display: flex;
  flex-direction: column;
}
.game-history-list h2 {
  margin: 0.5em 0;
  text-align: center;
}
.game-history-list div {
  flex: 1;
  overflow-y: auto;
}
.game-history.my-box {
  display: grid;
  align-items: center;
  gap: 0 0.5em;
  grid-template-areas: "top elo syn team" "date date syn team";
  grid-template-columns: 8ch 7ch 120px 1fr;
  background-color: var(--color-bg-secondary);
  margin: 0 0 0.5em 0;
  padding: 0.25em;
  justify-items: center;
  border: var(--border-thin);
}
.game-history .player-team-pokemons {
  padding-left: 0;
  padding-bottom: 10px;
  grid-area: team;
  align-self: start;
  justify-self: start;
}
.game-history .gamemode.icon {
  width: 2em;
  height: 2em;
  border-radius: 50%;
}
.game-history .top {
  grid-area: top;
  display: flex;
  align-items: center;
  gap: .25em;
}
.game-history .elo {
  grid-area: elo;
}
.game-history .date {
  grid-area: date;
  color: #ccc;
  font-size: 0.8em;
  margin: 0;
}
.game-history .synergies {
  grid-area: syn;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  justify-self: start;
  list-style: none;
  padding: 0;
  margin: 0;
}
.game-history .synergies > li {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.game-history .synergies > li > span {
  line-height: 80%;
}
@media (width <= 640px) {
  .game-history.my-box {
    grid-template-areas: "top elo date" "syn syn syn" "team team team";
    grid-template-columns: 5ch 7ch 1fr;
  }
}

/* app/public/src/pages/component/profile/progress-tab.css */
.progress-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1em;
  margin: 1em 0.5em;
}
.progress-box {
  display: grid;
  aspect-ratio: 1;
  place-content: center;
  text-align: center;
  padding: 1em;
  border: var(--border-thin);
  border-radius: 12px;
  position: relative;
  box-sizing: border-box;
  background: conic-gradient(var(--color-bg-accent) var(--pc), var(--color-bg-primary) 0);
}

/* app/public/src/pages/component/profile/profile.css */
.profile-modal {
  color: white;
  display: grid;
  grid-template-areas: "card     history" "search   history" "actions  history";
  grid-template-columns: 600px 1fr;
  grid-template-rows: auto auto 1fr;
  height: calc(95vh - 6em);
  width: 1800px;
  max-width: 95vw;
  padding-top: 0;
}
.profile-modal h2 {
  font-size: 2rem;
  margin: 0 0 0.25em 0;
  text-align: center;
}
.profile-modal .disclaimer {
  font-size: 1rem;
  margin: 0.5em 0;
  font-style: italic;
}
.profile-modal .profile-box {
  grid-area: card;
}
.profile-modal .search-bar {
  grid-area: search;
  margin: 0.5em 0;
  position: relative;
}
.profile-modal .search-bar input[type=text] {
  border-radius: 12px;
  padding: 0.375em 0.75em 0.2em 0.75em;
}
.profile-modal .search-bar .clear-button {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  display: flex;
  align-items: center;
  border: none;
  background: none;
  width: 42px;
  color: gray;
  z-index: 3;
}
.profile-modal .search-bar .clear-button:hover,
.profile-modal .search-bar .clear-button:focus {
  box-shadow: none;
  color: black;
}
.profile-modal .profile-actions {
  grid-area: actions;
  max-height: 100%;
  overflow-y: scroll;
}
.profile-actions .react-tabs {
  height: 100%;
  display: flex;
  flex-direction: column;
}
.profile-actions .react-tabs__tab-panel {
  flex: 1;
  overflow-y: auto;
  background-color: rgb(84, 89, 107);
  border-radius: 0 0 12px 12px;
  border: var(--border-thin);
  border-top: 0;
}
.profile-actions > .my-container {
  height: 100%;
  background-color: var(--color-bg-secondary);
}
.profile-actions > button,
.profile-actions > .my-input-group {
  margin: 0.25em;
}
.profile-modal article {
  grid-area: history;
  margin-left: 1em;
  max-height: 100%;
}
.profile-modal .gadgets {
  padding: 0;
}
.profile-modal .gadget {
  list-style: none;
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 0 1em;
  margin-top: 1em;
  border-width: 2px;
}
.profile-modal .gadget > img {
  grid-row: 1 / 4;
  width: 80px;
  margin: auto;
}
.profile-modal .gadget span {
  font-size: 2rem;
}
.profile-modal .gadget small {
  color: red;
}
.profile-modal .gadget p {
  margin: 0;
  line-height: 1em;
  font-size: 0.75em;
  color: #ccc;
}
@media (width <= 1280px) {
  .profile-modal {
    display: block;
    overflow-y: auto;
    padding: 0 0.5em;
  }
  .profile-modal article {
    margin-left: 0;
  }
  .game-history .date {
    justify-self: end;
  }
}
.user-menu {
  flex-basis: 30%;
  height: 90vh;
  overflow-y: scroll;
  color: white;
}
.user-menu .player-rank {
  line-height: 40px;
  min-width: 2ch;
  text-align: center;
}
ul.titles {
  display: flex;
  flex-direction: column;
  padding: 0;
  margin: 0;
}
ul.titles > li {
  display: flex;
  gap: 0.5em;
  margin: 0.1em 0;
  padding: 0.5em;
  list-style: none;
  justify-content: space-between;
}
ul.titles > li div {
  display: flex;
  gap: 0.5em;
}
ul.titles > li p {
  color: #a0a0a0;
}
ul.titles > li span {
  color: #e76e55;
}
ul.titles > li.unlocked {
  background-color: var(--color-bg-primary);
}
ul.titles > li.selected {
  border-color: var(--color-fg-gold);
}
ul.titles > li.unlocked span {
  color: #92cc41;
}
ul.titles > li.unlocked p {
  color: white;
}
ul.titles > li.selected span {
  color: var(--color-fg-gold);
}
.search-suggestions {
  display: flex;
  padding: 0;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: space-around;
  list-style: none;
}
.search-suggestions .player.my-box {
  display: flex;
  flex-flow: column;
  padding: 5px;
}
.search-suggestions .player.my-box.banned {
  color: red;
}
.search-suggestions .player.my-box img {
  width: 40px;
  height: 40px;
  margin: 0 auto;
}
.player-history .actions {
  font-size: 80%;
  display: flex;
  gap: 0.25em;
  flex-wrap: wrap;
}

/* app/public/src/pages/component/tournaments-admin/tournament-admin.css */
.tournaments-admin {
  width: 1200px;
}
.tournaments-admin ul {
  padding: 0;
}
.tournaments-admin li {
  list-style: none;
}
.tournament-form {
  display: flex;
  gap: 0.5em;
  align-items: end;
}
.tournament-form label {
  display: block;
}
.tournaments-admin .actions {
  display: flex;
  gap: 0.5em;
  align-items: center;
}
.tournament-admin-item table {
  width: 100%;
}

/* app/public/src/pages/component/servers/servers-list.css */
#servers-list ul {
  padding: 0;
}
#servers-list li {
  list-style: none;
  margin-bottom: 1em;
}
#servers-list .server header {
  display: flex;
  justify-content: space-around;
  align-items: center;
  gap: 0.5em;
}
#servers-list .server .logo {
  width: 64px;
  height: 64px;
  flex: 0;
  object-fit: contain;
}
#servers-list .server.current {
  background-color: var(--color-bg-accent);
}
#servers-list .server h2 {
  flex: 1;
}
#servers-list .server dl {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  margin-top: 0.5em;
}
#servers-list .server dt {
  flex: 0;
}
#servers-list .server dt::after {
  content: ": ";
}
#servers-list .server dd {
  flex: 1;
  margin-left: .5em;
}
#servers-list .server .description {
  background-color: var(--color-bg-primary);
  border-top: 2px solid black;
  border-bottom: 2px solid black;
  padding: 1em;
  margin: 0 -0.5em -0.5em -0.5em;
  border-radius: 0 0 12px 12px;
}
#servers-list .server .status-online {
  color: var(--color-fg-green);
}
#servers-list .server .status-offline {
  color: var(--color-fg-red);
}

/* app/public/src/pages/component/main-sidebar/main-sidebar.css */
aside.sidebar {
  position: absolute;
  height: 100%;
  z-index: 100;
  background-color: var(--color-bg-primary);
}
.sidebar-logo {
  display: flex;
  align-items: center;
  color: white;
  width: 100%;
  background-color: var(--color-bg-primary);
}
.sidebar-logo img {
  width: 54px;
  margin: 8px 0px 8px 4px;
}
.sidebar .sidebar-logo > div {
  overflow: hidden;
}
.sidebar .sidebar-logo h1 {
  color: inherit;
  font-size: 1.2rem;
  white-space: nowrap;
  margin-bottom: 0;
}
.sidebar .sidebar-logo small {
  display: block;
  font-size: 1rem;
  opacity: 0.75;
}
#root .sidebar.ps-collapsed {
  width: 60px;
  min-width: 60px;
}
.sidebar.ps-collapsed .sidebar-logo div {
  color: transparent;
}
.sidebar.ps-collapsed .ps-sidebar-container {
  overflow: hidden !important;
}
.menu-item {
  width: 100%;
}
.menu-item a {
  width: 100%;
  cursor: var(--cursor-hover) !important;
}
.menu-item a span {
  display: flex;
  gap: 8px;
  align-items: center;
}
.ps-menu-root {
  height: 100%;
  background-color: var(--color-bg-primary);
}
.ps-menu-root ul {
  width: 100%;
  min-height: 100%;
  display: flex;
  flex-direction: column;
}
.ps-menu-root .spacer {
  flex: 1;
}
.ps-menu-label {
  color: white;
}
#root .ps-menu-button {
  padding-left: 10px;
}
.ps-menu-button .icon {
  position: relative;
  display: flex;
}
.ps-menu-button .notification {
  position: absolute;
  top: 0;
  right: -5px;
  height: 6px;
  font-size: 6px;
}
.menu-item {
  color: #333;
}
.menu-item a.ps-menu-button {
  background: var(--color-bg-secondary);
  border-bottom: 3px solid #00000060;
}
.menu-item:first-of-type a.ps-menu-button,
.spacer + .menu-item a.ps-menu-button,
.additional-links + .menu-item a.ps-menu-button {
  border-top: 3px solid #00000060;
}
.menu-item a.ps-menu-button:hover {
  background: var(--color-bg-accent);
}
.menu-item.red a.ps-menu-button:hover {
  background: #e76e55;
}
.menu-item.discord a.ps-menu-button:hover {
  background: #444ebe;
}
.menu-item.community-servers a.ps-menu-button:hover {
  background: #ee2097;
}
.menu-item.tipeee a.ps-menu-button:hover {
  background: #b13c49;
}
.ps-sidebar-container {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-radius: 0 12px 0 0;
}
#root .ps-sidebar-root {
  border-right: var(--border-thick);
  border-radius: 0 12px 12px 0;
  overflow: auto;
}
@media (max-width: 960px) {
  .ps-sidebar-root,
  #root #game-wrapper .ps-sidebar-root {
    left: 0;
    bottom: 0;
    top: auto;
  }
  #root #game-wrapper,
  #root main {
    left: 0;
    width: 100vw;
  }
  #root #game {
    width: 100vw;
  }
  .ps-sidebar-root.ps-collapsed {
    height: 60px;
    overflow: hidden;
  }
  .sidebar-logo {
    position: sticky;
    order: 2;
    bottom: 0;
    z-index: 2;
  }
}
.additional-links {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
  margin: 0.5em;
  font-size: 0.5em;
  align-items: center;
  text-align: center;
}
.lobby .additional-links a {
  color: #eee;
  animation: appear-after-opening 500ms;
}
.lobby .additional-links a:hover {
  color: #fff;
  text-decoration: underline;
}
.additional-links button {
  width: 100%;
}
@keyframes appear-after-opening {
  0% {
    opacity: 0;
  }
  80% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* app/public/src/pages/component/system/connection-status-notification.css */
.connection-status-notification {
  position: fixed;
  top: 1em;
  left: 1em;
  z-index: 9999;
}
.connection-status-notification img {
  width: 48px;
  height: 48px;
  margin-right: 0.5em;
}

/* app/public/src/pages/component/game/get-in-fullscreen.css */
#root .get-in-fullscreen {
  position: absolute;
  right: 6vw;
  top: calc(1.5% + 10px + 2vw);
  width: 320px;
  display: flex;
  flex-flow: column;
  justify-content: space-between;
  padding: 10px;
  overflow-y: scroll;
  max-height: 78%;
  color: #fff;
}
.get-in-fullscreen header {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5em;
  text-align: center;
}
.get-in-fullscreen header img {
  width: 60px;
  height: 60px;
}
.get-in-fullscreen .react-tabs__tab-list {
  display: flex;
  justify-content: space-evenly;
  margin-top: 0.5em;
  font-size: 1rem;
}
.get-in-fullscreen .react-tabs__tab-panel {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.get-in-fullscreen .react-tabs__tab-panel > p {
  grid-column: span 2;
  text-align: center;
  margin-bottom: 0.5em;
  font-size: 0.8em;
}
#get-in-fullscreen {
  position: absolute;
  right: 10vw;
  top: 0.5%;
  padding: 5px;
  background-color: var(--color-bg-primary);
}
#root #get-in-fullscreen:hover {
  filter: brightness(1.25);
}
#get-in-fullscreen img {
  height: 2vw;
  width: 2vw;
}

/* node_modules/firebaseui/dist/firebaseui.css */
.mdl-button {
  background: 0 0;
  border: none;
  border-radius: 2px;
  color: #000;
  position: relative;
  height: 36px;
  margin: 0;
  min-width: 64px;
  padding: 0 16px;
  display: inline-block;
  font-family:
    Roboto,
    Helvetica,
    Arial,
    sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  line-height: 1;
  letter-spacing: 0;
  overflow: hidden;
  will-change: box-shadow;
  transition:
    box-shadow .2s cubic-bezier(.4, 0, 1, 1),
    background-color .2s cubic-bezier(.4, 0, .2, 1),
    color .2s cubic-bezier(.4, 0, .2, 1);
  outline: 0;
  cursor: pointer;
  text-decoration: none;
  text-align: center;
  line-height: 36px;
  vertical-align: middle;
}
.mdl-button::-moz-focus-inner {
  border: 0;
}
.mdl-button:hover {
  background-color: rgba(158, 158, 158, .2);
}
.mdl-button:focus:not(:active) {
  background-color: rgba(0, 0, 0, .12);
}
.mdl-button:active {
  background-color: rgba(158, 158, 158, .4);
}
.mdl-button.mdl-button--colored {
  color: #3f51b5;
}
.mdl-button.mdl-button--colored:focus:not(:active) {
  background-color: rgba(0, 0, 0, .12);
}
input.mdl-button[type=submit] {
  -webkit-appearance: none;
}
.mdl-button--raised {
  background: rgba(158, 158, 158, .2);
  box-shadow:
    0 2px 2px 0 rgba(0, 0, 0, .14),
    0 3px 1px -2px rgba(0, 0, 0, .2),
    0 1px 5px 0 rgba(0, 0, 0, .12);
}
.mdl-button--raised:active {
  box-shadow:
    0 4px 5px 0 rgba(0, 0, 0, .14),
    0 1px 10px 0 rgba(0, 0, 0, .12),
    0 2px 4px -1px rgba(0, 0, 0, .2);
  background-color: rgba(158, 158, 158, .4);
}
.mdl-button--raised:focus:not(:active) {
  box-shadow: 0 0 8px rgba(0, 0, 0, .18), 0 8px 16px rgba(0, 0, 0, .36);
  background-color: rgba(158, 158, 158, .4);
}
.mdl-button--raised.mdl-button--colored {
  background: #3f51b5;
  color: #fff;
}
.mdl-button--raised.mdl-button--colored:hover {
  background-color: #3f51b5;
}
.mdl-button--raised.mdl-button--colored:active {
  background-color: #3f51b5;
}
.mdl-button--raised.mdl-button--colored:focus:not(:active) {
  background-color: #3f51b5;
}
.mdl-button--raised.mdl-button--colored .mdl-ripple {
  background: #fff;
}
.mdl-button--fab {
  border-radius: 50%;
  font-size: 24px;
  height: 56px;
  margin: auto;
  min-width: 56px;
  width: 56px;
  padding: 0;
  overflow: hidden;
  background: rgba(158, 158, 158, .2);
  box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, .12), 0 1px 1px 0 rgba(0, 0, 0, .24);
  position: relative;
  line-height: normal;
}
.mdl-button--fab .material-icons {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-12px, -12px);
  line-height: 24px;
  width: 24px;
}
.mdl-button--fab.mdl-button--mini-fab {
  height: 40px;
  min-width: 40px;
  width: 40px;
}
.mdl-button--fab .mdl-button__ripple-container {
  border-radius: 50%;
  -webkit-mask-image: -webkit-radial-gradient(circle, #fff, #000);
}
.mdl-button--fab:active {
  box-shadow:
    0 4px 5px 0 rgba(0, 0, 0, .14),
    0 1px 10px 0 rgba(0, 0, 0, .12),
    0 2px 4px -1px rgba(0, 0, 0, .2);
  background-color: rgba(158, 158, 158, .4);
}
.mdl-button--fab:focus:not(:active) {
  box-shadow: 0 0 8px rgba(0, 0, 0, .18), 0 8px 16px rgba(0, 0, 0, .36);
  background-color: rgba(158, 158, 158, .4);
}
.mdl-button--fab.mdl-button--colored {
  background: #ff4081;
  color: #fff;
}
.mdl-button--fab.mdl-button--colored:hover {
  background-color: #ff4081;
}
.mdl-button--fab.mdl-button--colored:focus:not(:active) {
  background-color: #ff4081;
}
.mdl-button--fab.mdl-button--colored:active {
  background-color: #ff4081;
}
.mdl-button--fab.mdl-button--colored .mdl-ripple {
  background: #fff;
}
.mdl-button--icon {
  border-radius: 50%;
  font-size: 24px;
  height: 32px;
  margin-left: 0;
  margin-right: 0;
  min-width: 32px;
  width: 32px;
  padding: 0;
  overflow: hidden;
  color: inherit;
  line-height: normal;
}
.mdl-button--icon .material-icons {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-12px, -12px);
  line-height: 24px;
  width: 24px;
}
.mdl-button--icon.mdl-button--mini-icon {
  height: 24px;
  min-width: 24px;
  width: 24px;
}
.mdl-button--icon.mdl-button--mini-icon .material-icons {
  top: 0;
  left: 0;
}
.mdl-button--icon .mdl-button__ripple-container {
  border-radius: 50%;
  -webkit-mask-image: -webkit-radial-gradient(circle, #fff, #000);
}
.mdl-button__ripple-container {
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 0;
  overflow: hidden;
}
.mdl-button.mdl-button--disabled .mdl-button__ripple-container .mdl-ripple,
.mdl-button[disabled] .mdl-button__ripple-container .mdl-ripple {
  background-color: transparent;
}
.mdl-button--primary.mdl-button--primary {
  color: #3f51b5;
}
.mdl-button--primary.mdl-button--primary .mdl-ripple {
  background: #fff;
}
.mdl-button--primary.mdl-button--primary.mdl-button--fab,
.mdl-button--primary.mdl-button--primary.mdl-button--raised {
  color: #fff;
  background-color: #3f51b5;
}
.mdl-button--accent.mdl-button--accent {
  color: #ff4081;
}
.mdl-button--accent.mdl-button--accent .mdl-ripple {
  background: #fff;
}
.mdl-button--accent.mdl-button--accent.mdl-button--fab,
.mdl-button--accent.mdl-button--accent.mdl-button--raised {
  color: #fff;
  background-color: #ff4081;
}
.mdl-button.mdl-button--disabled.mdl-button--disabled,
.mdl-button[disabled][disabled] {
  color: rgba(0, 0, 0, .26);
  cursor: default;
  background-color: transparent;
}
.mdl-button--fab.mdl-button--disabled.mdl-button--disabled,
.mdl-button--fab[disabled][disabled] {
  background-color: rgba(0, 0, 0, .12);
  color: rgba(0, 0, 0, .26);
}
.mdl-button--raised.mdl-button--disabled.mdl-button--disabled,
.mdl-button--raised[disabled][disabled] {
  background-color: rgba(0, 0, 0, .12);
  color: rgba(0, 0, 0, .26);
  box-shadow: none;
}
.mdl-button--colored.mdl-button--disabled.mdl-button--disabled,
.mdl-button--colored[disabled][disabled] {
  color: rgba(0, 0, 0, .26);
}
.mdl-button .material-icons {
  vertical-align: middle;
}
.mdl-card {
  display: flex;
  flex-direction: column;
  font-size: 16px;
  font-weight: 400;
  min-height: 200px;
  overflow: hidden;
  width: 330px;
  z-index: 1;
  position: relative;
  background: #fff;
  border-radius: 2px;
  box-sizing: border-box;
}
.mdl-card__media {
  background-color: #ff4081;
  background-repeat: repeat;
  background-position: 50% 50%;
  background-size: cover;
  background-origin: padding-box;
  background-attachment: scroll;
  box-sizing: border-box;
}
.mdl-card__title {
  align-items: center;
  color: #000;
  display: block;
  display: flex;
  justify-content: stretch;
  line-height: normal;
  padding: 16px 16px;
  perspective-origin: 165px 56px;
  transform-origin: 165px 56px;
  box-sizing: border-box;
}
.mdl-card__title.mdl-card--border {
  border-bottom: 1px solid rgba(0, 0, 0, .1);
}
.mdl-card__title-text {
  align-self: flex-end;
  color: inherit;
  display: block;
  display: flex;
  font-size: 24px;
  font-weight: 300;
  line-height: normal;
  overflow: hidden;
  transform-origin: 149px 48px;
  margin: 0;
}
.mdl-card__subtitle-text {
  font-size: 14px;
  color: rgba(0, 0, 0, .54);
  margin: 0;
}
.mdl-card__supporting-text {
  color: rgba(0, 0, 0, .54);
  font-size: 1rem;
  line-height: 18px;
  overflow: hidden;
  padding: 16px 16px;
  width: 90%;
}
.mdl-card__supporting-text.mdl-card--border {
  border-bottom: 1px solid rgba(0, 0, 0, .1);
}
.mdl-card__actions {
  font-size: 16px;
  line-height: normal;
  width: 100%;
  background-color: rgba(0, 0, 0, 0);
  padding: 8px;
  box-sizing: border-box;
}
.mdl-card__actions.mdl-card--border {
  border-top: 1px solid rgba(0, 0, 0, .1);
}
.mdl-card--expand {
  flex-grow: 1;
}
.mdl-card__menu {
  position: absolute;
  right: 16px;
  top: 16px;
}
.mdl-dialog {
  border: none;
  box-shadow:
    0 9px 46px 8px rgba(0, 0, 0, .14),
    0 11px 15px -7px rgba(0, 0, 0, .12),
    0 24px 38px 3px rgba(0, 0, 0, .2);
  width: 280px;
}
.mdl-dialog__title {
  padding: 24px 24px 0;
  margin: 0;
  font-size: 2.5rem;
}
.mdl-dialog__actions {
  padding: 8px 8px 8px 24px;
  display: flex;
  flex-direction: row-reverse;
  flex-wrap: wrap;
}
.mdl-dialog__actions > * {
  margin-right: 8px;
  height: 36px;
}
.mdl-dialog__actions > :first-child {
  margin-right: 0;
}
.mdl-dialog__actions--full-width {
  padding: 0 0 8px 0;
}
.mdl-dialog__actions--full-width > * {
  height: 48px;
  flex: 0 0 100%;
  padding-right: 16px;
  margin-right: 0;
  text-align: right;
}
.mdl-dialog__content {
  padding: 20px 24px 24px 24px;
  color: rgba(0, 0, 0, .54);
}
.mdl-progress {
  display: block;
  position: relative;
  height: 4px;
  width: 500px;
  max-width: 100%;
}
.mdl-progress > .bar {
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  width: 0%;
  transition: width .2s cubic-bezier(.4, 0, .2, 1);
}
.mdl-progress > .progressbar {
  background-color: #3f51b5;
  z-index: 1;
  left: 0;
}
.mdl-progress > .bufferbar {
  background-image:
    linear-gradient(
      to right,
      rgba(255, 255, 255, .7),
      rgba(255, 255, 255, .7)),
    linear-gradient(
      to right,
      #3f51b5,
      #3f51b5);
  z-index: 0;
  left: 0;
}
.mdl-progress > .auxbar {
  right: 0;
}
@supports (-webkit-appearance:none) {
  .mdl-progress:not(.mdl-progress--indeterminate):not(.mdl-progress--indeterminate) > .auxbar,
  .mdl-progress:not(.mdl-progress__indeterminate):not(.mdl-progress__indeterminate) > .auxbar {
    background-image:
      linear-gradient(
        to right,
        rgba(255, 255, 255, .7),
        rgba(255, 255, 255, .7)),
      linear-gradient(
        to right,
        #3f51b5,
        #3f51b5);
    mask: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHZpZXdQb3J0PSIwIDAgMTIgNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxlbGxpcHNlIGN4PSIyIiBjeT0iMiIgcng9IjIiIHJ5PSIyIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImN4IiBmcm9tPSIyIiB0bz0iLTEwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvZWxsaXBzZT4KICA8ZWxsaXBzZSBjeD0iMTQiIGN5PSIyIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJsb2FkZXIiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giIGZyb209IjE0IiB0bz0iMiIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICA8L2VsbGlwc2U+Cjwvc3ZnPgo=);
  }
}
.mdl-progress:not(.mdl-progress--indeterminate) > .auxbar,
.mdl-progress:not(.mdl-progress__indeterminate) > .auxbar {
  background-image:
    linear-gradient(
      to right,
      rgba(255, 255, 255, .9),
      rgba(255, 255, 255, .9)),
    linear-gradient(
      to right,
      #3f51b5,
      #3f51b5);
}
.mdl-progress.mdl-progress--indeterminate > .bar1,
.mdl-progress.mdl-progress__indeterminate > .bar1 {
  background-color: #3f51b5;
  animation-name: indeterminate1;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}
.mdl-progress.mdl-progress--indeterminate > .bar3,
.mdl-progress.mdl-progress__indeterminate > .bar3 {
  background-image: none;
  background-color: #3f51b5;
  animation-name: indeterminate2;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}
@keyframes indeterminate1 {
  0% {
    left: 0;
    width: 0%;
  }
  50% {
    left: 25%;
    width: 75%;
  }
  75% {
    left: 100%;
    width: 0%;
  }
}
@keyframes indeterminate2 {
  0% {
    left: 0;
    width: 0%;
  }
  50% {
    left: 0;
    width: 0%;
  }
  75% {
    left: 0;
    width: 25%;
  }
  100% {
    left: 100%;
    width: 0%;
  }
}
.mdl-shadow--2dp {
  box-shadow:
    0 2px 2px 0 rgba(0, 0, 0, .14),
    0 3px 1px -2px rgba(0, 0, 0, .2),
    0 1px 5px 0 rgba(0, 0, 0, .12);
}
.mdl-shadow--3dp {
  box-shadow:
    0 3px 4px 0 rgba(0, 0, 0, .14),
    0 3px 3px -2px rgba(0, 0, 0, .2),
    0 1px 8px 0 rgba(0, 0, 0, .12);
}
.mdl-shadow--4dp {
  box-shadow:
    0 4px 5px 0 rgba(0, 0, 0, .14),
    0 1px 10px 0 rgba(0, 0, 0, .12),
    0 2px 4px -1px rgba(0, 0, 0, .2);
}
.mdl-shadow--6dp {
  box-shadow:
    0 6px 10px 0 rgba(0, 0, 0, .14),
    0 1px 18px 0 rgba(0, 0, 0, .12),
    0 3px 5px -1px rgba(0, 0, 0, .2);
}
.mdl-shadow--8dp {
  box-shadow:
    0 8px 10px 1px rgba(0, 0, 0, .14),
    0 3px 14px 2px rgba(0, 0, 0, .12),
    0 5px 5px -3px rgba(0, 0, 0, .2);
}
.mdl-shadow--16dp {
  box-shadow:
    0 16px 24px 2px rgba(0, 0, 0, .14),
    0 6px 30px 5px rgba(0, 0, 0, .12),
    0 8px 10px -5px rgba(0, 0, 0, .2);
}
.mdl-shadow--24dp {
  box-shadow:
    0 9px 46px 8px rgba(0, 0, 0, .14),
    0 11px 15px -7px rgba(0, 0, 0, .12),
    0 24px 38px 3px rgba(0, 0, 0, .2);
}
.mdl-spinner {
  display: inline-block;
  position: relative;
  width: 28px;
  height: 28px;
}
.mdl-spinner:not(.is-upgraded).is-active:after {
  content: "Loading...";
}
.mdl-spinner.is-upgraded.is-active {
  animation: mdl-spinner__container-rotate 1.568s linear infinite;
}
@keyframes mdl-spinner__container-rotate {
  to {
    transform: rotate(360deg);
  }
}
.mdl-spinner__layer {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0;
}
.mdl-spinner__layer-1 {
  border-color: #42a5f5;
}
.mdl-spinner--single-color .mdl-spinner__layer-1 {
  border-color: #3f51b5;
}
.mdl-spinner.is-active .mdl-spinner__layer-1 {
  animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4, 0, .2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(.4, 0, .2, 1) infinite both;
}
.mdl-spinner__layer-2 {
  border-color: #f44336;
}
.mdl-spinner--single-color .mdl-spinner__layer-2 {
  border-color: #3f51b5;
}
.mdl-spinner.is-active .mdl-spinner__layer-2 {
  animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4, 0, .2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(.4, 0, .2, 1) infinite both;
}
.mdl-spinner__layer-3 {
  border-color: #fdd835;
}
.mdl-spinner--single-color .mdl-spinner__layer-3 {
  border-color: #3f51b5;
}
.mdl-spinner.is-active .mdl-spinner__layer-3 {
  animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4, 0, .2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(.4, 0, .2, 1) infinite both;
}
.mdl-spinner__layer-4 {
  border-color: #4caf50;
}
.mdl-spinner--single-color .mdl-spinner__layer-4 {
  border-color: #3f51b5;
}
.mdl-spinner.is-active .mdl-spinner__layer-4 {
  animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4, 0, .2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(.4, 0, .2, 1) infinite both;
}
@keyframes mdl-spinner__fill-unfill-rotate {
  12.5% {
    transform: rotate(135deg);
  }
  25% {
    transform: rotate(270deg);
  }
  37.5% {
    transform: rotate(405deg);
  }
  50% {
    transform: rotate(540deg);
  }
  62.5% {
    transform: rotate(675deg);
  }
  75% {
    transform: rotate(810deg);
  }
  87.5% {
    transform: rotate(945deg);
  }
  to {
    transform: rotate(1080deg);
  }
}
@keyframes mdl-spinner__layer-1-fade-in-out {
  from {
    opacity: .99;
  }
  25% {
    opacity: .99;
  }
  26% {
    opacity: 0;
  }
  89% {
    opacity: 0;
  }
  90% {
    opacity: .99;
  }
  100% {
    opacity: .99;
  }
}
@keyframes mdl-spinner__layer-2-fade-in-out {
  from {
    opacity: 0;
  }
  15% {
    opacity: 0;
  }
  25% {
    opacity: .99;
  }
  50% {
    opacity: .99;
  }
  51% {
    opacity: 0;
  }
}
@keyframes mdl-spinner__layer-3-fade-in-out {
  from {
    opacity: 0;
  }
  40% {
    opacity: 0;
  }
  50% {
    opacity: .99;
  }
  75% {
    opacity: .99;
  }
  76% {
    opacity: 0;
  }
}
@keyframes mdl-spinner__layer-4-fade-in-out {
  from {
    opacity: 0;
  }
  65% {
    opacity: 0;
  }
  75% {
    opacity: .99;
  }
  90% {
    opacity: .99;
  }
  100% {
    opacity: 0;
  }
}
.mdl-spinner__gap-patch {
  position: absolute;
  box-sizing: border-box;
  top: 0;
  left: 45%;
  width: 10%;
  height: 100%;
  overflow: hidden;
  border-color: inherit;
}
.mdl-spinner__gap-patch .mdl-spinner__circle {
  width: 1000%;
  left: -450%;
}
.mdl-spinner__circle-clipper {
  display: inline-block;
  position: relative;
  width: 50%;
  height: 100%;
  overflow: hidden;
  border-color: inherit;
}
.mdl-spinner__circle-clipper.mdl-spinner__left {
  float: left;
}
.mdl-spinner__circle-clipper.mdl-spinner__right {
  float: right;
}
.mdl-spinner__circle-clipper .mdl-spinner__circle {
  width: 200%;
}
.mdl-spinner__circle {
  box-sizing: border-box;
  height: 100%;
  border-width: 3px;
  border-style: solid;
  border-color: inherit;
  border-bottom-color: transparent !important;
  border-radius: 50%;
  animation: none;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.mdl-spinner__left .mdl-spinner__circle {
  border-right-color: transparent !important;
  transform: rotate(129deg);
}
.mdl-spinner.is-active .mdl-spinner__left .mdl-spinner__circle {
  animation: mdl-spinner__left-spin 1333ms cubic-bezier(.4, 0, .2, 1) infinite both;
}
.mdl-spinner__right .mdl-spinner__circle {
  left: -100%;
  border-left-color: transparent !important;
  transform: rotate(-129deg);
}
.mdl-spinner.is-active .mdl-spinner__right .mdl-spinner__circle {
  animation: mdl-spinner__right-spin 1333ms cubic-bezier(.4, 0, .2, 1) infinite both;
}
@keyframes mdl-spinner__left-spin {
  from {
    transform: rotate(130deg);
  }
  50% {
    transform: rotate(-5deg);
  }
  to {
    transform: rotate(130deg);
  }
}
@keyframes mdl-spinner__right-spin {
  from {
    transform: rotate(-130deg);
  }
  50% {
    transform: rotate(5deg);
  }
  to {
    transform: rotate(-130deg);
  }
}
.mdl-textfield {
  position: relative;
  font-size: 16px;
  display: inline-block;
  box-sizing: border-box;
  width: 300px;
  max-width: 100%;
  margin: 0;
  padding: 20px 0;
}
.mdl-textfield .mdl-button {
  position: absolute;
  bottom: 20px;
}
.mdl-textfield--align-right {
  text-align: right;
}
.mdl-textfield--full-width {
  width: 100%;
}
.mdl-textfield--expandable {
  min-width: 32px;
  width: auto;
  min-height: 32px;
}
.mdl-textfield--expandable .mdl-button--icon {
  top: 16px;
}
.mdl-textfield__input {
  border: none;
  border-bottom: 1px solid rgba(0, 0, 0, .12);
  display: block;
  font-size: 16px;
  font-family:
    Helvetica,
    Arial,
    sans-serif;
  margin: 0;
  padding: 4px 0;
  width: 100%;
  background: 0 0;
  text-align: left;
  color: inherit;
}
.mdl-textfield__input[type=number] {
  -moz-appearance: textfield;
}
.mdl-textfield__input[type=number]::-webkit-inner-spin-button,
.mdl-textfield__input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.mdl-textfield.is-focused .mdl-textfield__input {
  outline: 0;
}
.mdl-textfield.is-invalid .mdl-textfield__input {
  border-color: #d50000;
  box-shadow: none;
}
.mdl-textfield.is-disabled .mdl-textfield__input,
fieldset[disabled] .mdl-textfield .mdl-textfield__input {
  background-color: transparent;
  border-bottom: 1px dotted rgba(0, 0, 0, .12);
  color: rgba(0, 0, 0, .26);
}
.mdl-textfield textarea.mdl-textfield__input {
  display: block;
}
.mdl-textfield__label {
  bottom: 0;
  color: rgba(0, 0, 0, .26);
  font-size: 16px;
  left: 0;
  right: 0;
  pointer-events: none;
  position: absolute;
  display: block;
  top: 24px;
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-align: left;
}
.mdl-textfield.has-placeholder .mdl-textfield__label,
.mdl-textfield.is-dirty .mdl-textfield__label {
  visibility: hidden;
}
.mdl-textfield--floating-label .mdl-textfield__label {
  transition-duration: .2s;
  transition-timing-function: cubic-bezier(.4, 0, .2, 1);
}
.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {
  transition: none;
}
.mdl-textfield.is-disabled.is-disabled .mdl-textfield__label,
fieldset[disabled] .mdl-textfield .mdl-textfield__label {
  color: rgba(0, 0, 0, .26);
}
.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
.mdl-textfield--floating-label.is-dirty .mdl-textfield__label,
.mdl-textfield--floating-label.is-focused .mdl-textfield__label {
  color: #3f51b5;
  font-size: 12px;
  top: 4px;
  visibility: visible;
}
.mdl-textfield--floating-label.has-placeholder .mdl-textfield__expandable-holder .mdl-textfield__label,
.mdl-textfield--floating-label.is-dirty .mdl-textfield__expandable-holder .mdl-textfield__label,
.mdl-textfield--floating-label.is-focused .mdl-textfield__expandable-holder .mdl-textfield__label {
  top: -16px;
}
.mdl-textfield--floating-label.is-invalid .mdl-textfield__label {
  color: #d50000;
  font-size: 12px;
}
.mdl-textfield__label:after {
  background-color: #3f51b5;
  bottom: 20px;
  content: "";
  height: 2px;
  left: 45%;
  position: absolute;
  transition-duration: .2s;
  transition-timing-function: cubic-bezier(.4, 0, .2, 1);
  visibility: hidden;
  width: 10px;
}
.mdl-textfield.is-focused .mdl-textfield__label:after {
  left: 0;
  visibility: visible;
  width: 100%;
}
.mdl-textfield.is-invalid .mdl-textfield__label:after {
  background-color: #d50000;
}
.mdl-textfield__error {
  color: #d50000;
  position: absolute;
  font-size: 12px;
  margin-top: 3px;
  visibility: hidden;
  display: block;
}
.mdl-textfield.is-invalid .mdl-textfield__error {
  visibility: visible;
}
.mdl-textfield__expandable-holder {
  display: inline-block;
  position: relative;
  margin-left: 32px;
  transition-duration: .2s;
  transition-timing-function: cubic-bezier(.4, 0, .2, 1);
  display: inline-block;
  max-width: .1px;
}
.mdl-textfield.is-dirty .mdl-textfield__expandable-holder,
.mdl-textfield.is-focused .mdl-textfield__expandable-holder {
  max-width: 600px;
}
.mdl-textfield__expandable-holder .mdl-textfield__label:after {
  bottom: 0;
}
dialog {
  position: absolute;
  left: 0;
  right: 0;
  width: -moz-fit-content;
  width: -webkit-fit-content;
  width: fit-content;
  height: -moz-fit-content;
  height: -webkit-fit-content;
  height: fit-content;
  margin: auto;
  border: solid;
  padding: 1em;
  background: #fff;
  color: #000;
  display: block;
}
dialog:not([open]) {
  display: none;
}
dialog + .backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, .1);
}
._dialog_overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
dialog.fixed {
  position: fixed;
  top: 50%;
  transform: translate(0, -50%);
}
.firebaseui-container {
  background-color: #fff;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  color: rgba(0, 0, 0, .87);
  direction: ltr;
  font:
    16px Roboto,
    arial,
    sans-serif;
  margin: 0 auto;
  max-width: 360px;
  overflow: visible;
  position: relative;
  text-align: left;
  width: 100%;
}
.firebaseui-container.mdl-card {
  overflow: visible;
}
.firebaseui-card-header {
  padding: 24px 24px 0 24px;
}
.firebaseui-card-content {
  padding: 0 24px;
}
.firebaseui-card-footer {
  padding: 0 24px;
}
.firebaseui-card-actions {
  box-sizing: border-box;
  display: table;
  font-size: 14px;
  padding: 8px 24px 24px 24px;
  text-align: left;
  width: 100%;
}
.firebaseui-form-links {
  display: table-cell;
  vertical-align: middle;
  width: 100%;
}
.firebaseui-form-actions {
  display: table-cell;
  text-align: right;
  white-space: nowrap;
  width: 100%;
}
.firebaseui-subtitle,
.firebaseui-title {
  color: rgba(0, 0, 0, .87);
  direction: ltr;
  font-size: 20px;
  font-weight: 500;
  line-height: 24px;
  margin: 0;
  padding: 0;
  text-align: left;
}
.firebaseui-title {
  padding-bottom: 16px;
}
.firebaseui-subtitle {
  margin: 16px 0;
}
.firebaseui-text {
  color: rgba(0, 0, 0, .87);
  direction: ltr;
  font-size: 16px;
  line-height: 24px;
  text-align: left;
}
.firebaseui-id-page-password-recovery-email-sent p.firebaseui-text {
  margin: 16px 0;
}
.firebaseui-text-emphasis {
  font-weight: 700;
}
.firebaseui-error {
  color: #dd2c00;
  direction: ltr;
  font-size: 12px;
  line-height: 16px;
  margin: 0;
  text-align: left;
}
.firebaseui-text-input-error {
  margin: -16px 0 16px;
}
.firebaseui-error-wrapper {
  min-height: 16px;
}
.firebaseui-list-item {
  direction: ltr;
  margin: 0;
  padding: 0;
  text-align: left;
}
.firebaseui-hidden {
  display: none;
}
.firebaseui-relative-wrapper {
  position: relative;
}
.firebaseui-label {
  color: rgba(0, 0, 0, .54);
  direction: ltr;
  font-size: 16px;
  text-align: left;
}
.mdl-textfield--floating-label.is-dirty .mdl-textfield__label,
.mdl-textfield--floating-label.is-focused .mdl-textfield__label {
  color: #757575;
}
.firebaseui-input,
.firebaseui-input-invalid {
  border-radius: 0;
  color: rgba(0, 0, 0, .87);
  direction: ltr;
  font-size: 16px;
  width: 100%;
}
input.firebaseui-input,
input.firebaseui-input-invalid {
  direction: ltr;
  text-align: left;
}
.firebaseui-input-invalid {
  border-color: #dd2c00;
}
.firebaseui-textfield {
  width: 100%;
}
.firebaseui-textfield.mdl-textfield .firebaseui-input {
  border-color: rgba(0, 0, 0, .12);
}
.firebaseui-textfield.mdl-textfield .firebaseui-label::after {
  background-color: #3f51b5;
}
.firebaseui-textfield-invalid.mdl-textfield .firebaseui-input {
  border-color: #dd2c00;
}
.firebaseui-textfield-invalid.mdl-textfield .firebaseui-label::after {
  background-color: #dd2c00;
}
.firebaseui-button {
  display: inline-block;
  height: 36px;
  margin-left: 8px;
  min-width: 88px;
}
.firebaseui-link {
  color: #4285f4;
  font-variant: normal;
  font-weight: 400;
  text-decoration: none;
}
.firebaseui-link:hover {
  text-decoration: underline;
}
.firebaseui-indent {
  margin-left: 1em;
}
.firebaseui-tos {
  color: #757575;
  direction: ltr;
  font-size: 12px;
  line-height: 16px;
  margin-bottom: 24px;
  margin-top: 0;
  text-align: left;
}
.firebaseui-provider-sign-in-footer > .firebaseui-tos {
  text-align: center;
}
.firebaseui-tos-list {
  list-style: none;
  text-align: right;
}
.firebaseui-inline-list-item {
  display: inline-block;
  margin-left: 5px;
  margin-right: 5px;
}
.firebaseui-page-provider-sign-in,
.firebaseui-page-select-tenant {
  background: inherit;
}
.firebaseui-idp-list,
.firebaseui-tenant-list {
  list-style: none;
  margin: 1em 0;
  padding: 0;
}
.firebaseui-idp-button,
.firebaseui-tenant-button {
  direction: ltr;
  font-weight: 500;
  height: auto;
  line-height: normal;
  max-width: 220px;
  min-height: 40px;
  padding: 8px 16px;
  text-align: left;
  width: 100%;
}
.firebaseui-idp-list > .firebaseui-list-item,
.firebaseui-tenant-list > .firebaseui-list-item {
  margin-bottom: 15px;
  text-align: center;
}
.firebaseui-idp-icon-wrapper {
  display: table-cell;
  vertical-align: middle;
}
.firebaseui-idp-icon {
  border: none;
  display: inline-block;
  height: 18px;
  vertical-align: middle;
  width: 18px;
}
.firebaseui-idp-favicon {
  border: none;
  display: inline-block;
  height: 14px;
  margin-right: 5px;
  vertical-align: middle;
  width: 14px;
}
.firebaseui-idp-text {
  color: #fff;
  display: table-cell;
  font-size: 14px;
  padding-left: 16px;
  text-transform: none;
  vertical-align: middle;
}
.firebaseui-idp-text.firebaseui-idp-text-long {
  display: table-cell;
}
.firebaseui-idp-text.firebaseui-idp-text-short {
  display: none;
}
@media (max-width:268px) {
  .firebaseui-idp-text.firebaseui-idp-text-long {
    display: none;
  }
  .firebaseui-idp-text.firebaseui-idp-text-short {
    display: table-cell;
  }
}
@media (max-width:320px) {
  .firebaseui-recaptcha-container > div > div {
    transform: scale(.9);
    -webkit-transform: scale(.9);
    transform-origin: 0 0;
    -webkit-transform-origin: 0 0;
  }
}
.firebaseui-idp-google > .firebaseui-idp-text {
  color: #757575;
}
[data-provider-id="yahoo.com"] > .firebaseui-idp-icon-wrapper > .firebaseui-idp-icon {
  height: 22px;
  width: 22px;
}
.firebaseui-info-bar {
  background-color: #f9edbe;
  border: 1px solid #f0c36d;
  box-shadow: 0 2px 4px rgba(0, 0, 0, .2);
  -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, .2);
  -moz-box-shadow: 0 2px 4px rgba(0, 0, 0, .2);
  left: 10%;
  padding: 8px 16px;
  position: absolute;
  right: 10%;
  text-align: center;
  top: 0;
}
.firebaseui-info-bar-message {
  font-size: 12px;
  margin: 0;
}
.firebaseui-dialog {
  box-sizing: border-box;
  color: rgba(0, 0, 0, .87);
  font:
    16px Roboto,
    arial,
    sans-serif;
  height: auto;
  max-height: fit-content;
  padding: 24px;
  text-align: left;
}
.firebaseui-dialog-icon-wrapper {
  display: table-cell;
  vertical-align: middle;
}
.firebaseui-dialog-icon {
  float: left;
  height: 40px;
  margin-right: 24px;
  width: 40px;
}
.firebaseui-progress-dialog-message {
  display: table-cell;
  font-size: 16px;
  font-weight: 400;
  min-height: 40px;
  vertical-align: middle;
}
.firebaseui-progress-dialog-loading-icon {
  height: 28px;
  margin: 6px 30px 6px 6px;
  width: 28px;
}
.firebaseui-icon-done {
  background-image: url(https://www.gstatic.com/images/icons/material/system/2x/done_googgreen_36dp.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 36px 36px;
}
.firebaseui-phone-number {
  display: flex;
}
.firebaseui-country-selector {
  background-image: url(https://www.gstatic.com/images/icons/material/system/1x/arrow_drop_down_grey600_18dp.png);
  background-position: right center;
  background-repeat: no-repeat;
  background-size: 18px auto;
  border-radius: 0;
  border-bottom: 1px solid rgba(0, 0, 0, .12);
  color: rgba(0, 0, 0, .87);
  flex-shrink: 0;
  font-size: 16px;
  font-weight: 400;
  height: initial;
  line-height: normal;
  margin: 20px 24px 20px 0;
  padding: 4px 20px 4px 0;
  width: 90px;
}
.firebaseui-country-selector-flag {
  display: inline-block;
  margin-right: 1ex;
}
.firebaseui-flag {
  background-image: url(https://www.gstatic.com/firebasejs/ui/2.0.0/images/auth/flags_sprite_2x.png);
  background-size: 100% auto;
  filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, .54));
  height: 14px;
  width: 24px;
}
.firebaseui-list-box-dialog {
  max-height: 90%;
  overflow: auto;
  padding: 8px 0 0 0;
}
.firebaseui-list-box-actions {
  padding-bottom: 8px;
}
.firebaseui-list-box-icon-wrapper {
  display: table-cell;
  padding-right: 24px;
  vertical-align: top;
}
.firebaseui-list-box-label-wrapper {
  display: table-cell;
  vertical-align: top;
}
.firebaseui-list-box-dialog-button {
  color: rgba(0, 0, 0, .87);
  direction: ltr;
  font-size: 16px;
  font-weight: 400;
  height: initial;
  line-height: normal;
  min-height: 48px;
  padding: 14px 24px;
  text-align: left;
  text-transform: none;
  width: 100%;
}
.firebaseui-phone-number-error {
  margin-left: 114px;
}
.mdl-progress.firebaseui-busy-indicator {
  height: 2px;
  left: 0;
  position: absolute;
  top: 55px;
  width: 100%;
}
.mdl-spinner.firebaseui-busy-indicator {
  direction: initial;
  height: 56px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 30%;
  width: 56px;
}
.firebaseui-callback-indicator-container .firebaseui-busy-indicator {
  top: 0;
}
.firebaseui-callback-indicator-container {
  height: 120px;
}
.firebaseui-new-password-component {
  display: inline-block;
  position: relative;
  width: 100%;
}
.firebaseui-input-floating-button {
  background-position: center;
  background-repeat: no-repeat;
  display: block;
  height: 24px;
  position: absolute;
  right: 0;
  top: 20px;
  width: 24px;
}
.firebaseui-input-toggle-on {
  background-image: url(https://www.gstatic.com/images/icons/material/system/1x/visibility_black_24dp.png);
}
.firebaseui-input-toggle-off {
  background-image: url(https://www.gstatic.com/images/icons/material/system/1x/visibility_off_black_24dp.png);
}
.firebaseui-input-toggle-focus {
  opacity: .87;
}
.firebaseui-input-toggle-blur {
  opacity: .38;
}
.firebaseui-recaptcha-wrapper {
  display: table;
  margin: 0 auto;
  padding-bottom: 8px;
}
.firebaseui-recaptcha-container {
  display: table-cell;
}
.firebaseui-recaptcha-error-wrapper {
  caption-side: bottom;
  display: table-caption;
}
.firebaseui-change-phone-number-link {
  display: block;
}
.firebaseui-resend-container {
  direction: ltr;
  margin: 20px 0;
  text-align: center;
}
.firebaseui-id-resend-countdown {
  color: rgba(0, 0, 0, .38);
}
.firebaseui-id-page-phone-sign-in-start .firebaseui-form-actions div {
  float: left;
}
@media (max-width:480px) {
  .firebaseui-container {
    box-shadow: none;
    max-width: none;
    width: 100%;
  }
  .firebaseui-card-header {
    border-bottom: 1px solid #e0e0e0;
    margin-bottom: 16px;
    padding: 16px 24px 0 24px;
  }
  .firebaseui-title {
    padding-bottom: 16px;
  }
  .firebaseui-card-actions {
    padding-right: 24px;
  }
  .firebaseui-busy-indicator {
    top: 0;
  }
}
.mdl-textfield__label {
  font-weight: 400;
  margin-bottom: 0;
}
.firebaseui-id-page-blank {
  background: inherit;
  height: 64px;
}
.firebaseui-id-page-spinner {
  background: inherit;
  height: 64px;
}
.firebaseui-email-sent {
  background-image: url(https://www.gstatic.com/firebasejs/ui/2.0.0/images/auth/success_status.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 64px 64px;
  height: 64px;
  margin-top: 16px;
  text-align: center;
}
.firebaseui-text-justify {
  text-align: justify;
}
.firebaseui-flag-KY {
  background-position: 0 0;
}
.firebaseui-flag-AC {
  background-position: 0 -14px;
}
.firebaseui-flag-AE {
  background-position: 0 -28px;
}
.firebaseui-flag-AF {
  background-position: 0 -42px;
}
.firebaseui-flag-AG {
  background-position: 0 -56px;
}
.firebaseui-flag-AI {
  background-position: 0 -70px;
}
.firebaseui-flag-AL {
  background-position: 0 -84px;
}
.firebaseui-flag-AM {
  background-position: 0 -98px;
}
.firebaseui-flag-AO {
  background-position: 0 -112px;
}
.firebaseui-flag-AQ {
  background-position: 0 -126px;
}
.firebaseui-flag-AR {
  background-position: 0 -140px;
}
.firebaseui-flag-AS {
  background-position: 0 -154px;
}
.firebaseui-flag-AT {
  background-position: 0 -168px;
}
.firebaseui-flag-AU {
  background-position: 0 -182px;
}
.firebaseui-flag-AW {
  background-position: 0 -196px;
}
.firebaseui-flag-AX {
  background-position: 0 -210px;
}
.firebaseui-flag-AZ {
  background-position: 0 -224px;
}
.firebaseui-flag-BA {
  background-position: 0 -238px;
}
.firebaseui-flag-BB {
  background-position: 0 -252px;
}
.firebaseui-flag-BD {
  background-position: 0 -266px;
}
.firebaseui-flag-BE {
  background-position: 0 -280px;
}
.firebaseui-flag-BF {
  background-position: 0 -294px;
}
.firebaseui-flag-BG {
  background-position: 0 -308px;
}
.firebaseui-flag-BH {
  background-position: 0 -322px;
}
.firebaseui-flag-BI {
  background-position: 0 -336px;
}
.firebaseui-flag-BJ {
  background-position: 0 -350px;
}
.firebaseui-flag-BL {
  background-position: 0 -364px;
}
.firebaseui-flag-BM {
  background-position: 0 -378px;
}
.firebaseui-flag-BN {
  background-position: 0 -392px;
}
.firebaseui-flag-BO {
  background-position: 0 -406px;
}
.firebaseui-flag-BQ {
  background-position: 0 -420px;
}
.firebaseui-flag-BR {
  background-position: 0 -434px;
}
.firebaseui-flag-BS {
  background-position: 0 -448px;
}
.firebaseui-flag-BT {
  background-position: 0 -462px;
}
.firebaseui-flag-BV {
  background-position: 0 -476px;
}
.firebaseui-flag-BW {
  background-position: 0 -490px;
}
.firebaseui-flag-BY {
  background-position: 0 -504px;
}
.firebaseui-flag-BZ {
  background-position: 0 -518px;
}
.firebaseui-flag-CA {
  background-position: 0 -532px;
}
.firebaseui-flag-CC {
  background-position: 0 -546px;
}
.firebaseui-flag-CD {
  background-position: 0 -560px;
}
.firebaseui-flag-CF {
  background-position: 0 -574px;
}
.firebaseui-flag-CG {
  background-position: 0 -588px;
}
.firebaseui-flag-CH {
  background-position: 0 -602px;
}
.firebaseui-flag-CI {
  background-position: 0 -616px;
}
.firebaseui-flag-CK {
  background-position: 0 -630px;
}
.firebaseui-flag-CL {
  background-position: 0 -644px;
}
.firebaseui-flag-CM {
  background-position: 0 -658px;
}
.firebaseui-flag-CN {
  background-position: 0 -672px;
}
.firebaseui-flag-CO {
  background-position: 0 -686px;
}
.firebaseui-flag-CP {
  background-position: 0 -700px;
}
.firebaseui-flag-CR {
  background-position: 0 -714px;
}
.firebaseui-flag-CU {
  background-position: 0 -728px;
}
.firebaseui-flag-CV {
  background-position: 0 -742px;
}
.firebaseui-flag-CW {
  background-position: 0 -756px;
}
.firebaseui-flag-CX {
  background-position: 0 -770px;
}
.firebaseui-flag-CY {
  background-position: 0 -784px;
}
.firebaseui-flag-CZ {
  background-position: 0 -798px;
}
.firebaseui-flag-DE {
  background-position: 0 -812px;
}
.firebaseui-flag-DG {
  background-position: 0 -826px;
}
.firebaseui-flag-DJ {
  background-position: 0 -840px;
}
.firebaseui-flag-DK {
  background-position: 0 -854px;
}
.firebaseui-flag-DM {
  background-position: 0 -868px;
}
.firebaseui-flag-DO {
  background-position: 0 -882px;
}
.firebaseui-flag-DZ {
  background-position: 0 -896px;
}
.firebaseui-flag-EA {
  background-position: 0 -910px;
}
.firebaseui-flag-EC {
  background-position: 0 -924px;
}
.firebaseui-flag-EE {
  background-position: 0 -938px;
}
.firebaseui-flag-EG {
  background-position: 0 -952px;
}
.firebaseui-flag-EH {
  background-position: 0 -966px;
}
.firebaseui-flag-ER {
  background-position: 0 -980px;
}
.firebaseui-flag-ES {
  background-position: 0 -994px;
}
.firebaseui-flag-ET {
  background-position: 0 -1008px;
}
.firebaseui-flag-EU {
  background-position: 0 -1022px;
}
.firebaseui-flag-FI {
  background-position: 0 -1036px;
}
.firebaseui-flag-FJ {
  background-position: 0 -1050px;
}
.firebaseui-flag-FK {
  background-position: 0 -1064px;
}
.firebaseui-flag-FM {
  background-position: 0 -1078px;
}
.firebaseui-flag-FO {
  background-position: 0 -1092px;
}
.firebaseui-flag-FR {
  background-position: 0 -1106px;
}
.firebaseui-flag-GA {
  background-position: 0 -1120px;
}
.firebaseui-flag-GB {
  background-position: 0 -1134px;
}
.firebaseui-flag-GD {
  background-position: 0 -1148px;
}
.firebaseui-flag-GE {
  background-position: 0 -1162px;
}
.firebaseui-flag-GF {
  background-position: 0 -1176px;
}
.firebaseui-flag-GG {
  background-position: 0 -1190px;
}
.firebaseui-flag-GH {
  background-position: 0 -1204px;
}
.firebaseui-flag-GI {
  background-position: 0 -1218px;
}
.firebaseui-flag-GL {
  background-position: 0 -1232px;
}
.firebaseui-flag-GM {
  background-position: 0 -1246px;
}
.firebaseui-flag-GN {
  background-position: 0 -1260px;
}
.firebaseui-flag-GP {
  background-position: 0 -1274px;
}
.firebaseui-flag-GQ {
  background-position: 0 -1288px;
}
.firebaseui-flag-GR {
  background-position: 0 -1302px;
}
.firebaseui-flag-GS {
  background-position: 0 -1316px;
}
.firebaseui-flag-GT {
  background-position: 0 -1330px;
}
.firebaseui-flag-GU {
  background-position: 0 -1344px;
}
.firebaseui-flag-GW {
  background-position: 0 -1358px;
}
.firebaseui-flag-GY {
  background-position: 0 -1372px;
}
.firebaseui-flag-HK {
  background-position: 0 -1386px;
}
.firebaseui-flag-HM {
  background-position: 0 -1400px;
}
.firebaseui-flag-HN {
  background-position: 0 -1414px;
}
.firebaseui-flag-HR {
  background-position: 0 -1428px;
}
.firebaseui-flag-HT {
  background-position: 0 -1442px;
}
.firebaseui-flag-HU {
  background-position: 0 -1456px;
}
.firebaseui-flag-IC {
  background-position: 0 -1470px;
}
.firebaseui-flag-ID {
  background-position: 0 -1484px;
}
.firebaseui-flag-IE {
  background-position: 0 -1498px;
}
.firebaseui-flag-IL {
  background-position: 0 -1512px;
}
.firebaseui-flag-IM {
  background-position: 0 -1526px;
}
.firebaseui-flag-IN {
  background-position: 0 -1540px;
}
.firebaseui-flag-IO {
  background-position: 0 -1554px;
}
.firebaseui-flag-IQ {
  background-position: 0 -1568px;
}
.firebaseui-flag-IR {
  background-position: 0 -1582px;
}
.firebaseui-flag-IS {
  background-position: 0 -1596px;
}
.firebaseui-flag-IT {
  background-position: 0 -1610px;
}
.firebaseui-flag-JE {
  background-position: 0 -1624px;
}
.firebaseui-flag-JM {
  background-position: 0 -1638px;
}
.firebaseui-flag-JO {
  background-position: 0 -1652px;
}
.firebaseui-flag-JP {
  background-position: 0 -1666px;
}
.firebaseui-flag-KE {
  background-position: 0 -1680px;
}
.firebaseui-flag-KG {
  background-position: 0 -1694px;
}
.firebaseui-flag-KH {
  background-position: 0 -1708px;
}
.firebaseui-flag-KI {
  background-position: 0 -1722px;
}
.firebaseui-flag-KM {
  background-position: 0 -1736px;
}
.firebaseui-flag-KN {
  background-position: 0 -1750px;
}
.firebaseui-flag-KP {
  background-position: 0 -1764px;
}
.firebaseui-flag-KR {
  background-position: 0 -1778px;
}
.firebaseui-flag-KW {
  background-position: 0 -1792px;
}
.firebaseui-flag-AD {
  background-position: 0 -1806px;
}
.firebaseui-flag-KZ {
  background-position: 0 -1820px;
}
.firebaseui-flag-LA {
  background-position: 0 -1834px;
}
.firebaseui-flag-LB {
  background-position: 0 -1848px;
}
.firebaseui-flag-LC {
  background-position: 0 -1862px;
}
.firebaseui-flag-LI {
  background-position: 0 -1876px;
}
.firebaseui-flag-LK {
  background-position: 0 -1890px;
}
.firebaseui-flag-LR {
  background-position: 0 -1904px;
}
.firebaseui-flag-LS {
  background-position: 0 -1918px;
}
.firebaseui-flag-LT {
  background-position: 0 -1932px;
}
.firebaseui-flag-LU {
  background-position: 0 -1946px;
}
.firebaseui-flag-LV {
  background-position: 0 -1960px;
}
.firebaseui-flag-LY {
  background-position: 0 -1974px;
}
.firebaseui-flag-MA {
  background-position: 0 -1988px;
}
.firebaseui-flag-MC {
  background-position: 0 -2002px;
}
.firebaseui-flag-MD {
  background-position: 0 -2016px;
}
.firebaseui-flag-ME {
  background-position: 0 -2030px;
}
.firebaseui-flag-MF {
  background-position: 0 -2044px;
}
.firebaseui-flag-MG {
  background-position: 0 -2058px;
}
.firebaseui-flag-MH {
  background-position: 0 -2072px;
}
.firebaseui-flag-MK {
  background-position: 0 -2086px;
}
.firebaseui-flag-ML {
  background-position: 0 -2100px;
}
.firebaseui-flag-MM {
  background-position: 0 -2114px;
}
.firebaseui-flag-MN {
  background-position: 0 -2128px;
}
.firebaseui-flag-MO {
  background-position: 0 -2142px;
}
.firebaseui-flag-MP {
  background-position: 0 -2156px;
}
.firebaseui-flag-MQ {
  background-position: 0 -2170px;
}
.firebaseui-flag-MR {
  background-position: 0 -2184px;
}
.firebaseui-flag-MS {
  background-position: 0 -2198px;
}
.firebaseui-flag-MT {
  background-position: 0 -2212px;
}
.firebaseui-flag-MU {
  background-position: 0 -2226px;
}
.firebaseui-flag-MV {
  background-position: 0 -2240px;
}
.firebaseui-flag-MW {
  background-position: 0 -2254px;
}
.firebaseui-flag-MX {
  background-position: 0 -2268px;
}
.firebaseui-flag-MY {
  background-position: 0 -2282px;
}
.firebaseui-flag-MZ {
  background-position: 0 -2296px;
}
.firebaseui-flag-NA {
  background-position: 0 -2310px;
}
.firebaseui-flag-NC {
  background-position: 0 -2324px;
}
.firebaseui-flag-NE {
  background-position: 0 -2338px;
}
.firebaseui-flag-NF {
  background-position: 0 -2352px;
}
.firebaseui-flag-NG {
  background-position: 0 -2366px;
}
.firebaseui-flag-NI {
  background-position: 0 -2380px;
}
.firebaseui-flag-NL {
  background-position: 0 -2394px;
}
.firebaseui-flag-NO {
  background-position: 0 -2408px;
}
.firebaseui-flag-NP {
  background-position: 0 -2422px;
}
.firebaseui-flag-NR {
  background-position: 0 -2436px;
}
.firebaseui-flag-NU {
  background-position: 0 -2450px;
}
.firebaseui-flag-NZ {
  background-position: 0 -2464px;
}
.firebaseui-flag-OM {
  background-position: 0 -2478px;
}
.firebaseui-flag-PA {
  background-position: 0 -2492px;
}
.firebaseui-flag-PE {
  background-position: 0 -2506px;
}
.firebaseui-flag-PF {
  background-position: 0 -2520px;
}
.firebaseui-flag-PG {
  background-position: 0 -2534px;
}
.firebaseui-flag-PH {
  background-position: 0 -2548px;
}
.firebaseui-flag-PK {
  background-position: 0 -2562px;
}
.firebaseui-flag-PL {
  background-position: 0 -2576px;
}
.firebaseui-flag-PM {
  background-position: 0 -2590px;
}
.firebaseui-flag-PN {
  background-position: 0 -2604px;
}
.firebaseui-flag-PR {
  background-position: 0 -2618px;
}
.firebaseui-flag-PS {
  background-position: 0 -2632px;
}
.firebaseui-flag-PT {
  background-position: 0 -2646px;
}
.firebaseui-flag-PW {
  background-position: 0 -2660px;
}
.firebaseui-flag-PY {
  background-position: 0 -2674px;
}
.firebaseui-flag-QA {
  background-position: 0 -2688px;
}
.firebaseui-flag-RE {
  background-position: 0 -2702px;
}
.firebaseui-flag-RO {
  background-position: 0 -2716px;
}
.firebaseui-flag-RS {
  background-position: 0 -2730px;
}
.firebaseui-flag-RU {
  background-position: 0 -2744px;
}
.firebaseui-flag-RW {
  background-position: 0 -2758px;
}
.firebaseui-flag-SA {
  background-position: 0 -2772px;
}
.firebaseui-flag-SB {
  background-position: 0 -2786px;
}
.firebaseui-flag-SC {
  background-position: 0 -2800px;
}
.firebaseui-flag-SD {
  background-position: 0 -2814px;
}
.firebaseui-flag-SE {
  background-position: 0 -2828px;
}
.firebaseui-flag-SG {
  background-position: 0 -2842px;
}
.firebaseui-flag-SH {
  background-position: 0 -2856px;
}
.firebaseui-flag-SI {
  background-position: 0 -2870px;
}
.firebaseui-flag-SJ {
  background-position: 0 -2884px;
}
.firebaseui-flag-SK {
  background-position: 0 -2898px;
}
.firebaseui-flag-SL {
  background-position: 0 -2912px;
}
.firebaseui-flag-SM {
  background-position: 0 -2926px;
}
.firebaseui-flag-SN {
  background-position: 0 -2940px;
}
.firebaseui-flag-SO {
  background-position: 0 -2954px;
}
.firebaseui-flag-SR {
  background-position: 0 -2968px;
}
.firebaseui-flag-SS {
  background-position: 0 -2982px;
}
.firebaseui-flag-ST {
  background-position: 0 -2996px;
}
.firebaseui-flag-SV {
  background-position: 0 -3010px;
}
.firebaseui-flag-SX {
  background-position: 0 -3024px;
}
.firebaseui-flag-SY {
  background-position: 0 -3038px;
}
.firebaseui-flag-SZ {
  background-position: 0 -3052px;
}
.firebaseui-flag-TA {
  background-position: 0 -3066px;
}
.firebaseui-flag-TC {
  background-position: 0 -3080px;
}
.firebaseui-flag-TD {
  background-position: 0 -3094px;
}
.firebaseui-flag-TF {
  background-position: 0 -3108px;
}
.firebaseui-flag-TG {
  background-position: 0 -3122px;
}
.firebaseui-flag-TH {
  background-position: 0 -3136px;
}
.firebaseui-flag-TJ {
  background-position: 0 -3150px;
}
.firebaseui-flag-TK {
  background-position: 0 -3164px;
}
.firebaseui-flag-TL {
  background-position: 0 -3178px;
}
.firebaseui-flag-TM {
  background-position: 0 -3192px;
}
.firebaseui-flag-TN {
  background-position: 0 -3206px;
}
.firebaseui-flag-TO {
  background-position: 0 -3220px;
}
.firebaseui-flag-TR {
  background-position: 0 -3234px;
}
.firebaseui-flag-TT {
  background-position: 0 -3248px;
}
.firebaseui-flag-TV {
  background-position: 0 -3262px;
}
.firebaseui-flag-TW {
  background-position: 0 -3276px;
}
.firebaseui-flag-TZ {
  background-position: 0 -3290px;
}
.firebaseui-flag-UA {
  background-position: 0 -3304px;
}
.firebaseui-flag-UG {
  background-position: 0 -3318px;
}
.firebaseui-flag-UM {
  background-position: 0 -3332px;
}
.firebaseui-flag-UN {
  background-position: 0 -3346px;
}
.firebaseui-flag-US {
  background-position: 0 -3360px;
}
.firebaseui-flag-UY {
  background-position: 0 -3374px;
}
.firebaseui-flag-UZ {
  background-position: 0 -3388px;
}
.firebaseui-flag-VA {
  background-position: 0 -3402px;
}
.firebaseui-flag-VC {
  background-position: 0 -3416px;
}
.firebaseui-flag-VE {
  background-position: 0 -3430px;
}
.firebaseui-flag-VG {
  background-position: 0 -3444px;
}
.firebaseui-flag-VI {
  background-position: 0 -3458px;
}
.firebaseui-flag-VN {
  background-position: 0 -3472px;
}
.firebaseui-flag-VU {
  background-position: 0 -3486px;
}
.firebaseui-flag-WF {
  background-position: 0 -3500px;
}
.firebaseui-flag-WS {
  background-position: 0 -3514px;
}
.firebaseui-flag-XK {
  background-position: 0 -3528px;
}
.firebaseui-flag-YE {
  background-position: 0 -3542px;
}
.firebaseui-flag-YT {
  background-position: 0 -3556px;
}
.firebaseui-flag-ZA {
  background-position: 0 -3570px;
}
.firebaseui-flag-ZM {
  background-position: 0 -3584px;
}
.firebaseui-flag-ZW {
  background-position: 0 -3598px;
}

/* app/public/src/pages/component/auth/login.css */
#play-panel p {
  font-size: 150%;
  color: white;
  margin-bottom: 2em;
  text-shadow: 2px 4px 3px rgba(0, 0, 0, 0.3);
}
#play-panel .actions {
  display: flex;
  justify-content: space-around;
  flex-flow: column;
  gap: 0.5em;
  align-items: start;
  list-style: none;
  padding: 0;
}
#play-panel .actions a {
  text-decoration: none;
}
#play-panel .actions .bubbly {
  min-width: 8em;
}
@media (max-width: 640px) {
  #play-panel .actions {
    flex-direction: row;
  }
}

/* app/public/src/pages/auth.css */
.auth-page {
  display: grid;
  grid-template-areas: "header logo" "main logo" "media media";
  grid-template-columns: 6fr 4fr;
  grid-template-rows: 1fr 1fr 6rem;
  height: 100vh;
  padding: 5vmin;
  overflow-y: auto;
}
.auth-page header {
  grid-area: header;
}
.auth-page main {
  grid-area: main;
}
.auth-page header,
.auth-page main {
  display: flex;
  flex-flow: column;
  margin-top: 5vh;
  margin-bottom: 5vh;
  justify-content: space-between;
}
.auth-page header > h1 {
  font-size: 5vw;
  color: white;
  text-shadow: 2px 4px 3px rgba(0, 0, 0, 0.3);
}
.auth-page .logo {
  grid-area: logo;
  object-fit: contain;
}
.auth-page .media {
  grid-area: media;
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
  align-items: center;
  justify-content: end;
  margin-right: 1em;
  color: white;
  text-shadow: 2px 4px 3px rgba(0, 0, 0, 0.3);
}
@media (width <= 1024px) {
  .media {
    display: none !important;
  }
}
.auth-page .media p:last-child {
  flex: 1;
}
.mobile-warning {
  background: #e76e55;
  color: white;
  padding: 1em;
  border: var(--border-thick);
  border-radius: 12px;
  text-align: center;
  grid-column: 1 / 3;
  font-size: 1.2rem;
  text-shadow: 2px 2px 2px #00000080;
}
.auth-page .disclaimer {
  color: white;
  text-shadow: 2px 4px 3px rgba(0, 0, 0, 0.3);
  font-size: 1.5em;
}
@media (width <= 640px) {
  .auth-page {
    display: block;
  }
  .auth-page header > h1 {
    font-size: 2em;
  }
  .auth-page .logo {
    width: 80px;
    height: 80px;
    float: right;
  }
  .auth-page header,
  .auth-page main {
    margin: 0;
  }
  .welcome-text {
    line-height: 1.25;
  }
}

/* app/public/src/pages/component/bot-builder/score-indicator.css */
.score-indicator {
  display: flex;
  align-items: center;
  gap: 1em;
}
.score-indicator-bars {
  width: 240px;
  height: 24px;
  display: flex;
  position: relative;
  border: var(--border-thin);
}
.score-indicator .cursor {
  position: absolute;
  width: 0;
  height: 0;
  top: 60%;
  transform: translateX(-50%);
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 20px solid black;
}
.score-indicator span {
  text-transform: uppercase;
  margin-right: 1em;
  width: 10ch;
  display: inline-block;
}

/* app/public/src/pages/component/bot-builder/bot-builder.css */
#bot-builder {
  color: white;
  padding: 1em;
  display: flex;
  flex-direction: column;
  gap: 1em;
  height: 100vh;
}
#bot-builder header {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  justify-content: space-between;
  gap: 1em;
}
#bot-builder .step-info {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  width: 1440px;
  max-width: 100%;
  margin: 0 auto;
}
#bot-builder .step-control {
  display: flex;
  align-items: center;
  font-size: 2rem;
  width: 320px;
}
#bot-builder .step-control button {
  background-color: #4f5160;
}
#bot-builder button[disabled] {
  opacity: 0.5;
}
#bot-builder .step-control img {
  height: 48px;
}
#bot-builder .step-control span {
  flex: 1;
  white-space: nowrap;
  text-align: center;
}
#bot-builder #team-builder {
  flex: 1;
}
#bot-builder .invalid {
  color: red;
}
#bot-builder .error {
  position: absolute;
  left: 50%;
  color: red;
  transform: translateX(-50%);
}
#bot-builder #team-editor tr:nth-child(2) td:nth-child(4) {
  background-image: url(assets/ui/lightcell.png?raw);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.bot-export-modal {
  max-width: 400px;
}
.bot-export-modal .error,
.bot-import-modal .error {
  color: red;
  font-weight: bold;
}

/* app/public/src/pages/component/bot-builder/bot-manager-panel.css */
#bot-manager-panel {
  color: white;
  width: max-content;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100vh;
  padding: 1em;
  gap: 1em;
}
#bots-list {
  display: flex;
  flex-flow: column;
  align-items: center;
  overflow: auto;
  max-width: 100%;
  padding: 0;
}
#bot-manager-panel .controls {
  display: flex;
  justify-content: start;
  align-items: center;
  gap: 1em;
}
#bots-list table {
  width: 100%;
}
#bots-list table thead {
  border-bottom: 4px solid white;
}
#bots-list td,
#bots-list th {
  padding: 0 0.5em;
  text-align: center;
}
#bots-list td:first-child {
  text-align: left;
  padding: 0;
}
#bot-manager-panel tr:nth-child(even) {
  background-color: var(--color-bg-secondary);
}
#bots-list button:not(:first-of-type) {
  margin-left: 0.5em;
}

/* app/public/src/pages/component/debug/debug-scene.css */
#debug-scene {
  position: relative;
}
.sprite-viewer-sprite #debug-scene {
  width: 800px;
  height: 800px;
  overflow: hidden;
  border: var(--border-thick);
  border-radius: 4px;
}
.sprite-viewer-sprite #debug-scene canvas {
  position: relative;
  left: -580px;
  top: 0;
}
#debug-scene #status-message {
  position: absolute;
  left: 0;
  top: 0;
  color: white;
  background-color: black;
  z-index: 2;
}
#debug-scene-controls {
  position: fixed;
  top: 1em;
  right: 1em;
  background-color: black;
  color: white;
  display: flex;
  flex-direction: row-reverse;
  align-items: start;
  gap: 0.5em;
  padding: 0.5em;
}

/* app/public/src/pages/component/available-room-menu/tournament-item.css */
.tournament-item {
  display: flex;
  flex-flow: column nowrap;
  overflow-y: auto;
}
.tournament-item > * {
  flex: 0;
}
.tournament-item > .react-tabs {
  flex: 1;
  display: flex;
  flex-flow: column nowrap;
  min-height: 0;
}
.tournament-item .actions {
  display: flex;
  justify-content: end;
}
.tournament-item .remove-btn {
  float: right;
}
.tournament-item .player-box {
  display: flex;
  gap: 0.5em;
  align-items: center;
  justify-content: space-between;
  border-radius: 12px;
  border: var(--border-thin);
  background-color: var(--color-bg-primary);
  overflow: hidden;
  margin-bottom: 0.25em;
}
.tournament-item .player-box.eliminated {
  background-color: var(--color-bg-secondary);
  color: #ccc;
}
.tournament-item .player-box.eliminated img {
  filter: grayscale(1);
}
.tournament-item .player-box.myself {
  background-color: var(--color-bg-accent);
}
.tournament-item .player-box span {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.tournament-item .player-ranks {
  display: block;
  min-width: 2ch;
}
.tournament-item p {
  margin: 0;
  flex: 1;
}
.tournament-item ul {
  padding: 0;
  margin: 0;
}
.tournament-item .player-rank {
  line-height: 40px;
  min-width: 2ch;
  text-align: center;
}
.tournament-item .react-tabs__tab-panel--selected {
  overflow-y: auto;
}

/* app/public/src/pages/component/chat/chat.css */
.user-chat {
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-start;
  align-items: stretch;
  flex: 1;
  overflow-y: auto;
}
.user-chat h2 {
  text-align: center;
}
.user-chat form {
  display: flex;
  flex-flow: row nowrap;
  width: 100%;
  align-items: stretch;
  margin-top: 0.25em;
  gap: 0.25em;
}
.user-chat form input {
  flex: 1;
}
.user-chat form button {
  flex: 0;
}
.chat-history {
  flex: 1;
  overflow-y: auto;
}
.chat-history .date {
  color: white;
  width: 100%;
  text-align: center;
}
.chat button {
  align-self: start;
}
.chat-message-author span {
  line-height: 1.2em;
}
.chat-message-container {
  display: flex;
  flex-direction: column;
  margin: 0.25em 0;
  border-radius: 8px;
  font-size: 1.25rem;
  border: var(--border-thin);
  background: rgba(97, 115, 138, 0.815);
  color: white;
  cursor: var(--cursor-hover);
}
.chat-message-container {
  width: 100%;
  display: flex;
  flex-direction: column;
}
.chat-user {
  display: flex;
  gap: 8px;
  padding: 6px;
  background-color: var(--color-bg-secondary);
  border-bottom: var(--border-thin);
  border-radius: 4px 4px 0 0;
}
.chat-message {
  font-size: 1rem;
  line-height: 1.2em;
  word-break: break-word;
  padding: 6px;
}
.author-and-time {
  font-size: 1rem;
  width: 100%;
  word-break: break-word;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.chat-message-author {
  color: var(--color-fg-gold);
}
.chat-message-time {
  font-size: 0.75rem;
}
.remove-chat {
  align-self: center;
}
.same-user {
  background-color: rgba(17, 148, 236, 0.604);
}
.server-message {
  background-color: var(--color-bg-accent);
}

/* app/public/src/pages/component/announcements/announcements.css */
.announcements-container {
  flex: 1;
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-start;
  align-items: stretch;
  overflow-y: auto;
}
.announcements .tournaments {
  flex: 0;
  padding: 0;
  & > li {
    list-style: none;
    margin: 0.5em 0;
  }
}
.announcements .user-chat {
  min-height: 250px;
}
.announcements .tournaments li .tournament-item {
  max-height: 50vh;
}

/* app/public/src/pages/component/available-room-menu/room-item.css */
.room-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5em;
  margin-top: 0.5em;
}
.room-item > span {
  flex: 1;
  word-break: break-word;
}
.room-item .icon {
  width: 2em;
  height: 2em;
  &.gamemode {
    border-radius: 50%;
  }
}

/* app/public/src/pages/component/available-room-menu/room-selection-menu.css */
.room-selection-menu ul {
  list-style: none;
  padding: 0;
  margin: 0.5em;
  display: flex;
  gap: 1em;
}
.room-selection-menu li {
  text-align: center;
  flex: 1;
  padding: 1em 0.5em;
}
.room-selection-menu li > * {
  user-select: none;
}
.room-selection-menu li:hover {
  background-color: var(--color-bg-accent);
  cursor: var(--cursor-hover);
}
.room-selection-menu li img {
  width: 100%;
  max-width: 200px;
  margin: 0 auto;
}
.room-selection-menu p {
  white-space: pre-line;
}

/* app/public/src/pages/component/available-room-menu/available-room-menu.css */
.room-menu {
  display: flex;
  flex-direction: column;
}
.room-menu .subtitle {
  text-align: center;
  color: white;
  font-size: 1.5rem;
  margin-top: 1em;
}
.room-menu .tab-tournament.react-tabs__tab-panel--selected {
  padding: 0.5em 0;
}
.room-menu .react-tabs__tab-panel--selected ul {
  list-style: none;
  padding: 0;
  flex: 1;
}
.room-menu .play-button {
  width: 100%;
  margin: 0.5em auto 0 auto;
}
.room-menu .rank.icon {
  width: 50px;
}
.room-menu > ul {
  padding: 0;
  margin: 0;
  overflow: auto;
  flex: 1;
}
section.room-menu .room-menu > ul {
  max-height: calc(100% - 7em);
}
.room-menu li {
  list-style: none;
}

/* app/public/src/pages/component/leaderboard/leaderboard-menu.css */

/* app/public/src/pages/lobby.css */
.lobby {
  height: 100%;
  gap: 1vw;
  display: flex;
}
.lobby-container {
  padding: 10px;
  padding-left: calc(var(--sidebar-width) + 10px);
  width: 100%;
}
.lobby section {
  height: 100%;
  width: 25%;
}
.lobby .user-menu {
  grid-area: user;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.lobby .user-menu .react-tabs,
.lobby .user-menu .react-tabs__tab-panel--selected,
.lobby .room-menu .react-tabs__tab-panel--selected {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  padding-left: 0;
  padding-right: 2px;
}
.lobby .room-menu {
  height: 100%;
}
.main-lobby ul.react-tabs__tab-list {
  display: flex;
  font-size: 16px;
  overflow-x: auto;
  overflow-y: hidden;
  flex: 0 0 auto;
}
.lobby .current-users-menu {
  height: 100%;
}
.lobby .current-users-menu ul {
  display: flex;
  flex-direction: column;
}
.lobby .announcements {
  height: 100%;
  display: flex;
  flex-flow: column nowrap;
}
.lobby h2 {
  text-align: center;
  color: white;
  font-size: 1.5vw;
  margin: 0.25em 0;
}
.lobby h2 {
  font-size: 1.25vw;
}
.main-lobby {
  height: 100%;
  display: flex;
  justify-content: space-between;
  gap: 4px;
}
.main-lobby-nav {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0px;
  right: 0;
  height: 60px;
  z-index: 2;
  background: var(--color-bg-primary);
}
.main-lobby-nav ul {
  display: flex;
  padding-left: 64px;
  border-top: var(--border-thin);
}
.main-lobby-nav li {
  color: white;
  flex: 1;
  list-style: none;
  display: grid;
  place-content: center;
  height: 60px;
  border-left: var(--border-thin);
}
.main-lobby-nav li.active {
  background-color: var(--color-bg-secondary);
}
.main-lobby-nav li img {
  display: block;
  margin: 0 auto;
}
@media (width <= 960px) {
  .lobby nav {
    flex-wrap: wrap;
  }
  .lobby h2 {
    font-size: 4vw;
  }
  .lobby > .my-container {
    margin-top: 1em;
    max-height: 80vh;
  }
  .lobby-container {
    padding: 0;
  }
  .main-lobby {
    display: block;
    overflow-y: auto;
  }
  #root .main-lobby section {
    width: auto;
    height: calc(100vh - 68px);
    margin: 4px;
  }
  .main-lobby section:not(.active) {
    display: none;
  }
  .lobby .user-menu {
    width: auto;
  }
  .main-lobby-nav {
    display: block;
  }
  .custom-bg {
    background-position-x: center;
  }
}

/* app/public/src/pages/component/preparation/bot-select-modal.css */
.bot-select-modal {
  height: 90vh;
  overflow-y: auto;
  z-index: 20;
  display: grid;
  grid-template-rows: min-content 1fr min-content;
  grid-template-columns: 1fr;
}
.bot-select-modal header {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
  gap: 8px;
}
.bot-select-modal ul {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(360px, auto));
  grid-auto-rows: min-content;
  padding: 0;
  overflow: auto;
  width: 1500px;
  max-width: 100%;
  gap: 8px;
}
.bot-select-modal li:hover {
  cursor: var(--cursor-hover);
  filter: contrast(1.1) brightness(1.1);
}
.bot-select-modal li.selected {
  background-color: #109fff;
}

/* app/public/src/pages/component/preparation/preparation-menu-user.css */
.preparation-menu-user {
  display: flex;
  padding: 0.5em;
  margin: 0;
  justify-content: space-between;
  align-items: center;
  gap: 0.5em;
}
@media (width <= 1024px) {
  .preparation-menu-user {
    font-size: 0.6em;
  }
}
.preparation-menu-user .inline-avatar {
  flex: 1;
  min-width: 0;
}
.preparation-menu-user.ready {
  border-color: #76c442;
}
.preparation-menu-user.not-ready {
  border-color: #ce372b;
}

/* app/public/src/pages/component/preparation/preparation-menu.css */
.preparation-menu {
  background-image: url(assets/ui/back1.png);
  background-size: cover;
  background-position-x: left;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  max-width: 1280px;
}
.preparation-menu h1 {
  text-align: center;
  color: white;
  text-shadow: 2px 2px 2px black;
}
.preparation-menu p,
.preparation-menu label {
  color: white;
  text-shadow: 2px 2px 2px black;
}
.preparation-menu header p {
  text-align: center;
  margin-bottom: 0.5em;
}
.preparation-menu header img {
  width: 2em;
  height: 2em;
  margin-right: 0.5em;
  &.noelo,
  &.scribble,
  &.quickplay {
    border-radius: 50%;
  }
}
.preparation-menu-users {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-content: start;
  gap: 1em;
  flex: 1;
}
.preparation-menu-users .pokemon-portrait {
  margin: 2px;
}
.preparation-menu .actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0.5em;
  margin-top: 0.25em;
}
.preparation-menu .actions span {
  color: white;
  text-shadow: 1px 1px 2px black;
}
@media (width <= 640px) {
  .preparation-menu-users {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* app/public/src/pages/preparation.css */
.preparation-page {
  display: flex;
  height: 100%;
  overflow-y: auto;
}
.preparation-page main {
  display: flex;
  justify-content: center;
  gap: 1em;
  position: relative;
  left: 60px;
  width: calc(100vw - var(--sidebar-width));
  align-items: center;
}
.preparation-page .preparation-menu,
.preparation-page .chat-container {
  height: calc(100vh - 8vw);
}
.preparation-page .preparation-menu {
  flex: 0 1 50em;
}
.preparation-page .chat-container {
  flex: 0 1 30em;
  display: flex;
  flex-direction: column;
}
.preparation-page .chat-container h2 {
  font-size: 1.5em;
  text-align: center;
}
.preparation-page > footer {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  text-align: right;
}
@media (max-width: 640px) {
  .preparation-page main {
    display: block;
  }
  .preparation-page .preparation-menu,
  .preparation-page .chat-container {
    min-height: initial;
    overflow: auto;
    margin-bottom: 1em;
  }
  .preparation-page .chat-container {
    padding-bottom: 60px;
  }
}

/* app/public/src/pages/sprite-viewer.css */
.sprite-viewer-root {
  width: 100%;
  height: 100%;
}
.sprite-viewer-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 16px;
  padding: 40px;
  padding-left: calc(var(--sidebar-width) + 10px);
}
.sprite-viewer-toolbar.my-box {
  width: fit-content;
  max-width: 100%;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 8px;
  margin: 0 auto;
  background-color: var(--color-bg-primary);
}
.sprite-viewer-toolbar label {
  display: block;
}
.sprite-viewer-toolbar label:not(.checkbox-container)::after {
  content: ":";
}
.sprite-viewer-sprite {
  display: flex;
  justify-content: center;
  width: 100%;
}

/* app/public/src/style/anims.css */
@keyframes shimmer {
  0% {
    background-position: 0 0;
  }
  50% {
    background-position: 100% 100%;
  }
  100% {
    background-position: 100% 100%;
  }
}
.shimmer::after {
  content: "";
  pointer-events: none;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  animation: shimmer 2s infinite;
  background:
    linear-gradient(
      135deg,
      transparent 0%,
      #ffffff20 25%,
      #ffffe080 50%,
      #ffffff20 75%,
      transparent 100%);
  background-size: 400% 400%;
  background-repeat: no-repeat;
  cursor: var(--cursor-hover);
}

/* app/public/src/style/buttons.css */
button {
  font-family: inherit;
}
.bubbly {
  position: relative;
  padding: 0.15em calc(0.5em + 3px) calc(0.15em + 3px) 0.5em;
  background: #e7e7e7;
  display: inline-block;
  text-align: center;
  border-radius: 12px;
  font-size: 120%;
  border: var(--border-thin);
  text-shadow: 2px 2px 2px #00000040;
  box-shadow: inset -6px -6px 0px 0px #cfcfcf, var(--shadow-clickable);
  text-decoration: none;
}
.bubbly:not([disabled]):hover {
  background: #ffffff;
  cursor: var(--cursor-hover);
}
.bubbly:not([disabled]):active {
  background: #e7e7e7;
  box-shadow: inset 6px 6px 0px 0px #cfcfcf, var(--shadow-clickable);
}
.bubbly.green {
  box-shadow: inset -6px -6px 0px 0px #65a013, var(--shadow-clickable);
  background: #92cc41;
  color: white;
}
.bubbly.green:not([disabled]):hover {
  background: #76c442;
}
.bubbly.green:not([disabled]):active {
  background: #92cc41;
  box-shadow: inset 6px 6px 0px 0px #65a013, var(--shadow-clickable);
}
.bubbly.orange {
  background: #f7d51d;
  box-shadow: inset -6px -6px 0px 0px #c9ae17, var(--shadow-clickable);
  color: black;
}
.bubbly.orange:not([disabled]):hover {
  background: #e7c819;
}
.bubbly.orange:not([disabled]):active {
  background: #f7d51d;
  box-shadow: inset 6px 6px 0px 0px #c9ae17, var(--shadow-clickable);
}
.bubbly.red {
  background: #e76e55;
  box-shadow: inset -6px -6px 0px 0px #bf3d41, var(--shadow-clickable);
  color: white;
}
.bubbly.red:not([disabled]):hover {
  background: #c25c48;
}
.bubbly.red:not([disabled]):active {
  background: #761c1e;
  box-shadow: inset 6px 6px 0px 0px #bf3d41, var(--shadow-clickable);
}
.bubbly.blue {
  background: #109fff;
  box-shadow: inset -6px -6px 0px 0px #006bb3, var(--shadow-clickable);
  color: white;
}
.bubbly.blue:not([disabled]):hover {
  background: var(--color-bg-accent);
}
.bubbly.blue:not([disabled]):active {
  background: #109fff;
  box-shadow: inset 6px 6px 0px 0px #108de0, var(--shadow-clickable);
}
.bubbly.pink {
  background: #ee2097;
  color: white;
  box-shadow: inset -6px -6px 0px 0px #902c74, var(--shadow-clickable);
}
.bubbly.pink:not([disabled]):hover {
  background: #eb55ac;
}
.bubbly.pink:not([disabled]):active {
  background: #ee2097;
  box-shadow: inset 6px 6px 0px 0px #902c74;
}
.bubbly.dark {
  background: #444;
  color: white;
  box-shadow: inset -6px -6px 0px 0px #333, var(--shadow-clickable);
}
.bubbly.dark:not([disabled]):hover {
  background: #555;
}
.bubbly.dark:not([disabled]):active {
  background: #444;
  box-shadow: inset 6px 6px 0px 0px #333;
}
.bubbly.discord {
  background: #444ebe;
  color: white;
  box-shadow: inset -6px -6px 0px 0px #2d347e, var(--shadow-clickable);
}
.bubbly.discord:not([disabled]):hover {
  background: #4a54bf;
}
.bubbly.discord:not([disabled]):active {
  background: #444ebe;
  box-shadow: inset 6px 6px 0px 0px #2d347e, var(--shadow-clickable);
}
.bubbly[disabled] {
  background: #d3d3d3;
  box-shadow: inset -6px -6px 0px 0px #adafbc;
  color: #757575;
  opacity: 0.6;
  cursor: not-allowed;
}
.bubbly > img:first-child {
  height: 1.4em;
  display: inline-block;
  vertical-align: text-top;
  margin-right: 0.25em;
}
.bubbly.loading::after {
  content: "";
  position: absolute;
  width: 1.5em;
  height: 1.5em;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  border: 4px solid transparent;
  border-top-color: #ffffff;
  border-radius: 50%;
  animation: button-loading-spinner 1s ease infinite;
}
@keyframes button-loading-spinner {
  from {
    transform: rotate(0turn);
  }
  to {
    transform: rotate(1turn);
  }
}

/* app/public/src/style/colors.css */
:root {
  --color-bg-primary: #61738a;
  --color-bg-secondary: #54596b;
  --color-bg-accent: #1195ec;
  --color-bg-green: #34a00c;
  --color-bg-red: #742424;
  --color-fg-green: #92cc41;
  --color-fg-red: #e81212;
  --color-fg-gold: #ffc107;
  --color-shadow: #2d334b;
}

/* app/public/src/style/container.css */
.my-container {
  border-radius: 12px;
  background-color: var(--color-bg-primary);
  border: var(--border-thick);
  padding: 0.25em 0.5em;
  color: white;
}
.my-box {
  background-color: var(--color-bg-secondary);
  border-radius: 12px;
  border: var(--border-thin);
  padding: 0.25em 0.5em;
  color: white;
}
.my-box.clickable,
.clickable > .my-box {
  box-shadow: var(--shadow-clickable);
}

/* app/public/src/style/cursor.css */
:root {
  --cursor-primary: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABFklEQVRYR9WXURLDIAhE6/0PbSdOtUpcd1Gnpv1KGpTHBpCE1/cXq+vrMph7dGvXZTtpfW10DCA5jrH1H0Jhs5E0hnZdCR+vb5S8Nn8mQCeS9BdSalYJqMBjAGzq59xAESN7VFVUgV8AZB/dZBR7QTFDCqGquvUBVVoEtgIwpQRzmANSFHgWQKExHdIrPeuMvQNDarXe6nC/AutgV3JW+6bgqQLeV8FekRtgV+ToDKEKnACYKsfZjjkam7a0ZpYTytwmgainpC3HvwBocgKOxqRjehoR9DFKNFYtOwCGYCszobeCbl26N6yyQ6g8X/Wex/rBPsNEV6qAMaJPMynIHQCoSqS9JSMmwef51LflTgCRszU7DvAGiV6mHWfsaVUAAAAASUVORK5CYII=), auto;
  --cursor-hover: url(assets/ui/cursor-hover.png) 14 0, pointer;
  --cursor-grab: url(assets/ui/cursor-grab.png) 14 8, grab;
  --cursor-grabbing: url(assets/ui/cursor-grabbing.png) 14 8, grabbing;
}
html {
  cursor: var(--cursor-primary);
}
body.grab {
  cursor: var(--cursor-grab);
}
body.grab.grabbing {
  cursor: var(--cursor-grabbing);
}

/* app/public/src/style/custom-inputs.css */
input,
select,
textarea {
  font-family: inherit;
  font-size: 1em;
}
input[type=text],
input[type=search] {
  border-radius: 12px;
  width: 100%;
  border: var(--border-thin);
  min-height: 2em;
  padding-left: 1em;
}
input[type=range] {
  height: 38px;
  -webkit-appearance: none;
  appearance: none;
  margin: 10px 0;
  width: 100%;
  background-color: rgba(255, 255, 255, 0);
}
input[type=range]:focus {
  outline: none;
}
input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 16px;
  cursor: var(--cursor-hover);
  box-shadow: 0px 0px 0px #000000;
  background: #4f5160;
  border-radius: 0px;
  border: 2px solid #000000;
}
input[type=range]::-webkit-slider-thumb {
  box-shadow: 0px 0px 0px #000000;
  border: 2px solid #000000;
  height: 30px;
  width: 20px;
  border-radius: 0px;
  background: #61738a;
  cursor: var(--cursor-hover);
  -webkit-appearance: none;
  margin-top: -10px;
}
input[type=range]:focus::-webkit-slider-runnable-track {
  background: #4f5160;
}
input[type=range]::-moz-range-track {
  width: 100%;
  height: 16px;
  cursor: var(--cursor-hover);
  box-shadow: 0px 0px 0px #000000;
  background: #4f5160;
  border-radius: 0px;
  border: 2px solid #000000;
}
input[type=range]::-moz-range-thumb {
  box-shadow: 0px 0px 0px #000000;
  border: 2px solid #000000;
  height: 30px;
  width: 20px;
  border-radius: 0px;
  background: #61738a;
  cursor: var(--cursor-hover);
}
input[type=range]::-ms-track {
  width: 100%;
  height: 16px;
  cursor: var(--cursor-hover);
  background: transparent;
  border-color: transparent;
  color: transparent;
}
input[type=range]::-ms-fill-lower {
  background: #61738a;
  border: 2px solid #000000;
  border-radius: 0px;
  box-shadow: 0px 0px 0px #000000;
}
input[type=range]::-ms-fill-upper {
  background: #4f5160;
  border: 2px solid #000000;
  border-radius: 0px;
  box-shadow: 0px 0px 0px #000000;
}
input[type=range]::-ms-thumb {
  margin-top: 1px;
  box-shadow: 0px 0px 0px #000000;
  border: 2px solid #000000;
  height: 30px;
  width: 20px;
  border-radius: 0px;
  background: #61738a;
  cursor: var(--cursor-hover), pointer;
}
input[type=range]:focus::-ms-fill-lower {
  background: #61738a;
}
input[type=range]:focus::-ms-fill-upper {
  background: #4f5160;
}
select {
  border-radius: 12px;
  border: var(--border-thin);
  padding: 4px 24px 4px 8px;
  background: none;
  background-color: var(--color-bg-secondary);
  color: white;
  cursor: var(--cursor-hover);
  box-shadow: inset -6px -6px 0px 0px #00000030, var(--shadow-clickable);
}
select.is-light {
  background-color: white;
  color: black;
}
textarea {
  overflow: auto;
  resize: vertical;
  border: var(--border-thick);
  width: 100%;
}
input[type=checkbox] {
  margin-left: 28px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
}
input[type=checkbox] + span {
  position: relative;
  cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAzElEQVRYR+2X0Q6AIAhF5f8/2jYXZkwEjNSVvVUjDpcrGgT7FUkI2D9xRfQETwNIiWO85wfINfQUEyxBG2ArsLwC0jioGt5zFcwF4OYDPi/mBYKm4t0U8ATgRm3ThFoAqkhNgWkA0jJLvaOVSs7j3qMnSgXWBMiWPXe94QqMBMBc1VZIvaTu5u5pQewq0EqNZvIEMCmxAawK0DNkay9QmfFNAJUXfgGgUkLaE7j/h8fnASkxHTz0DGIBMCnBeeM7AArpUd3mz2x3C7wADglA8BcWMZhZAAAAAElFTkSuQmCC) 14 0, pointer;
}
input[type=checkbox] + span::before,
input[type=checkbox]:checked + span::before {
  position: absolute;
  top: calc(50% - 10px);
  left: -28px;
  content: "";
}
input[type=checkbox] + span::before {
  width: 2px;
  height: 2px;
  color: #212529;
  box-shadow:
    2px 2px,
    4px 2px,
    6px 2px,
    8px 2px,
    10px 2px,
    12px 2px,
    14px 2px,
    16px 2px,
    2px 4px,
    16px 4px,
    2px 6px,
    16px 6px,
    2px 8px,
    16px 8px,
    2px 10px,
    16px 10px,
    2px 12px,
    16px 12px,
    2px 14px,
    16px 14px,
    2px 16px,
    4px 16px,
    6px 16px,
    8px 16px,
    10px 16px,
    12px 16px,
    14px 16px,
    16px 16px;
}
input[type=checkbox]:focus + span::before {
  width: 2px;
  height: 2px;
  color: #adafbc;
  box-shadow:
    2px 2px,
    4px 2px,
    6px 2px,
    8px 2px,
    10px 2px,
    12px 2px,
    14px 2px,
    16px 2px,
    2px 4px,
    16px 4px,
    2px 6px,
    16px 6px,
    2px 8px,
    16px 8px,
    2px 10px,
    16px 10px,
    2px 12px,
    16px 12px,
    2px 14px,
    16px 14px,
    2px 16px,
    4px 16px,
    6px 16px,
    8px 16px,
    10px 16px,
    12px 16px,
    14px 16px,
    16px 16px;
}
input[type=checkbox]:checked + span::before {
  width: 2px;
  height: 2px;
  color: #212529;
  box-shadow:
    2px 2px,
    4px 2px,
    6px 2px,
    8px 2px,
    10px 2px,
    12px 2px,
    14px 2px,
    18px 2px,
    20px 2px,
    2px 4px,
    16px 4px,
    18px 4px,
    20px 4px,
    2px 6px,
    14px 6px,
    16px 6px,
    2px 8px,
    4px 8px,
    12px 8px,
    14px 8px,
    2px 10px,
    4px 10px,
    6px 10px,
    10px 10px,
    12px 10px,
    16px 10px,
    2px 12px,
    6px 12px,
    8px 12px,
    10px 12px,
    16px 12px,
    2px 14px,
    8px 14px,
    16px 14px,
    2px 16px,
    4px 16px,
    6px 16px,
    8px 16px,
    10px 16px,
    12px 16px,
    14px 16px,
    16px 16px;
}
input[type=checkbox]:checked:focus + span::before {
  width: 2px;
  height: 2px;
  color: #adafbc;
  box-shadow:
    2px 2px,
    4px 2px,
    6px 2px,
    8px 2px,
    10px 2px,
    12px 2px,
    14px 2px,
    18px 2px #212529,
    20px 2px #212529,
    2px 4px,
    16px 4px #212529,
    18px 4px #212529,
    20px 4px #212529,
    2px 6px #212529,
    14px 6px #212529,
    16px 6px #212529,
    2px 8px #212529,
    4px 8px #212529,
    12px 8px #212529,
    14px 8px #212529,
    2px 10px,
    4px 10px #212529,
    6px 10px #212529,
    10px 10px #212529,
    12px 10px #212529,
    16px 10px,
    2px 12px,
    6px 12px #212529,
    8px 12px #212529,
    10px 12px #212529,
    16px 12px,
    2px 14px,
    8px 14px #212529,
    16px 14px,
    2px 16px,
    4px 16px,
    6px 16px,
    8px 16px,
    10px 16px,
    12px 16px,
    14px 16px,
    16px 16px;
}
input[type=checkbox].is-dark + span {
  color: #fff;
}
input[type=checkbox].is-dark + span::before {
  color: #fff;
}
input[type=checkbox].is-dark:checked + span::before {
  width: 2px;
  height: 2px;
  color: #adafbc;
  box-shadow:
    2px 2px,
    4px 2px,
    6px 2px,
    8px 2px,
    10px 2px,
    12px 2px,
    14px 2px,
    18px 2px #fff,
    20px 2px #fff,
    2px 4px,
    16px 4px #fff,
    18px 4px #fff,
    20px 4px #fff,
    2px 6px #fff,
    14px 6px #fff,
    16px 6px #fff,
    2px 8px #fff,
    4px 8px #fff,
    12px 8px #fff,
    14px 8px #fff,
    2px 10px,
    4px 10px #fff,
    6px 10px #fff,
    10px 10px #fff,
    12px 10px #fff,
    16px 10px,
    2px 12px,
    6px 12px #fff,
    8px 12px #fff,
    10px 12px #fff,
    16px 12px,
    2px 14px,
    8px 14px #fff,
    16px 14px,
    2px 16px,
    4px 16px,
    6px 16px,
    8px 16px,
    10px 16px,
    12px 16px,
    14px 16px,
    16px 16px;
  color: #fff;
}
input[type=checkbox].is-dark:checked:focus + span::before {
  width: 2px;
  height: 2px;
  color: #adafbc;
  box-shadow:
    2px 2px,
    4px 2px,
    6px 2px,
    8px 2px,
    10px 2px,
    12px 2px,
    14px 2px,
    18px 2px #fff,
    20px 2px #fff,
    2px 4px,
    16px 4px #fff,
    18px 4px #fff,
    20px 4px #fff,
    2px 6px #fff,
    14px 6px #fff,
    16px 6px #fff,
    2px 8px #fff,
    4px 8px #fff,
    12px 8px #fff,
    14px 8px #fff,
    2px 10px,
    4px 10px #fff,
    6px 10px #fff,
    10px 10px #fff,
    12px 10px #fff,
    16px 10px,
    2px 12px,
    6px 12px #fff,
    8px 12px #fff,
    10px 12px #fff,
    16px 12px,
    2px 14px,
    8px 14px #fff,
    16px 14px,
    2px 16px,
    4px 16px,
    6px 16px,
    8px 16px,
    10px 16px,
    12px 16px,
    14px 16px,
    16px 16px;
  color: #fff;
}
.my-input-group {
  display: inline-flex;
  align-items: stretch;
}
.my-input-group *:first-child {
  border-radius: 12px 0 0 12px;
}
.my-input-group *:last-child {
  border-radius: 0 12px 12px 0;
}
.my-input-group * {
  margin: 0;
}

/* app/public/src/style/firebase-ui.css */
.firebaseui-idp-button {
  border: solid !important;
  padding: 5px 30px !important;
  border-radius: 12px !important;
  border-color: black !important;
  border-width: 4px !important;
  font-family: Jost !important;
  max-width: 360px !important;
  cursor: var(--cursor-hover) !important;
}
.firebaseui-idp-text {
  font-size: 150% !important;
}
.firebaseui-container {
  margin-left: 0px !important;
}
.firebaseui-card-content {
  padding: 0px !important;
}
.firebaseui-idp-google {
  box-shadow: inset -6px -6px 0px 0px #adafbc !important;
}
.firebaseui-idp-password {
  box-shadow: inset -6px -6px 0px 0px #a33329 !important;
}
.firebaseui-idp-facebook {
  box-shadow: inset -6px -6px 0px 0px #293e6b !important;
}
.firebaseui-idp-twitter {
  box-shadow: inset -6px -6px 0px 0px #4181b3 !important;
}

/* app/public/src/style/fonts.css */
@font-face {
  font-family: Jost;
  src: url(assets/ui/Jost-VF.ttf) format("truetype");
}
html {
  font-family: Jost, sans-serif;
  font-weight: 600;
  font-size: 16px;
}
html[lang=vi] {
  font-family: system-ui;
}
p,
label,
dt {
  font-weight: normal;
}
button {
  font-weight: 600;
}

/* node_modules/react-tabs/style/react-tabs.css */
.react-tabs {
  -webkit-tap-highlight-color: transparent;
}
.react-tabs__tab-list {
  border-bottom: 1px solid #aaa;
  margin: 0 0 10px;
  padding: 0;
}
.react-tabs__tab {
  display: inline-block;
  border: 1px solid transparent;
  border-bottom: none;
  bottom: -1px;
  position: relative;
  list-style: none;
  padding: 6px 12px;
  cursor: pointer;
}
.react-tabs__tab--selected {
  background: #fff;
  border-color: #aaa;
  color: black;
  border-radius: 5px 5px 0 0;
}
.react-tabs__tab--disabled {
  color: GrayText;
  cursor: default;
}
.react-tabs__tab:focus {
  outline: none;
}
.react-tabs__tab:focus:after {
  content: "";
  position: absolute;
  height: 5px;
  left: -4px;
  right: -4px;
  bottom: -5px;
  background: #fff;
}
.react-tabs__tab-panel {
  display: none;
}
.react-tabs__tab-panel--selected {
  display: block;
}

/* app/public/src/style/react-tabs.css */
.react-tabs__tab {
  cursor: var(--cursor-hover);
  background-color: #40404080;
  margin: 0 2px;
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
  outline: none;
  color: white;
  text-shadow: 2px 2px 2px #00000040;
  font-size: 1.2rem;
}
@media (width <= 640px) {
  .react-tabs__tab {
    font-size: 14px;
  }
}
.react-tabs__tab--selected {
  background-color: rgb(84, 89, 107);
}
.react-tabs__tab--selected:after {
  content: "";
  position: absolute;
  height: 5px;
  left: -4px;
  right: -4px;
  bottom: -5px;
  background: #fff;
}
.react-tabs__tab-list {
  margin-bottom: 0;
}
.react-tabs__tab-panel--selected {
  padding: 0.5em;
}
@property --bg-angle { inherits: false; initial-value: 0deg; syntax: "<angle>"; }
@keyframes spin {
  to {
    --bg-angle: 360deg;
  }
}
.react-tabs__tab.icon-tab {
  border: 6px solid transparent;
  margin: -6px -4px;
  background-color: #00000020;
}
.react-tabs__tab--selected.icon-tab {
  animation: spin 2.5s infinite linear;
  background:
    conic-gradient(
      from var(--bg-angle) in hsl longer hue,
      hsl(0deg 100% 60%),
      hsl(360deg 100% 60%)) border-box;
  border: 6px solid transparent;
  margin: -6px -4px;
  z-index: 2;
  border-radius: 12px;
}
.react-tabs__tab--selected.icon-tab::after {
  content: none;
}

/* app/public/src/style/react-tooltip.css */
.react-tooltip {
  font-size: 1rem;
  max-width: 95vw;
}
.react-tooltip output {
  color: white;
}
.react-tooltip .help {
  font-size: 90%;
  font-style: italic;
  color: #e0e0e0;
}
.react-tooltip p:last-child {
  margin-bottom: 0;
}

/* app/public/src/style/scrollbar.css */
* {
  scrollbar-width: thin;
  scrollbar-color: #4f5160 transparent;
}
*::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
*::-webkit-scrollbar-track {
  background: transparent;
}
*::-webkit-scrollbar-thumb {
  background-color: #4f5160;
  border-radius: 4px;
  border: 1px solid #000000;
}
::-webkit-scrollbar-corner {
  background: transparent;
}
.hidden-scrollable::-webkit-scrollbar {
  display: none;
}
.hidden-scrollable {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

/* app/public/src/style/toastify.css */
.Toastify__toast-container {
  width: auto !important;
  --toastify-z-index: 1040;
  pointer-events: none;
}
.Toastify__toast {
  border-radius: 12px !important;
  padding: 0px !important;
  margin: 0px !important;
  border: var(--border-thin);
  background-color: var(--color-bg-primary) !important;
}
.toast-new-pokemon,
.toast-level-up {
  right: 76px !important;
  color: white !important;
}
.toast-new-pokemon img {
  width: 40px;
  height: 40px;
  image-rendering: pixelated;
}

/* app/public/src/style/index.css */
:root {
  --sidebar-width: 60px;
  --border-thick: 4px solid black;
  --border-thin: 2px solid black;
  --border-extra-thin: 1px solid black;
  --shadow-clickable: #2d334b 2px 2px 0px;
}
*,
::after,
::before {
  box-sizing: border-box;
}
body {
  margin: 0;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  background-color: rgb(104, 130, 158);
  background-image:
    linear-gradient(
      45deg,
      rgb(80, 81, 96) 25%,
      transparent 25%,
      transparent 74.9%,
      rgb(80, 81, 96) 75%,
      rgb(80, 81, 96)),
    linear-gradient(
      45deg,
      rgb(80, 81, 96) 25%,
      transparent 25%,
      transparent 74.9%,
      rgb(80, 81, 96) 75%,
      rgb(80, 81, 96));
  background-size: 240px 240px;
  background-position: 0 0, 120px 120px;
}
a {
  color: #7bbbff;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0.5em 0;
  &:first-child {
    margin-top: 0;
  }
}
p {
  margin: 0;
}
img {
  vertical-align: middle;
  border-style: none;
}
table {
  border-collapse: collapse;
}
dl,
ol,
ul {
  margin-top: 0;
  margin-bottom: 1rem;
}
kbd {
  padding: .2rem .4rem;
  font-size: 87.5%;
  color: #fff;
  background-color: #212529;
  border-radius: .2rem;
}
#root {
  width: 100vw;
  height: 100vh;
}
.custom-theme-tooltip {
  padding: 5px !important;
  opacity: 1 !important;
  border-color: #000 !important;
  border-style: solid !important;
  border-width: 4px !important;
  border-radius: 12px !important;
  background-color: var(--color-bg-primary) !important;
  color: #fff !important;
  z-index: 1060;
}
.custom-bg {
  background-image: url(assets/ui/back1.jpg);
  background-size: cover;
  background-position-y: bottom;
  background-attachment: fixed;
}
p:last-child {
  margin-bottom: 0;
}
#game {
  height: 100vh;
  width: calc(100vw - var(--sidebar-width));
}
#game-wrapper {
  position: relative;
  left: 60px;
  width: calc(100vw - var(--sidebar-width));
  user-select: none;
}
#game-wrapper .ps-sidebar-root {
  position: absolute;
  top: 0;
  left: calc(-1 * var(--sidebar-width));
  bottom: 0;
}
.multi-range {
  box-shadow: none !important;
  border: none !important;
}
.multi-range .thumb * {
  display: inherit !important;
  color: black !important;
  border: var(--border-thin) !important;
  border-radius: 0px !important;
  background-color: white !important;
  width: 60px !important;
  box-shadow: none !important;
}
.game-emote-bubble {
  position: relative;
  background: white;
  border-radius: 0.4em;
  padding: 4px;
  animation: 3000ms forwards speech-bubble;
}
@keyframes speech-bubble {
  0% {
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.game-emote-bubble img {
  width: 80px;
  height: 80px;
  image-rendering: pixelated;
}
.game-emote-bubble:after {
  content: "";
  position: absolute;
  left: 50%;
  width: 0;
  height: 0;
  border: 20px solid transparent;
}
.game-emote-bubble.current::after {
  bottom: 0;
  border-top-color: white;
  border-bottom: 0;
  border-left: 0;
  margin-left: -10px;
  margin-bottom: -19px;
}
.game-emote-bubble.opponent:after {
  top: 0;
  border-bottom-color: white;
  border-top: 0;
  border-right: 0;
  margin-right: -10px;
  margin-top: -19px;
}
.game-dialog {
  color: white;
  font-size: 1rem;
  max-width: 300px;
}
.game-dialog .game-dialog-title {
  background-color: #4f5160;
  text-transform: capitalize;
  padding: 0.25em 0.5em;
  margin: -0.25em -0.5em 4px -0.5em;
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -1px 2px rgb(0 0 0 / 50%);
}
.game-dialog.town-encounter-description {
  max-width: 600px;
  width: 600px;
  text-align: center;
}
.clickable {
  cursor: var(--cursor-hover) !important;
}
.spacer {
  flex-grow: 1;
}
@media (width >= 2500px) {
  body {
    font-size: 22px;
  }
}
@media (2000px <= width <= 2500px) {
  body {
    font-size: 20px;
  }
}
@media (width <= 1024px) {
  body {
    font-size: 16px;
  }
}
@media (width <= 640px) {
  body {
    font-size: 14px;
  }
  #root .my-container {
    border-width: 2px;
  }
  .bubbly {
    padding: 0.5em 1em;
  }
}
.pokemon-portrait {
  border: 1px solid #000000;
  border-radius: 4px;
  box-shadow: 2px 2px 0 #00000060;
  image-rendering: pixelated;
  position: relative;
}
.pokemon-portrait.additional:not(.regional)::after {
  content: "";
  position: absolute;
  top: 2px;
  right: 0px;
  height: 12px;
  width: 12px;
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABISURBVChTjZABCgAgCAO1///ZWqlpRXggQptNZMqIduBa0+6IRN/iMr2ACaNWEX9H7kg49Q0zz+WSAwMQfuBXi3FKixfuRNQBW78Y/CRSBzwAAAAASUVORK5CYII=);
  background-size: cover;
  image-rendering: pixelated;
  filter: invert(1);
}
.pokemon-portrait.regional::after {
  content: "R";
  position: absolute;
  top: -2px;
  right: 0px;
  height: 12px;
  width: 12px;
  font-size: 14px;
  color: black;
  text-shadow:
    1px 1px 1px white,
    -1px 1px 1px white,
    1px -1px 1px white,
    -1px -1px 1px white;
}
.pokemon-portrait.acquired::before {
  content: "\2714";
  position: absolute;
  bottom: 4px;
  right: 0px;
  height: 12px;
  width: 12px;
  font-size: 14px;
  color: black;
  text-shadow:
    1px 1px 1px white,
    -1px 1px 1px white,
    1px -1px 1px white,
    -1px -1px 1px white;
}
.pixelated {
  image-rendering: pixelated;
}
