/* Official v0.3.2 increment merged with this server visual rules; GPL-3.0-or-later. */
.lobby-body {
  display: grid;
  grid-template-columns: minmax(0px, 1fr);
  gap: 0.3rem;
  width: 100%;
  max-width: 19.2rem;
  margin: 0px auto;
  padding: 0.36rem 0.6rem 0.4rem;
  align-content: start;
}

.lobby-mode {
  grid-column: 1 / -1;
  min-width: 0px;
}

.lobby-left {
  grid-area: 3 / 1;
  display: grid;
  grid-template-columns: minmax(0px, 1fr) minmax(0px, 1fr);
  gap: 0.12rem 0.4rem;
}

.lobby-left > .section-label:first-child {
  grid-area: 1 / 1;
}

.lobby-left > .matchmaking-panel {
  grid-area: 2 / 1;
  margin-bottom: 0px;
}

.lobby-left > .lobby-join-label {
  grid-area: 1 / 2;
}

.lobby-left > .join-panel {
  grid-area: 2 / 2;
}

.lobby-left > .tips {
  grid-column: 1 / -1;
}

.lobby-right {
  grid-area: 2 / 1;
}

.lobby-right .diff-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0px, 1fr));
  gap: 0.18rem;
}

.lobby-right .diff-card {
  padding: 0.18rem 0.2rem 0.16rem 0.28rem;
  gap: 0.1rem 0.14rem;
}

.lobby-right .diff-card__head {
  flex-wrap: wrap;
  gap: 0.06rem 0.08rem;
}

.lobby-right .diff-card__meta {
  flex-basis: 100%;
  margin-left: 0.36rem;
}

.lobby-right .diff-card__name {
  font-size: calc(.24 * var(--t));
}

.lobby-right .diff-card__effects {
  gap: 0.03rem 0.14rem;
}

.lobby-right .diff-card__check .icon {
  width: 0.35rem;
  height: 0.35rem;
  padding: 0.06rem;
}

.lobby-right .create-box {
  align-items: center;
  margin-top: 0.22rem;
}

.lobby-right .create-box > .tt-anchor {
  width: min(7rem, 100%);
}

.lobby-right .create-box .btn--xl {
  height: 0.72rem;
  font-size: calc(.28 * var(--t));
}

.lobby-mode .mode-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0px, 1fr));
  gap: 0.24rem;
  margin-bottom: 0px;
}

.mode-beta {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  padding: 0.025rem 0.09rem;
  border: 1px solid rgba(255, 198, 0, 0.6);
  background: rgba(255, 198, 0, 0.12);
  color: var(--gold);
  font-size: calc(.13 * var(--t));
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.35;
}

.mode-card__name-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.13rem;
}

.firepower-brief {
  --bk-c: var(--gold-2);
  --bk-l: .16rem;
  margin-top: 0.2rem;
  padding: 0.19rem 0.26rem;
  border: 1px solid rgba(255, 198, 0, 0.3);
  background: linear-gradient(110deg, rgba(255, 198, 0, 0.067), rgba(14, 20, 17, 0.9));
}

.firepower-brief__head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.1rem 0.14rem;
  margin-bottom: 0.13rem;
}

.firepower-brief__title {
  color: var(--gold);
  font-size: calc(.2 * var(--t));
  font-weight: 800;
}

.firepower-brief__hint {
  color: var(--text-lo);
  font-size: calc(.15 * var(--t));
  margin-left: auto;
}

.firepower-variants {
  display: flex;
  flex-wrap: wrap;
  gap: 0.12rem;
  margin-bottom: 0.14rem;
}

.firepower-variant {
  flex: 1 1 0%;
  min-width: 2.4rem;
  padding: 0.1rem 0.16rem;
  border: 1px solid rgba(255, 198, 0, 0.2);
  border-radius: 6px;
  background: rgba(14, 20, 17, 0.8);
  cursor: pointer;
  text-align: left;
  transition: border-color 0.12s, background 0.12s;
}

.firepower-variant:hover {
  border-color: rgba(255, 198, 0, 0.5);
}

.firepower-variant.is-selected {
  border-color: var(--gold);
  background: linear-gradient(110deg, rgba(255, 198, 0, 0.1), rgba(14, 20, 17, 0.9));
}

.firepower-variant__name {
  display: block;
  font-weight: 700;
  font-size: calc(.17 * var(--t));
  color: var(--gold);
}

.firepower-variant__en {
  margin-left: 0.08rem;
  font-size: calc(.11 * var(--t));
  font-weight: 400;
  color: var(--text-lo);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.firepower-variant__desc {
  display: block;
  margin-top: 0.04rem;
  font-size: calc(.13 * var(--t));
  color: var(--text-lo);
  line-height: 1.5;
}

.firepower-features {
  display: grid;
  grid-template-columns: repeat(4, minmax(0px, 1fr));
  gap: 0.2rem;
}

.firepower-feature {
  min-width: 0px;
}

.firepower-feature strong {
  color: var(--text-hi);
  font-size: calc(.17 * var(--t));
  font-weight: 700;
}

.firepower-feature p {
  margin: 0.04rem 0px 0px;
  color: var(--text-lo);
  font-size: calc(.15 * var(--t));
  line-height: 1.65;
}

.rm-sel-label {
  display: flex;
  align-items: baseline;
  gap: 0.14rem;
  margin-bottom: 0.12rem;
}

.rm-sel {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.24rem;
  margin-bottom: 0.34rem;
}

.rm-sel__opt {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
  min-height: 2.5rem;
  padding: 0.28rem 0.32rem 0.24rem;
  text-align: left;
  background: linear-gradient(rgba(28, 34, 31, 0.92), rgba(13, 16, 15, 0.94));
  border: 1px solid var(--line);
  color: var(--text-lo);
  transition: border-color var(--t-fast), color var(--t-fast), box-shadow var(--t-med), background-color var(--t-fast);
}

.rm-sel__opt .icon {
  width: 0.34rem;
  height: 0.34rem;
  color: var(--line-3);
  transition: color var(--t-fast), filter var(--t-fast);
}

.rm-sel__opt:hover:not(:disabled) {
  color: var(--text-hi);
  border-color: var(--line-3);
}

.rm-sel__opt:hover:not(:disabled) .icon {
  color: var(--text-hi);
}

.rm-sel__opt:disabled {
  cursor: default;
}

.rm-sel__opt.is-active {
  color: var(--text-hi);
  border-color: var(--mint-400);
  box-shadow: rgba(23, 249, 183, 0.22) 0px 0px 0.16rem inset;
}

.rm-sel__opt.is-active .icon {
  color: var(--mint-400);
  filter: drop-shadow(0 0 5px var(--mint-glow));
}

.rm-sel__opt--random.is-active {
  border-color: var(--gold);
  box-shadow: rgba(255, 198, 0, 0.2) 0px 0px 0.16rem inset;
}

.rm-sel__opt--random.is-active .icon {
  color: var(--gold);
  filter: drop-shadow(rgba(255, 198, 0, 0.45) 0px 0px 5px);
}

.rm-sel__name {
  font-size: calc(.24 * var(--t));
  font-weight: 800;
  letter-spacing: 0.1em;
}

.rm-sel__desc {
  font-size: calc(.15 * var(--t));
  color: var(--text-dim);
  letter-spacing: 0.06em;
}

.rm-note {
  margin: 0.1rem 0px 0.06rem;
  font-size: calc(.17 * var(--t));
  line-height: 1.5;
  color: var(--text-lo);
}

.mm-room-rm {
  padding: 0.02rem 0.08rem;
  border: 1px solid color-mix(in srgb, var(--mint-400) 55%, transparent);
  background: color-mix(in srgb, var(--mint-400) 12%, transparent);
  color: var(--mint-400);
  font-size: calc(.14 * var(--t));
  font-weight: 700;
  letter-spacing: 0.1em;
  border-radius: 2px;
}

.mode-card {
  --bk-c: transparent;
  --bk-l: .2rem;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.22rem;
  min-height: 2.72rem;
  padding: 0.26rem 0.3rem 0.24rem 1.34rem;
  overflow: hidden;
  text-align: left;
  background: linear-gradient(rgba(28, 34, 31, 0.92), rgba(13, 16, 15, 0.94));
  border: 1px solid var(--line);
  color: var(--text-hi);
  transition: border-color var(--t-med) var(--ease-out), box-shadow var(--t-med) var(--ease-out), transform var(--t-fast) var(--ease-out);
  animation: card-in var(--t-slow) var(--ease-out) backwards;
}

.mode-card:nth-child(3) {
  animation-delay: 120ms;
}

.mode-card__icon {
  position: absolute;
  top: 0.32rem;
  left: 0.28rem;
  width: 0.88rem;
  height: 0.88rem;
  display: grid;
  place-items: center;
  background: rgb(12, 15, 14);
  border: 1px solid var(--line-2);
  color: var(--text-md);
  clip-path: polygon(25% 0px, 75% 0px, 100% 50%, 75% 100%, 25% 100%, 0px 50%);
  transition: background var(--t-med), color var(--t-med);
}

.mode-card__name {
  font-size: calc(.38 * var(--t));
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1.15;
}

.mode-card__check {
  position: absolute;
  bottom: 0.25rem;
  left: 0.28rem;
  display: flex;
  align-items: center;
  gap: 0.05rem;
  padding: 0.04rem 0.12rem 0.04rem 0.08rem;
  background: var(--mint-500);
  color: var(--text-on-mint);
  font-size: calc(.14 * var(--t));
  font-weight: 700;
  opacity: 0;
  transform: translateY(-0.06rem);
  transition: opacity var(--t-med), transform var(--t-med) var(--ease-out);
}

.mode-card--firepower .mode-card__bg {
  background: radial-gradient(85% 65% at 100% 0%, rgba(255, 198, 0, 0.11), transparent 70%), repeating-linear-gradient(-45deg, rgba(255, 255, 255, 0.02) 0px, rgba(255, 255, 255, 0.02) 2px, transparent 2px, transparent 12px);
}

.mode-card--firepower .mode-card__icon {
  color: var(--gold-2);
}

.mode-card--firepower::before {
  background: linear-gradient(90deg, var(--gold), transparent);
}

.mode-card--firepower.is-selected {
  --bk-c: var(--gold);
  border-color: var(--gold-2);
  box-shadow: rgba(255, 198, 0, 0.2) 0px 0px 0px 1px, rgba(255, 198, 0, 0.1) 0px 0px 0.3rem, rgba(255, 198, 0, 0.04) 0px 0px 0.6rem inset;
}

.mode-card--firepower.is-selected .mode-card__icon, .mode-card--firepower.is-selected .mode-card__check {
  background: var(--gold);
  color: rgb(24, 20, 5);
  border-color: var(--gold-2);
}

@media (max-width: 900px) {
  .lobby-mode .mode-card {
    padding-left: 1.1rem;
  }

  .lobby-mode .mode-card__icon {
    left: 0.22rem;
    width: 0.66rem;
    height: 0.66rem;
  }

  .lobby-mode .mode-card__name {
    font-size: calc(.34 * var(--t));
  }

  .lobby-mode .mode-card__desc {
    font-size: calc(.18 * var(--t));
  }

  .lobby-mode .mode-card__points {
    font-size: calc(.16 * var(--t));
  }

  .firepower-features {
    grid-template-columns: repeat(2, minmax(0px, 1fr));
    gap: 0.16rem 0.26rem;
  }

  .lobby-right .diff-list {
    grid-template-columns: repeat(2, minmax(0px, 1fr));
  }

  .lobby-right .diff-card__head {
    flex-wrap: nowrap;
  }

  .lobby-right .diff-card__meta {
    flex-basis: auto;
    margin-left: auto;
  }

  .lobby-left {
    display: flex;
  }

  .lobby-left > .matchmaking-panel {
    margin-bottom: 0.22rem;
  }
}

@media (max-height: 460px) and (min-width: 641px) {
  .lobby-mode .mode-card {
    min-height: 0px;
    padding: 0.24rem 0.22rem 0.22rem 1.05rem;
  }

  .lobby-mode .mode-card__name {
    font-size: calc(.34 * var(--t));
  }

  .lobby-mode .mode-card__check {
    bottom: 0.18rem;
    left: 0.22rem;
    font-size: calc(.12 * var(--t));
    padding: 0.03rem 0.06rem;
  }

  .firepower-brief {
    padding: 0.16rem 0.2rem;
  }

  .firepower-features {
    grid-template-columns: repeat(4, minmax(0px, 1fr));
  }

  .lobby-right .diff-list {
    grid-template-columns: repeat(4, minmax(0px, 1fr));
  }

  .lobby-right .diff-card__head {
    flex-wrap: wrap;
  }

  .lobby-right .diff-card__meta {
    flex-basis: 100%;
    margin-left: 0.36rem;
  }
}

@media (max-width: 640px) {
  .lobby-screen .lobby-body {
    grid-template-columns: minmax(0px, 1fr);
    gap: 0.3rem;
    padding: 0.26rem 0.3rem 0.4rem;
  }

  .lobby-mode {
    grid-column: 1;
  }

  .lobby-right {
    grid-area: 2 / 1;
  }

  .lobby-left {
    grid-area: 3 / 1;
  }

  .lobby-mode .mode-cards {
    grid-template-columns: minmax(0px, 1fr);
    gap: 0.15rem;
  }

  .lobby-mode .mode-card {
    min-height: 0px;
    padding: 0.25rem 0.26rem 0.24rem 1.18rem;
  }

  .lobby-mode .mode-card__icon {
    top: 0.3rem;
  }

  .lobby-mode .mode-card__name {
    font-size: max(calc(.34 * var(--t)), 18px);
  }

  .lobby-mode .mode-card__desc {
    font-size: max(calc(.18 * var(--t)), 11px);
    max-width: none;
  }

  .lobby-mode .mode-card__points {
    display: flex;
    font-size: max(calc(.15 * var(--t)), 10px);
  }

  .lobby-mode .mode-card__check {
    bottom: 0.2rem;
    left: 0.22rem;
  }

  .lobby-mode .mode-card__text {
    padding-top: 0.03rem;
  }

  .firepower-brief__hint {
    margin-left: 0px;
    width: 100%;
    font-size: max(calc(.15 * var(--t)), 10px);
  }

  .firepower-feature strong {
    font-size: max(calc(.17 * var(--t)), 11px);
  }

  .firepower-feature p {
    font-size: max(calc(.15 * var(--t)), 10px);
  }

  .mode-beta {
    font-size: max(calc(.13 * var(--t)), 9px);
  }

  .lobby-right .diff-card__head {
    flex-wrap: wrap;
  }

  .lobby-right .diff-card__meta {
    flex-basis: 100%;
    margin-left: 0.36rem;
  }

  .lobby-right .diff-card__name {
    font-size: max(calc(.22 * var(--t)), 12px);
  }

  .lobby-right .diff-card__desc {
    font-size: max(calc(.16 * var(--t)), 10px);
    line-height: 1.5;
  }

  .lobby-right .diff-card__effects {
    display: flex;
    font-size: max(calc(.14 * var(--t)), 9px);
  }

  .lobby-right .diff-card__check {
    display: none;
  }

  .lobby-right .diff-card__meta {
    font-size: max(calc(.14 * var(--t)), 9px);
  }

  .lobby-right .diff-card__meta .num {
    font-size: max(calc(.17 * var(--t)), 10px);
  }

  .lobby-right .create-box {
    width: 100%;
  }

  .lobby-right .create-box .btn--xl {
    font-size: max(calc(.28 * var(--t)), 16px);
    height: max(0.72rem, 40px);
  }

  .matchmaking-panel {
    flex-wrap: wrap;
  }

  .join-row {
    flex-wrap: wrap;
  }

  .join-row .field {
    flex-basis: 100%;
  }
}

@keyframes card-in {
  0% {
    opacity: 0;
    transform: translateY(0.14rem);
  }
}

.code-chip {
  padding: 0.03rem 0.12rem 0.03rem 0.16rem;
  border: 1px solid var(--line-2);
  background: rgba(0, 0, 0, 0.3);
  color: var(--amber);
  font-size: calc(.17 * var(--t));
  font-weight: 700;
  letter-spacing: 0.2em;
  transition: border-color var(--t-fast), background-color var(--t-fast);
}

.code-chip:hover {
  border-color: var(--amber);
  background: rgba(246, 163, 41, 0.08);
}

.tips {
  --bk-c: var(--line-3);
  margin-top: 0.3rem;
  padding: 0.16rem 0.22rem 0.2rem;
  background: rgba(8, 10, 9, 0.55);
  border: 1px solid var(--line);
}

.tips__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.1rem;
  font-size: calc(.16 * var(--t));
  font-weight: 700;
  color: var(--text-md);
}

.tips__head > .icon {
  width: 0.2rem;
  height: 0.2rem;
  color: var(--mint-500);
}

.tips__idx {
  font-size: calc(.16 * var(--t));
  color: var(--text-md);
}

.tips__nav {
  display: grid;
  place-items: center;
  width: 0.3rem;
  height: 0.3rem;
  padding: 0px;
  border: 1px solid var(--line-2);
  background: transparent;
  color: var(--text-lo);
  transition: color var(--t-fast), border-color var(--t-fast);
}

.tips__nav:hover {
  color: var(--mint-400);
  border-color: var(--mint-700);
}

.tips__nav .icon {
  width: 0.18rem;
  height: 0.18rem;
}

.tips__text {
  margin-top: 0.1rem;
  font-size: calc(.17 * var(--t));
  color: var(--text-lo);
  line-height: 1.6;
  animation: tip-in var(--t-slow) var(--ease-out);
}

@keyframes tip-in {
  0% {
    opacity: 0;
    transform: translateX(0.1rem);
  }
}

.btn-create-alliance {
  position: relative;
  overflow: hidden;
}

.btn-create-alliance::after {
  content: "";
  position: absolute;
  right: 0px;
  top: 0px;
  bottom: 0px;
  width: 1.4rem;
  background: repeating-linear-gradient(-45deg, rgba(0, 0, 0, 0.14) 0px, rgba(0, 0, 0, 0.14) 8px, transparent 8px, transparent 16px);
  pointer-events: none;
}

.online-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.06rem;
  padding: 0.04rem 0.14rem 0.04rem 0.12rem;
  background: rgba(14, 28, 24, 0.85);
  border: 1px solid rgba(78, 216, 175, 0.35);
  border-radius: 0.04rem;
  font-size: calc(.15 * var(--t));
  color: var(--mint-400);
}

.online-pill__dot {
  width: 0.08rem;
  height: 0.08rem;
  border-radius: 50%;
  background: var(--mint-400);
  box-shadow: 0 0 .08rem var(--mint-400);
}

.online-pill .num {
  font-weight: 700;
  color: var(--text-hi);
}

.online-pill__label {
  font-size: calc(.13 * var(--t));
  color: var(--mint-400);
}

.matchmaking-panel {
  --bk-c: var(--mint-400);
  --bk-l: .22rem;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.2rem;
  padding: 0.24rem 0.28rem;
  margin-bottom: 0.34rem;
  background: linear-gradient(rgba(20, 26, 23, 0.92), rgba(12, 16, 15, 0.95));
  border: 1px solid rgba(78, 216, 175, 0.3);
  box-shadow: rgba(23, 249, 183, 0.04) 0px 0px 0.3rem;
}

.matchmaking-panel__content {
  display: flex;
  flex-direction: column;
  gap: 0.06rem;
  min-width: 0px;
}

.matchmaking-panel__title {
  font-size: calc(.28 * var(--t));
  font-weight: 900;
  letter-spacing: 0.06em;
  color: var(--text-hi);
}

.matchmaking-panel__desc {
  font-size: calc(.15 * var(--t));
  color: var(--text-lo);
  line-height: 1.55;
  max-width: 4.8rem;
}

.matchmaking-panel__action {
  display: flex;
  align-items: center;
  gap: 0.16rem;
  flex-shrink: 0;
}

.matchmaking-online-chip {
  display: flex;
  align-items: center;
  gap: 0.08rem;
  padding: 0.06rem 0.14rem;
  background: rgba(14, 28, 24, 0.85);
  border: 1px solid rgba(78, 216, 175, 0.3);
  border-radius: 0.04rem;
  color: var(--mint-400);
  font-size: calc(.16 * var(--t));
}

.matchmaking-online-chip .icon {
  width: 0.18rem;
  height: 0.18rem;
  color: var(--mint-400);
}

.matchmaking-online-chip .num {
  font-weight: 700;
  color: var(--text-hi);
  font-size: calc(.18 * var(--t));
}

.btn-matchmaking-open {
  height: 0.64rem;
  padding: 0px 0.26rem;
  font-size: calc(.2 * var(--t));
  font-weight: 900;
  letter-spacing: 0.08em;
  background: var(--mint-500);
  color: rgb(12, 18, 16);
  border: 1px solid var(--mint-400);
  box-shadow: rgba(23, 249, 183, 0.25) 0px 0px 0.2rem;
}

.btn-matchmaking-open:hover {
  background: var(--mint-400);
  box-shadow: rgba(23, 249, 183, 0.45) 0px 0px 0.3rem;
}

.mm-modal__box {
  --bk-c: var(--mint-400);
  --bk-l: .25rem;
  width: min(8.8rem, 95vw);
  max-height: 90vh;
  background: linear-gradient(rgb(19, 25, 23), rgb(12, 16, 14));
  border: 1px solid rgba(78, 216, 175, 0.35);
  box-shadow: rgba(0, 0, 0, 0.8) 0px 0.3rem 1.2rem, rgba(23, 249, 183, 0.12) 0px 0px 0.5rem;
}

.mm-modal .modal__stripe {
  height: 0.07rem;
  background: repeating-linear-gradient(-45deg, var(--mint-400) 0 8px, transparent 8px 16px);
  opacity: 0.8;
}

.mm-modal__head {
  padding: 0.24rem 0.32rem 0.1rem;
}

.mm-modal__title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.mm-modal__title {
  font-size: calc(.34 * var(--t));
  font-weight: 900;
  letter-spacing: 0.06em;
  color: var(--text-hi);
}

.mm-modal__close {
  display: grid;
  place-items: center;
  width: 0.36rem;
  height: 0.36rem;
  background: transparent;
  border: 1px solid var(--line-2);
  color: var(--text-md);
  cursor: pointer;
  transition: border-color var(--t-fast), color var(--t-fast);
}

.mm-modal__close:hover {
  border-color: var(--mint-400);
  color: var(--mint-400);
}

.mm-modal__body {
  padding: 0.14rem 0.32rem 0.24rem;
  display: flex;
  flex-direction: column;
  gap: 0.18rem;
}

.mm-stats-bar {
  display: flex;
  align-items: center;
  padding: 0.16rem 0.28rem;
  background: rgba(18, 29, 25, 0.85);
  border: 1px solid rgba(78, 216, 175, 0.2);
  gap: 0.4rem;
}

.mm-stats-col {
  display: flex;
  flex-direction: column;
  gap: 0.02rem;
}

.mm-stats-num {
  font-size: calc(.38 * var(--t));
  font-weight: 900;
  line-height: 1;
  color: rgb(255, 255, 255);
}

.mm-stats-num--mint {
  color: var(--mint-400);
  text-shadow: rgba(23, 249, 183, 0.35) 0px 0px 0.15rem;
}

.mm-stats-label {
  font-size: calc(.14 * var(--t));
  color: var(--text-lo);
  letter-spacing: 0.04em;
}

.mm-refresh-btn {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 0.08rem;
  padding: 0.08rem 0.16rem;
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid var(--line-2);
  color: var(--text-md);
  font-size: calc(.16 * var(--t));
  cursor: pointer;
  transition: border-color var(--t-fast), color var(--t-fast);
}

.mm-refresh-btn:hover {
  border-color: var(--mint-400);
  color: var(--text-hi);
}

.mm-refresh-btn .icon {
  width: 0.18rem;
  height: 0.18rem;
}

.is-spinning {
  animation: 1s linear 0s infinite normal none running spin;
}

@keyframes spin {
  100% {
    transform: rotate(360deg);
  }
}

.mm-room-list {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-height: 2.2rem;
  max-height: 4.8rem;
  overflow-y: auto;
}

.mm-room-card {
  display: flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.14rem 0.2rem;
  background: rgba(18, 23, 21, 0.9);
  border: 1px solid var(--line-2);
  transition: border-color var(--t-fast);
}

.mm-room-card:hover {
  border-color: rgba(78, 216, 175, 0.3);
}

.mm-room-code {
  width: 1.1rem;
  height: 0.64rem;
  display: grid;
  place-items: center;
  background: rgba(10, 13, 12, 0.9);
  border: 1px solid var(--line);
  font-size: calc(.28 * var(--t));
  font-weight: 900;
  letter-spacing: 0.12em;
  color: var(--text-md);
}

.mm-room-info {
  flex: 1 1 0%;
  display: flex;
  flex-direction: column;
  gap: 0.06rem;
  min-width: 0px;
}

.mm-room-name {
  font-size: calc(.22 * var(--t));
  font-weight: 700;
  color: var(--text-hi);
}

.mm-room-meta {
  display: flex;
  align-items: center;
  gap: 0.18rem;
  font-size: calc(.14 * var(--t));
  color: var(--text-md);
}

.mm-room-diff {
  display: flex;
  align-items: center;
  gap: 0.05rem;
  color: var(--d-color);
  font-weight: 700;
}

.mm-room-diff .diff-glyph {
  width: 0.18rem;
  height: 0.18rem;
  color: var(--d-color);
}

.mm-room-players {
  display: flex;
  align-items: center;
  gap: 0.05rem;
  color: var(--text-md);
}

.mm-room-players .icon {
  width: 0.16rem;
  height: 0.16rem;
}

.mm-room-status {
  padding: 0.02rem 0.08rem;
  font-size: calc(.12 * var(--t));
  border: 1px solid var(--line);
}

.mm-room-status.is-in-match {
  background: rgba(50, 50, 50, 0.4);
  color: var(--text-dim);
  border-color: var(--line);
}

.mm-room-status.is-waiting {
  background: rgba(23, 249, 183, 0.12);
  color: var(--mint-400);
  border-color: rgba(78, 216, 175, 0.3);
}

.mm-room-actions {
  display: flex;
  align-items: center;
  gap: 0.1rem;
}

.mm-btn-join {
  min-width: 1.05rem;
  height: 0.56rem;
}

.mm-btn-join.is-disabled-match {
  opacity: 0.5;
  cursor: not-allowed;
  background: repeating-linear-gradient(45deg, rgba(23, 249, 183, 0.06) 0px, rgba(23, 249, 183, 0.06) 6px, transparent 6px, transparent 12px) !important;
  border-color: var(--line) !important;
  color: var(--text-dim) !important;
}

.mm-btn-spectate {
  min-width: 1.05rem;
  height: 0.56rem;
  background: rgba(14, 18, 16, 0.9);
  border: 1px solid var(--line-2);
}

.mm-room-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.12rem;
  padding: 0.6rem 0px;
  color: var(--text-dim);
  font-size: calc(.16 * var(--t));
}

.mm-room-empty .icon {
  width: 0.36rem;
  height: 0.36rem;
  color: var(--text-dim);
}

.mm-modal__foot {
  display: flex;
  align-items: center;
  gap: 0.14rem;
  padding-top: 0.12rem;
  border-top: 1px solid var(--line);
}

.mm-foot-text {
  font-size: calc(.13 * var(--t));
  color: var(--text-dim);
  letter-spacing: 0.02em;
}

.matchmaking-count {
  display: inline-flex;
  gap: 0.035rem;
  color: var(--mint);
  font-size: max(calc(.12 * var(--t)), 11px);
  white-space: nowrap;
  align-items: baseline;
}

.mode-card .matchmaking-count {
  margin-top: 0.08rem;
}

.diff-card__head {
  flex-wrap: wrap;
}

.matchmaking-panel__action {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.1rem;
}

.btn-quick-match {
  height: 0.64rem;
  white-space: nowrap;
}

.lobby-hub, [data-hub-theme="night"], [data-hub-theme="custom"] {
  --sky-0: #03080a;
  --sky-1: #08141a;
  --sky-2: #12262a;
  --sky-3: #050909;
  --haze: rgba(92, 168, 156, .17);
  --cloud: rgba(140, 196, 186, .055);
  --ridge-far: #122022;
  --ridge-mid: #0b1516;
  --ridge-near: #060b0b;
  --rim: rgba(110, 226, 196, .34);
  --fog: rgba(54, 104, 98, .3);
  --beam: rgba(150, 240, 215, .1);
  --beacon: #59f4ca;
  --window: rgba(89, 244, 202, .7);
  --grid: rgba(89, 244, 202, .32);
  --mote: rgba(170, 245, 225, .7);
  --radar: rgba(89, 244, 202, .15);
}

[data-hub-theme="frost"] {
  --sky-0: #070c12;
  --sky-1: #142029;
  --sky-2: #34444f;
  --sky-3: #090d11;
  --haze: rgba(205, 226, 240, .2);
  --cloud: rgba(220, 236, 246, .08);
  --ridge-far: #3a4852;
  --ridge-mid: #212c34;
  --ridge-near: #0f1418;
  --rim: rgba(240, 248, 255, .62);
  --fog: rgba(180, 200, 214, .24);
  --beam: rgba(225, 240, 255, .12);
  --beacon: #9fd8ff;
  --window: rgba(170, 220, 255, .7);
  --grid: rgba(170, 215, 240, .26);
  --mote: rgba(240, 248, 255, .85);
  --radar: rgba(180, 220, 245, .16);
}

[data-hub-theme="ember"] {
  --sky-0: #080605;
  --sky-1: #120d0b;
  --sky-2: #251913;
  --sky-3: #070505;
  --haze: rgba(196, 104, 52, .15);
  --cloud: rgba(130, 96, 76, .08);
  --ridge-far: #211814;
  --ridge-mid: #150f0c;
  --ridge-near: #090606;
  --rim: rgba(255, 150, 80, .28);
  --fog: rgba(84, 52, 38, .32);
  --beam: transparent;
  --beacon: #ffae48;
  --window: rgba(255, 168, 80, .75);
  --grid: rgba(255, 170, 90, .22);
  --mote: rgba(255, 150, 70, .85);
  --radar: rgba(255, 180, 110, .14);
}

[data-hub-theme="calm"] {
  --sky-0: #040606;
  --sky-1: #070b0b;
  --sky-2: #0c1211;
  --sky-3: #040505;
  --haze: rgba(80, 120, 110, .07);
  --cloud: transparent;
  --ridge-far: #0e1514;
  --ridge-mid: #090e0e;
  --ridge-near: #050808;
  --rim: rgba(89, 244, 202, .14);
  --fog: rgba(30, 50, 46, .25);
  --beam: transparent;
  --beacon: #4ed8af;
  --window: rgba(78, 216, 175, .45);
  --grid: rgba(89, 244, 202, .22);
  --mote: transparent;
  --radar: rgba(89, 244, 202, .11);
}

[data-hub-theme="custom"] {
  --radar: rgba(235, 245, 240, .14);
}

.lobby-hub {
  --hub-entry-w: 2.1rem;
  --hub-gap: .14rem;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: rgb(5, 9, 9);
}

.hub-bg {
  position: absolute;
  inset: 0px;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  background: var(--sky-3);
}

.hub-bg__sky {
  position: absolute;
  inset: 0px;
  background: linear-gradient(180deg, var(--sky-0) 0%, var(--sky-1) 36%, var(--sky-2) 63%, var(--sky-3) 100%);
}

.hub-bg__stars {
  position: absolute;
  left: 0px;
  top: 0px;
  width: 1px;
  height: 1px;
  border-radius: 50%;
  animation: 7s ease-in-out 0s infinite alternate none running hub-twinkle;
}

.hub-bg__haze {
  position: absolute;
  inset: 0px;
  background: radial-gradient(ellipse 80% 20% at 50% 64%, var(--haze), transparent 72%),
    radial-gradient(ellipse 130% 36% at 50% 72%, var(--haze), transparent 70%);
}

.hub-bg__clouds {
  position: absolute;
  left: 0px;
  top: 6%;
  width: 200%;
  height: 50%;
  background-size: 50% 100%;
  background-repeat: repeat-x;
  animation: 180s linear 0s infinite normal none running hub-drift;
}

.hub-bg__land {
  position: absolute;
  left: 0px;
  bottom: 0px;
  width: 100%;
  height: 64%;
  overflow: visible;
}

.hub-bg__ridge--far {
  fill: var(--ridge-far);
}

.hub-bg__ridge--mid, .hub-bg__fort {
  fill: var(--ridge-mid);
}

.hub-bg__ridge--near {
  fill: var(--ridge-near);
}

.hub-bg__rim {
  fill: none;
  stroke: var(--rim);
  stroke-width: 1.2;
  vector-effect: non-scaling-stroke;
}

.hub-fog-0 {
  stop-color: var(--fog);
  stop-opacity: 0;
}

.hub-fog-1 {
  stop-color: var(--fog);
  stop-opacity: 1;
}

.hub-beam-0 {
  stop-color: var(--beam);
}

.hub-beam-1 {
  stop-color: var(--beam);
  stop-opacity: 0;
}

.hub-bg__beam {
  transform-origin: 791px 300px;
  animation: 16s ease-in-out 0s infinite alternate none running hub-beam;
}

.hub-bg__windows rect {
  fill: var(--window);
  animation-duration: 9s;
  animation-timing-function: steps(1);
  animation-iteration-count: infinite;
  animation-direction: normal;
  animation-fill-mode: none;
  animation-play-state: running;
  animation-name: hub-window;
  animation-timeline: auto;
  animation-range: normal;
  animation-delay: var(--dl);
}

.hub-bg__beacons g {
  fill: var(--beacon);
  animation-duration: 2.8s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-direction: normal;
  animation-fill-mode: none;
  animation-play-state: running;
  animation-name: hub-beacon;
  animation-timeline: auto;
  animation-range: normal;
  animation-delay: var(--dl);
}

.hub-bg__beacon-glow {
  opacity: 0.22;
}

.hub-bg__motes {
  position: absolute;
  inset: 0px;
}

.hub-bg__mote {
  position: absolute;
  border-radius: 50%;
  background: var(--mote);
  box-shadow: 0 0 6px var(--mote);
  opacity: 0;
  animation-delay: var(--dl);
}

[data-hub-theme="frost"] .hub-bg__mote {
  animation-name: hub-snow;
}

.hub-bg__grid {
  position: absolute;
  left: -20%;
  right: -20%;
  bottom: -6%;
  height: 30%;
  opacity: 0.24;
  background: repeating-linear-gradient(90deg, var(--grid) 0 1px, transparent 1px 64px),
    repeating-linear-gradient(0deg, var(--grid) 0 1px, transparent 1px 64px);
  transform: perspective(420px) rotateX(62deg);
  transform-origin: 50% 100%;
  mask-image: linear-gradient(0deg, rgb(0, 0, 0) 5%, transparent 85%);
}

.hub-bg__dots {
  position: absolute;
  inset: 0px;
  opacity: 0.12;
  background-image: radial-gradient(rgba(223, 230, 226, 0.6) 1px, transparent 1.2px);
  background-size: 22px 22px;
  mask-image: linear-gradient(rgb(0, 0, 0), transparent 50%);
}

.hub-bg__scan {
  position: absolute;
  inset: 0px;
  background: repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.02) 0px, rgba(255, 255, 255, 0.02) 1px, transparent 1px, transparent 3px), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.hub-bg__vignette {
  position: absolute;
  inset: 0px;
  background: linear-gradient(rgba(0, 0, 0, 0.42), transparent 16%), radial-gradient(130% 95% at 50% 42%, transparent 50%, rgba(0, 0, 0, 0.72));
}

.hub-bg__photo {
  position: absolute;
  inset: -24px;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}

.hub-bg__shade {
  position: absolute;
  inset: 0px;
  background: linear-gradient(rgba(3, 7, 7, 0.92), rgba(3, 7, 7, 0.78) 50%, rgba(3, 7, 7, 0.96));
}

.hub-bg[data-motion="off"] *, .lobby-hub .hub-bg[data-motion="off"] {
  animation: auto ease 0s 1 normal none running none !important;
}

.hub-bg[data-motion="off"] .hub-bg__mote {
  opacity: 0.3;
}

@keyframes hub-twinkle {
  0% {
    opacity: 0.5;
  }

  100% {
    opacity: 1;
  }
}

@keyframes hub-drift {
  100% {
    transform: translateX(-50%);
  }
}

@keyframes hub-beam {
  0% {
    transform: rotate(-18deg);
  }

  100% {
    transform: rotate(24deg);
  }
}

@keyframes hub-window {
  0%, 70% {
    opacity: 0.9;
  }

  72%, 78% {
    opacity: 0.2;
  }

  80%, 100% {
    opacity: 0.9;
  }
}

@keyframes hub-beacon {
  0%, 100% {
    opacity: 0.25;
  }

  50% {
    opacity: 1;
  }
}

@keyframes hub-mote {
  0% {
    transform: translate3d(0px, 0px, 0px);
    opacity: 0;
  }

  15% {
    opacity: 0.8;
  }

  85% {
    opacity: 0.45;
  }

  100% {
    transform: translate3d(2vw, -18vh, 0px);
    opacity: 0;
  }
}

@keyframes hub-snow {
  0% {
    transform: translate3d(0px, -12vh, 0px);
    opacity: 0;
  }

  15% {
    opacity: 0.9;
  }

  85% {
    opacity: 0.7;
  }

  100% {
    transform: translate3d(-3vw, 14vh, 0px);
    opacity: 0;
  }
}

@keyframes hub-sweep {
  100% {
    transform: rotate(1turn);
  }
}

@keyframes hub-pulse {
  0% {
    box-shadow: rgba(89, 244, 202, 0.55) 0px 0px 0px 0px;
  }

  100% {
    box-shadow: rgba(89, 244, 202, 0) 0px 0px 0px 0.1rem;
  }
}

.lobby-hub > .topbar, .hub-stage {
  position: relative;
  z-index: 1;
}

.lobby-hub > .topbar {
  z-index: 2;
  animation: 320ms ease-out 120ms 1 normal backwards running tr-fade;
}

.hub-topbar {
  background: linear-gradient(rgba(4, 8, 8, 0.85), transparent);
  border-bottom: 0px;
}

.hub-online {
  display: inline-flex;
  align-items: center;
  gap: 0.08rem;
  padding: 0.04rem 0.14rem;
  margin-right: 0.1rem;
  border: 1px solid var(--mint-a35);
  background: rgba(8, 14, 12, 0.6);
  color: var(--text-hi);
  font-size: calc(.14 * var(--t));
  white-space: nowrap;
}

.hub-online .num {
  color: var(--mint-400);
  font-weight: 800;
}

.hub-stage {
  flex: 1 1 auto;
  min-height: 0px;
  display: grid;
  padding: 0.1rem 0.36rem 0.36rem;
  grid-template-columns: minmax(2.6rem, 3.2rem) 1fr calc(var(--hub-entry-w) * 2 + var(--hub-gap));
  grid-template-rows: minmax(0px, 1fr) auto;
  gap: 0.2rem 0.4rem;
  position: relative;
  z-index: 1;
  grid-template-areas: "side center right" "side entries entries";
  width: 100%;
}

.hub-center {
  grid-area: 1 / 1 / auto / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  pointer-events: none;
  align-self: center;
  gap: 0.1rem;
  min-width: 0px;
  animation: card-in var(--t-slow) var(--ease-out) backwards;
}

.hub-center__mark {
  position: relative;
  display: grid;
  place-items: center;
  margin-bottom: 0.14rem;
  min-height: 1.4rem;
}

.hub-center__mark .emblem {
  margin: 0px;
  z-index: 1;
  position: relative;
}

.hub-center__en {
  position: relative;
  font: 700 0.2rem / 1 ui-monospace, Consolas, monospace;
  letter-spacing: 0.32em;
  color: rgba(223, 230, 226, 0.72);
  text-shadow: rgba(0, 0, 0, 0.85) 0px 1px 0.08rem;
}

[data-hub-theme="custom"] .hub-center__mark .emblem {
  filter: drop-shadow(rgba(0, 0, 0, 0.7) 0px 0px 0.1rem);
}

.hub-center__en b {
  color: var(--mint-400);
  font-weight: 700;
}

.hub-center__title {
  position: relative;
  margin: 0.1rem 0px 0px;
  font-size: calc(.46 * var(--t));
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--text-hi);
  text-shadow: rgba(0, 0, 0, 0.8) 0px 0.04rem 0.3rem;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.hub-radar {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 5.2rem;
  height: 5.2rem;
  transform: translate(-50%, -50%);
}

.hub-radar svg {
  width: 100%;
  height: 100%;
  overflow: visible;
  fill: none;
  stroke: var(--radar);
  stroke-width: 1;
}

.hub-radar .hub-radar__ticks {
  stroke-width: 5;
  stroke-dasharray: 1.4, 9.8;
}

.hub-radar__sweep {
  position: absolute;
  inset: 5.4%;
  border-radius: 50%;
  background: conic-gradient(from 0deg, transparent 0 292deg, var(--radar) 360deg);
  mask-image: radial-gradient(circle, transparent 0px, transparent 17%, rgb(0, 0, 0) 18%);
  animation: 9s linear 0s infinite normal none running hub-sweep;
}

.hub-side {
  grid-area: 1 / 1 / -1;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 0.14rem;
  min-width: 0px;
  padding-top: 0.3rem;
}

.hub-tile {
  align-items: center;
  gap: 0.14rem;
  width: 100%;
  min-height: 0.74rem;
  padding: 0.1rem 0.16rem;
  background: rgba(8, 14, 13, 0.8);
  border-top: 1px solid rgba(223, 230, 226, 0.2);
  border-right: 1px solid rgba(223, 230, 226, 0.2);
  border-bottom: 1px solid rgba(223, 230, 226, 0.2);
  border-image: none;
  border-left: 3px solid var(--mint-500);
  color: var(--text-hi);
  text-align: left;
  cursor: pointer;
  transition: background var(--t-fast), border-color var(--t-fast);
  display: flex !important;
}

.hub-tile:hover {
  background: rgba(24, 40, 36, 0.9);
  border-color: var(--mint-a35);
}

.hub-tile__icon {
  display: grid;
  place-items: center;
  width: 0.44rem;
  height: 0.44rem;
  flex: 0 0 auto;
  border: 1px solid var(--mint-a35);
  color: var(--mint-400);
  font-size: calc(.22 * var(--t));
}

.hub-tile__text {
  display: flex;
  flex-direction: column;
  gap: 0.02rem;
  min-width: 0px;
}

.hub-tile__label {
  font-size: calc(.2 * var(--t));
  font-weight: 800;
}

.hub-tile__en {
  font: 600 0.1rem / 1 ui-monospace, Consolas, monospace;
  letter-spacing: 0.18em;
  color: var(--text-dim);
}

.hub-side .tips {
  margin-top: 0.04rem;
  background: rgba(8, 14, 13, 0.72);
}

.hub-right {
  grid-area: 1 / 3;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 0.16rem;
  min-width: 0px;
  min-height: 0px;
  padding-top: 0.06rem;
  align-self: start;
}

.hub-recruit {
  flex: 0 0 auto;
  background: linear-gradient(rgba(9, 17, 16, 0.88), rgba(6, 11, 10, 0.9));
  border-right: 1px solid rgba(223, 230, 226, 0.14);
  border-bottom: 1px solid rgba(223, 230, 226, 0.14);
  border-left: 1px solid rgba(223, 230, 226, 0.14);
  border-image: none;
  border-top: 2px solid var(--mint-500);
  box-shadow: rgba(0, 0, 0, 0.45) 0px 0.06rem 0.24rem;
  backdrop-filter: blur(6px);
}

.hub-recruit__head {
  display: flex;
  align-items: center;
  gap: 0.08rem;
  height: 0.42rem;
  padding: 0px 0.08rem 0px 0.14rem;
  border-bottom: 1px solid rgba(223, 230, 226, 0.08);
}

.hub-recruit__pulse {
  width: 0.08rem;
  height: 0.08rem;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--text-dim);
}

.hub-recruit__pulse.is-live {
  background: var(--mint-400);
  animation: 1.8s ease-out 0s infinite normal none running hub-pulse;
}

.hub-recruit__title {
  font-size: calc(.17 * var(--t));
  font-weight: 800;
  color: var(--text-hi);
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.hub-recruit__en {
  font: 700 0.1rem / 1 ui-monospace, Consolas, monospace;
  letter-spacing: 0.2em;
  color: var(--mint-400);
  opacity: 0.7;
}

.hub-recruit__n {
  min-width: 0.24rem;
  padding: 0.02rem 0.06rem;
  text-align: center;
  font-size: calc(.13 * var(--t));
  font-weight: 800;
  color: rgb(4, 20, 15);
  background: var(--mint-500);
}

.hub-recruit__all {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.02rem;
  padding: 0.04rem 0.06rem;
  font-size: calc(.13 * var(--t));
  color: rgba(223, 230, 226, 0.72);
  background: none;
  border: 0px;
  cursor: pointer;
  white-space: nowrap;
}

.hub-recruit__all:hover {
  color: var(--mint-400);
}

.hub-recruit__list {
  --row-h: .56rem;
  height: calc(var(--row-h) * 3 + .08rem + .16rem);
  padding: 0.08rem;
  display: flex;
  flex-direction: column;
  gap: 0.04rem;
}

.hub-recruit__row {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.1rem;
  height: var(--row-h);
  flex: 0 0 auto;
  padding: 0px 0.08rem 0px 0.14rem;
  background: rgba(223, 230, 226, 0.035);
  border: 1px solid rgba(223, 230, 226, 0.06);
  transition: background var(--t-fast), border-color var(--t-fast);
}

.hub-recruit__row::before {
  content: "";
  position: absolute;
  left: 0px;
  top: 0.08rem;
  bottom: 0.08rem;
  width: 3px;
  background: var(--d-color);
}

.hub-recruit__row:hover {
  background: rgba(78, 216, 175, 0.07);
  border-color: var(--mint-a20);
}

.hub-recruit__info {
  flex: 1 1 auto;
  min-width: 0px;
  display: flex;
  flex-direction: column;
  gap: 0.04rem;
}

.hub-recruit__name {
  font-size: calc(.15 * var(--t));
  font-weight: 700;
  color: var(--text-hi);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.hub-recruit__meta {
  display: flex;
  align-items: center;
  gap: 0.06rem;
  font-size: calc(.12 * var(--t));
  color: var(--d-color);
  white-space: nowrap;
  overflow: hidden;
}

.hub-recruit__meta .diff-glyph {
  width: 0.14rem;
  height: 0.14rem;
  flex: 0 0 auto;
}

.hub-recruit__fp {
  color: var(--gold);
}

.hub-recruit__seats {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.05rem;
  flex: 0 0 auto;
}

.hub-recruit__pips {
  display: flex;
  gap: 2px;
}

.hub-recruit__pips i {
  width: 0.07rem;
  height: 0.12rem;
  background: rgba(223, 230, 226, 0.16);
}

.hub-recruit__pips i.is-on {
  background: var(--mint-400);
}

.hub-recruit__need {
  font-size: calc(.12 * var(--t));
  color: var(--amber);
  white-space: nowrap;
}

.hub-recruit__need b {
  margin: 0px 0.02rem;
  font-size: calc(.14 * var(--t));
}

.hub-recruit__join {
  flex: 0 0 auto;
  height: 0.36rem;
  padding: 0px 0.16rem;
  font-size: calc(.14 * var(--t));
  font-weight: 800;
  color: rgb(4, 20, 15);
  background: var(--mint-500);
  border: 0px;
  cursor: pointer;
  clip-path: polygon(0px 0px, 100% 0px, 100% 68%, 84% 100%, 0px 100%);
  transition: background var(--t-fast);
}

.hub-recruit__join:hover:not(:disabled) {
  background: var(--mint-400);
}

.hub-recruit__join:disabled {
  opacity: 0.45;
  cursor: default;
}

.hub-recruit__empty {
  flex: 1 1 0%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.1rem;
  color: rgba(223, 230, 226, 0.5);
  font-size: calc(.14 * var(--t));
  border: 1px dashed rgba(223, 230, 226, 0.1);
}

.hub-recruit__create {
  display: inline-flex;
  align-items: center;
  gap: 0.02rem;
  padding: 0.05rem 0.14rem;
  font-size: calc(.13 * var(--t));
  font-weight: 700;
  color: var(--mint-400);
  background: transparent;
  border: 1px solid var(--mint-a35);
  cursor: pointer;
}

.hub-recruit__create:hover {
  background: rgba(78, 216, 175, 0.1);
}

.hub-right__plates {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}

.hub-plate {
  --pl-ink: #222b28;
  position: relative;
  align-items: center;
  gap: 0.14rem;
  width: 100%;
  min-width: 0px;
  text-align: left;
  box-shadow: rgba(0, 0, 0, 0.5) 0px 0.05rem 0.18rem, rgba(0, 0, 0, 0.14) 0px -2px 0px inset;
  display: flex !important;
  justify-content: flex-start !important;
  height: 0.7rem !important;
  padding: 0px 0.22rem 0px 0.2rem !important;
  color: rgb(17, 24, 22) !important;
  background: linear-gradient(var(--pl-ink), var(--pl-ink)) left .07rem center / 2px 54% no-repeat,
    linear-gradient(var(--pl-ink), var(--pl-ink)) left .07rem top 23% / .06rem 2px no-repeat,
    linear-gradient(var(--pl-ink), var(--pl-ink)) left .07rem bottom 23% / .06rem 2px no-repeat,
    linear-gradient(var(--pl-ink), var(--pl-ink)) right .07rem center / 2px 54% no-repeat,
    linear-gradient(var(--pl-ink), var(--pl-ink)) right .07rem top 23% / .06rem 2px no-repeat,
    linear-gradient(var(--pl-ink), var(--pl-ink)) right .07rem bottom 23% / .06rem 2px no-repeat,
    linear-gradient(180deg, #e8edea, #c6cfcb) !important;
  border: 1px solid rgba(255, 255, 255, 0.5) !important;
}

.hub-plate__glyph, .hub-plate .lo-entry__icon, .hub-plate > .btn__icon {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  padding: 0.07rem;
  background: rgb(24, 33, 32);
  color: var(--mint-400);
  box-shadow: rgba(255, 255, 255, 0.08) 0px 0px 0px 1px inset;
  box-sizing: border-box;
  width: 0.46rem !important;
  height: 0.46rem !important;
}

.hub-plate__glyph svg {
  width: 100%;
  height: 100%;
}

.hub-plate__label, .hub-plate .btn__label {
  font-size: calc(.2 * var(--t));
  font-weight: 900;
  letter-spacing: 0.04em;
  color: rgb(17, 24, 22);
  white-space: nowrap;
}

.hub-plate__tag {
  margin-left: auto;
  padding: 0.03rem 0.07rem;
  font-size: calc(.11 * var(--t));
  font-weight: 700;
  letter-spacing: 0.12em;
  color: rgba(17, 24, 22, 0.6);
  border: 1px solid rgba(17, 24, 22, 0.28);
  white-space: nowrap;
}

.hub-plate--sweep {
  font: inherit;
  cursor: pointer;
}

.hub-plate--sweep:hover, .hub-plate--loadout:not(:disabled):hover {
  filter: brightness(1.05);
}

.hub-plate--sweep:focus-visible {
  outline: 2px solid var(--mint-400);
  outline-offset: 2px;
}

.hub-entries {
  grid-area: 2 / 2 / auto / -1;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.12rem;
  position: relative;
  z-index: 1;
  justify-content: flex-end;
  min-width: 0px;
}

.hub-searching, .hub-maint {
  width: min(100%, 8.6rem);
}

.hub-maint {
  padding: 0.08rem 0.16rem;
  border: 1px solid var(--amber);
  color: var(--amber);
  background: rgba(40, 24, 6, 0.7);
  font-size: calc(.15 * var(--t));
}

.hub-entries__row {
  display: flex;
  align-items: flex-end;
  gap: var(--hub-gap);
}

.hub-entry-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 0px;
  animation: card-in var(--t-slow) var(--ease-out) backwards;
}

.hub-entry__group {
  display: flex;
  align-items: center;
  gap: 0.06rem;
  height: 0.2rem;
  padding-left: 0.04rem;
  font-size: calc(.13 * var(--t));
  color: rgba(223, 230, 226, 0.7);
  min-height: 0.22rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.hub-entry {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  width: var(--hub-entry-w);
  height: 1.34rem;
  padding: 0.14rem 0.16rem;
  overflow: hidden;
  cursor: pointer;
  text-align: left;
  color: var(--text-hi);
  background: linear-gradient(160deg, rgba(30, 46, 42, 0.94), rgba(9, 15, 14, 0.96));
  border: 1px solid rgba(223, 230, 226, 0.26);
  box-shadow: rgba(0, 0, 0, 0.5) 0px 0.06rem 0.24rem;
  transition: transform var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);
  flex: 1 0 auto;
  max-width: 100%;
  min-height: calc(1.34 * var(--t));
}

.hub-entry:hover:not(:disabled) {
  transform: translateY(-0.04rem);
  border-color: var(--mint-400);
  box-shadow: 0 .08rem .3rem rgba(0, 0, 0, .55), 0 0 .2rem var(--mint-a20);
}

.hub-entry:disabled {
  opacity: 0.5;
  cursor: default;
}

.hub-entry__icon {
  position: absolute;
  right: 0.14rem;
  top: 0.12rem;
  font-size: calc(.42 * var(--t));
  color: var(--mint-a35);
}

.hub-entry__en {
  font: 700 0.11rem / 1 ui-monospace, Consolas, monospace;
  letter-spacing: 0.22em;
  color: var(--mint-400);
}

.hub-entry__name {
  display: flex;
  align-items: center;
  gap: 0.08rem;
  margin-top: 0.04rem;
  font-size: calc(.3 * var(--t));
  font-weight: 900;
  letter-spacing: 0.06em;
  white-space: nowrap;
  line-height: 1.1;
}

.hub-entry__name .mode-beta {
  font-size: calc(.12 * var(--t));
}

.hub-entry__count {
  position: absolute;
  left: 0.16rem;
  top: 0.12rem;
}

.hub-entry__corner {
  position: absolute;
  right: 0px;
  bottom: 0px;
  width: 0.3rem;
  height: 0.3rem;
  background: linear-gradient(135deg, transparent 50%, var(--mint-500) 50%);
  opacity: 0.8;
}

.hub-entry--gold .hub-entry__en {
  color: var(--gold);
}

.hub-entry--gold .hub-entry__icon {
  color: rgba(255, 198, 0, 0.3);
}

.hub-entry--gold .hub-entry__corner {
  background: linear-gradient(135deg, transparent 50%, var(--gold) 50%);
}

.hub-entry--gold:hover:not(:disabled) {
  border-color: var(--gold);
}

.hub-entry--bright {
  background: linear-gradient(160deg, var(--mint-500), #1f8f72);
  color: rgb(4, 20, 15);
  border-color: var(--mint-400);
}

.hub-entry--bright .hub-entry__en {
  color: rgba(4, 20, 15, 0.75);
}

.hub-entry--bright .hub-entry__icon {
  color: rgba(4, 20, 15, 0.25);
}

.hub-entry--bright .hub-entry__corner {
  background: linear-gradient(135deg, transparent 50%, rgb(232, 255, 247) 50%);
}

.hub-dialog-open .community-chat {
  visibility: hidden;
}

.hub-dialog__box {
  width: min(6.4rem, -32px + 100vw);
  max-height: calc(var(--sp-vh, 1vh) * 100 - 32px);
  display: flex;
  flex-direction: column;
}

.hub-dialog__box--wide {
  width: min(10.4rem, -32px + 100vw);
}

.hub-dialog__head {
  padding: 0.2rem 0.26rem 0.1rem;
}

.hub-dialog__title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.2rem;
}

.hub-dialog__body {
  padding: 0.06rem 0.26rem 0.24rem;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 0.14rem;
}

.hub-sheet__desc {
  margin: 0px;
  color: rgba(223, 230, 226, 0.8);
  font-size: calc(.16 * var(--t));
}

.hub-sheet__diffs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0px, 1fr));
  gap: 0.12rem;
}

.hub-sheet__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.2rem;
  flex-wrap: wrap;
}

.hub-sheet__actions {
  display: flex;
  align-items: center;
  gap: 0.14rem;
  margin-left: auto;
}

.hub-join__buttons {
  display: flex;
  gap: 0.12rem;
}

.bgset {
  display: flex;
  flex-direction: column;
  gap: 0.16rem;
}

.bgset__themes {
  display: grid;
  grid-template-columns: repeat(5, minmax(0px, 1fr));
  gap: 0.1rem;
}

.bgset__theme {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.05rem;
  min-width: 0px;
  padding: 0.06rem;
  color: var(--text-hi);
  background: rgba(223, 230, 226, 0.04);
  border: 1px solid rgba(223, 230, 226, 0.14);
  cursor: pointer;
  text-align: left;
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
  font: inherit;
}

.bgset__theme:hover {
  border-color: var(--mint-a35);
}

.bgset__theme.is-selected {
  border-color: var(--mint-400);
  box-shadow: inset 0 0 0 1px var(--mint-400), 0 0 .14rem var(--mint-a20);
}

.bgset__swatch {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: linear-gradient(180deg, var(--sky-0), var(--sky-1) 40%, var(--sky-2) 66%, var(--sky-3));
}

.bgset__swatch svg {
  position: absolute;
  inset: 0px;
  width: 100%;
  height: 100%;
}

.bgset__swatch .sw-far {
  fill: var(--ridge-far);
}

.bgset__swatch .sw-mid {
  fill: var(--ridge-mid);
}

.bgset__swatch .sw-near {
  fill: var(--ridge-near);
}

.bgset__swatch .sw-beacon {
  fill: var(--beacon);
}

.bgset__swatch--custom {
  display: grid;
  place-items: center;
  background: center center / cover no-repeat rgb(11, 17, 16);
  outline: rgba(223, 230, 226, 0.2) dashed 1px;
  outline-offset: -1px;
}

.bgset__plus {
  font-size: calc(.34 * var(--t));
  line-height: 1;
  color: rgba(223, 230, 226, 0.5);
}

.bgset__name {
  font-size: calc(.15 * var(--t));
  font-weight: 800;
  white-space: nowrap;
}

.bgset__en {
  font: 700 0.09rem / 1 ui-monospace, Consolas, monospace;
  letter-spacing: 0.14em;
  color: var(--text-dim);
  white-space: nowrap;
}

.bgset__custom {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.12rem;
  border: 1px solid rgba(223, 230, 226, 0.1);
  background: rgba(223, 230, 226, 0.03);
}

.bgset__row {
  display: flex;
  gap: 0.1rem;
}

.bgset__slider {
  display: grid;
  grid-template-columns: 0.5rem 1fr 0.56rem;
  align-items: center;
  gap: 0.12rem;
  font-size: calc(.14 * var(--t));
  color: rgba(223, 230, 226, 0.8);
}

.bgset__slider input {
  width: 100%;
  accent-color: var(--mint-500);
}

.bgset__slider b {
  text-align: right;
  color: var(--mint-400);
}

.bgset__check {
  display: flex;
  align-items: center;
  gap: 0.08rem;
  font-size: calc(.14 * var(--t));
  color: rgba(223, 230, 226, 0.85);
  cursor: pointer;
}

.bgset__check input {
  width: 0.16rem;
  height: 0.16rem;
  accent-color: var(--mint-500);
}

.bgset__note {
  margin: 0px;
  font-size: calc(.12 * var(--t));
  color: var(--text-dim);
}

@media (prefers-reduced-motion: reduce) {
  .hub-bg *, .hub-radar__sweep, .hub-recruit__pulse.is-live {
    animation: auto ease 0s 1 normal none running none !important;
  }

  .hub-bg__mote {
    opacity: 0.3;
  }

  .hub-scene * {
    animation: auto ease 0s 1 normal none running none;
  }

  .hub-scene .hub-bg__mote {
    opacity: 0.3;
  }
}

@media (max-height: 560px) and (min-aspect-ratio: 4 / 3) {
  .hub-right {
    gap: 0.1rem;
  }

  .hub-recruit__head {
    height: max(0.36rem, 26px);
  }

  .hub-recruit__list {
    --row-h: max(.5rem, 32px);
    height: calc(var(--row-h) * 2 + .04rem + .12rem);
    padding: 0.06rem;
  }

  .hub-recruit__row:nth-child(n+3) {
    display: none;
  }

  .hub-right__plates {
    gap: 0.08rem;
  }

  .hub-plate {
    gap: 0.1rem;
    height: max(0.5rem, 32px) !important;
  }

  .hub-plate__glyph, .hub-plate .lo-entry__icon, .hub-plate > .btn__icon {
    padding: 0.04rem;
    width: max(0.36rem, 22px) !important;
    height: max(0.36rem, 22px) !important;
  }

  .hub-plate__label, .hub-plate .btn__label {
    font-size: max(calc(.16 * var(--t)), 12px);
  }

  .hub-plate__tag {
    font-size: max(calc(.1 * var(--t)), 9px);
  }
}

@media (max-aspect-ratio: 4 / 3) {
  .hub-stage {
    grid-template-columns: minmax(0px, 1fr);
    grid-template-rows: none;
    align-content: start;
    overflow-y: auto;
  }

  .hub-center, .hub-side, .hub-right, .hub-entries {
    grid-area: auto / 1;
  }

  .hub-center {
    order: 0;
    padding: 0.3rem 0px;
  }

  .hub-entries {
    order: 1;
  }

  .hub-right {
    order: 2;
  }

  .hub-side {
    order: 3;
    padding-top: 0px;
  }

  .hub-right {
    justify-self: end;
    width: min(100%, calc(var(--hub-entry-w) * 2 + var(--hub-gap)));
  }

  .hub-side {
    justify-self: start;
    width: min(100%, 3.2rem);
  }

  .hub-entries {
    align-items: stretch;
  }

  .hub-entries__row {
    flex-wrap: wrap;
  }
}

@media (max-width: 560px) {
  .bgset__themes {
    grid-template-columns: repeat(3, minmax(0px, 1fr));
  }
}

:is(.sp-touch, .sp-coarse) .lobby-hub {
  --hub-entry-w: max(1.7rem, 112px);
}

:is(.sp-touch, .sp-coarse) .hub-center__title {
  font-size: max(calc(.4 * var(--t)), 20px);
}

:is(.sp-touch, .sp-coarse) .hub-entry {
  height: max(1.08rem, 72px);
}

:is(.sp-touch, .sp-coarse) .hub-entry__name {
  font-size: max(calc(.24 * var(--t)), 15px);
}

:is(.sp-touch, .sp-coarse) .hub-side .tips {
  display: none;
}

:is(.sp-touch, .sp-coarse) .hub-recruit__title {
  font-size: max(calc(.17 * var(--t)), 12px);
}

:is(.sp-touch, .sp-coarse) .hub-recruit__name {
  font-size: max(calc(.15 * var(--t)), 12px);
}

:is(.sp-touch, .sp-coarse) .hub-recruit__meta, :is(.sp-touch, .sp-coarse) .hub-recruit__need, :is(.sp-touch, .sp-coarse) .hub-recruit__all {
  font-size: max(calc(.12 * var(--t)), 10px);
}

:is(.sp-touch, .sp-coarse) .hub-recruit__join {
  height: max(0.36rem, 26px);
  font-size: max(calc(.14 * var(--t)), 12px);
}

:is(.sp-touch, .sp-coarse) .hub-recruit__empty {
  font-size: max(calc(.14 * var(--t)), 11px);
}

:is(.sp-touch, .sp-coarse) .hub-recruit__create {
  font-size: max(calc(.13 * var(--t)), 11px);
  padding: 4px 10px;
}

:is(.sp-touch, .sp-coarse) .hub-recruit__n {
  font-size: max(calc(.13 * var(--t)), 10px);
}

.sw-open .community-chat {
  visibility: hidden;
}

.sw {
  --sw-ink: #161b1a;
  --sw-tile: #262c2b;
  --sw-tile-2: #1a1f1e;
  --sw-panel: rgba(20, 25, 24, .8);
  position: fixed;
  inset: 0px;
  z-index: 54;
  display: flex;
  flex-direction: column;
  padding: var(--sa-t, 0px) var(--sa-r, 0px) var(--sa-b, 0px) var(--sa-l, 0px);
  color: rgb(241, 244, 243);
  background: rgb(154, 163, 162);
  overscroll-behavior: contain;
  animation: sw-in 200ms var(--ease-out) backwards;
}

@keyframes sw-in {
  0% {
    opacity: 0;
  }
}

.sw__bg {
  position: absolute;
  inset: 0px;
  pointer-events: none;
  overflow: hidden;
  background: radial-gradient(90% 70% at 72% 8%, rgba(255, 255, 255, 0.62), transparent 62%), radial-gradient(70% 80% at -6% 108%, rgba(8, 11, 11, 0.92), rgba(8, 11, 11, 0.4) 55%, transparent 75%), linear-gradient(90deg, rgba(10, 13, 13, 0.62), rgba(10, 13, 13, 0.4) 36%, transparent 50%), linear-gradient(rgb(201, 208, 207), rgb(154, 164, 163) 48%, rgb(109, 120, 119));
}

.sw__mist {
  position: absolute;
  inset: -20%;
  background: radial-gradient(30% 22% at 30% 40%, rgba(255, 255, 255, 0.18), transparent 70%), radial-gradient(26% 20% at 70% 70%, rgba(255, 255, 255, 0.12), transparent 70%);
  animation: 38s ease-in-out 0s infinite alternate none running sw-mist;
}

@keyframes sw-mist {
  100% {
    transform: translate3d(4%, -3%, 0px);
  }
}

.sw__lines {
  position: absolute;
  inset: 0px;
  opacity: 0.5;
  background: linear-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px) 0px 0px / 1.2rem 1.2rem, linear-gradient(90deg, rgba(255, 255, 255, 0.07) 1px, transparent 1px) 0px 0px / 1.2rem 1.2rem;
  mask-image: linear-gradient(transparent, rgb(0, 0, 0) 20%, rgb(0, 0, 0) 70%, transparent);
}

.sw > :where(:not(.sw__bg, .sw-codex)) {
  position: relative;
}

.sw-top {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.3rem;
  height: max(1rem, 50px);
  padding: 0px 0.34rem 0px 0.26rem;
}

.sw-top__left {
  display: flex;
  align-items: center;
  gap: 0.12rem;
}

.sw-back {
  display: inline-flex;
  align-items: center;
  gap: 0.14rem;
  height: max(0.66rem, 36px);
  padding: 0px 0.3rem 0px 0.12rem;
  font: inherit;
  color: rgb(238, 242, 241);
  cursor: pointer;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.16) 1px, transparent 1.5px) 0px 0px / 0.16rem 0.16rem, linear-gradient(rgb(42, 48, 47), rgb(23, 27, 26));
  border: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: rgba(0, 0, 0, 0.35) 0px 0.04rem 0.14rem;
}

.sw-back:hover {
  border-color: rgba(255, 255, 255, 0.4);
}

.sw-back .icon {
  width: max(0.34rem, 20px);
  height: max(0.34rem, 20px);
}

.sw-back__mark {
  padding-left: 0.16rem;
  border-left: 1px solid rgba(255, 255, 255, 0.22);
  font-family: var(--font-display);
  font-size: max(calc(.16 * var(--t)), 11px);
  letter-spacing: 0.2em;
  color: rgb(201, 210, 207);
}

.sw-info {
  display: grid;
  place-items: center;
  width: max(0.66rem, 36px);
  height: max(0.66rem, 36px);
  padding: 0px;
  color: rgb(238, 242, 241);
  cursor: pointer;
  background: linear-gradient(rgb(58, 65, 64), rgb(35, 40, 39));
  border: 1px solid rgba(255, 255, 255, 0.14);
}

.sw-info:hover {
  color: var(--mint-400);
  border-color: var(--mint-500);
}

.sw-info .icon {
  width: 52%;
  height: 52%;
}

.sw-tabs {
  display: flex;
  padding: 3px;
  background: rgba(214, 222, 221, 0.55);
  border: 1px solid rgba(22, 27, 26, 0.5);
  border-radius: 4px;
  box-shadow: rgba(0, 0, 0, 0.25) 0px 0.04rem 0.16rem;
  backdrop-filter: blur(4px);
  min-width: 0px;
}

.sw-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.1rem;
  min-width: max(2.3rem, 92px);
  height: max(0.66rem, 36px);
  padding: 0px 0.22rem;
  font-style: inherit;
  font-variant: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.24 * var(--t)), 13px);
  font-weight: 800;
  color: var(--sw-ink);
  background: none;
  border: 0px;
  border-radius: 3px;
  cursor: pointer;
  white-space: nowrap;
}

.sw-tab:hover:not(.is-on) {
  background: rgba(255, 255, 255, 0.35);
}

.sw-tab.is-on {
  color: rgb(255, 255, 255);
  background: linear-gradient(rgb(44, 50, 49), rgb(21, 25, 24));
  box-shadow: rgba(0, 0, 0, 0.4) 0px 0.03rem 0.1rem;
}

.sw-tab__icon {
  display: grid;
  place-items: center;
}

.sw-tab__icon .icon {
  width: max(0.28rem, 16px);
  height: max(0.28rem, 16px);
}

.sw-body {
  flex: 1 1 auto;
  min-height: 0px;
  display: grid;
  grid-template-columns: minmax(0px, 4.3fr) minmax(0px, 5.7fr);
  gap: 0.5rem;
  padding: 0.1rem 0.34rem 0.26rem 0.3rem;
}

.sw-left {
  min-height: 0px;
  display: flex;
  flex-direction: column;
}

.sw-right {
  min-height: 0px;
  overflow-y: auto;
  padding: 0.2rem 0.12rem 0.1rem 0px;
  scrollbar-width: thin;
  scrollbar-color: rgba(22, 27, 26, 0.55) transparent;
}

.sw-loading {
  margin: 1rem 0px;
  text-align: center;
  color: var(--sw-ink);
  font-weight: 700;
}

.sw-detail {
  flex: 1 1 auto;
  min-height: 0px;
  display: flex;
  flex-direction: column;
  gap: 0.14rem;
  animation: sw-in 160ms var(--ease-out) backwards;
}

.sw-hero {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.08rem;
}

.sw-hero__box {
  position: relative;
  display: grid;
  place-items: center;
  width: min(3.3rem, 80%);
  height: max(2.1rem, 96px);
  background: rgba(30, 36, 35, 0.78);
  box-shadow: rgba(0, 0, 0, 0.3) 0px 0.06rem 0.2rem;
}

.sw-hero__box.is-art {
  width: max(2.1rem, 96px);
}

.sw-hero__c {
  position: absolute;
  width: 0.26rem;
  height: 0.26rem;
  border: 2px solid rgba(240, 244, 243, 0.75);
}

.sw-hero__c--tl {
  left: -5px;
  top: -5px;
  border-right: 0px;
  border-bottom: 0px;
}

.sw-hero__c--br {
  right: -5px;
  bottom: -5px;
  border-left: 0px;
  border-top: 0px;
}

.sw-hero__img {
  display: grid;
  place-items: center;
  width: max(1.5rem, 70px);
  height: max(1.5rem, 70px);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.02) 66%, transparent 70%);
  box-shadow: rgba(255, 255, 255, 0.08) 0px 0px 0px 1px;
}

.sw-hero__img img {
  width: 82%;
  height: 82%;
  object-fit: contain;
  filter: drop-shadow(rgba(255, 255, 255, 0.25) 0px 0px 0.08rem);
}

.sw-hero__box.is-art .sw-hero__img {
  width: 88%;
  height: 88%;
  border-radius: 0px;
  background: none;
  box-shadow: none;
}

.sw-hero__box.is-art .sw-hero__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: none;
}

.sw-hero__txt {
  font-size: max(calc(.6 * var(--t)), 28px);
  font-weight: 900;
  color: rgba(255, 255, 255, 0.7);
}

.sw-hero__box > .sw-hero__img > .icon, .sw-hero__img > svg {
  width: 50%;
  height: 50%;
  color: rgba(255, 255, 255, 0.7);
}

.sw-hero__name {
  margin: 0.04rem 0px 0px;
  font-size: max(calc(.34 * var(--t)), 17px);
  font-weight: 900;
  letter-spacing: 0.06em;
  text-shadow: rgba(0, 0, 0, 0.55) 0px 1px 0.08rem;
}

.sw-hero__sub {
  font-size: max(calc(.16 * var(--t)), 11px);
  color: rgb(196, 204, 202);
}

.sw-facts {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.1rem;
}

.sw-pill {
  display: inline-flex;
  align-items: baseline;
  gap: 0.1rem;
  padding: 0.04rem 0.2rem;
  font-size: max(calc(.19 * var(--t)), 12px);
  color: rgb(223, 229, 227);
  background: rgba(24, 29, 28, 0.86);
  border-radius: 999px;
  box-shadow: rgba(0, 0, 0, 0.3) 0px 0.03rem 0.08rem;
}

.sw-pill b {
  font-size: max(calc(.26 * var(--t)), 15px);
  color: var(--mint-400);
}

.sw-pill--ghost {
  background: rgba(24, 29, 28, 0.55);
}

.sw-pill--ghost b {
  font-size: max(calc(.2 * var(--t)), 12px);
  color: rgb(238, 242, 241);
}

.sw-kind {
  margin-left: auto;
  font-size: max(calc(.15 * var(--t)), 10px);
  letter-spacing: 0.1em;
  color: rgba(240, 244, 243, 0.7);
}

.sw-text {
  flex: 1 1 auto;
  min-height: max(0.8rem, 40px);
  overflow-y: auto;
  padding-right: 0.1rem;
  font-size: max(calc(.2 * var(--t)), 12px);
  line-height: 1.55;
  color: rgb(244, 247, 246);
  text-shadow: rgba(0, 0, 0, 0.55) 0px 1px 2px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
}

.sw-text p {
  margin: 0px;
}

.sw-text .rt span, .sw-cd__desc span, .sw-cd__abil .rt span {
  font-size: inherit;
}

.sw-text__h {
  margin: 0px 0px 0.04rem;
  font-size: max(calc(.21 * var(--t)), 13px);
  color: var(--mint-300, #8ff0d2);
}

.sw-text__bonds {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.08rem;
  font-size: max(calc(.16 * var(--t)), 11px);
  color: rgb(199, 207, 205);
  margin-top: 0.12rem !important;
}

.sw-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.05rem;
  padding: 0.02rem 0.1rem 0.02rem 0.05rem;
  font-size: max(calc(.16 * var(--t)), 11px);
  color: rgb(238, 242, 241);
  background: rgba(24, 29, 28, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.12);
  text-shadow: none;
}

.sw-chip img {
  width: max(0.22rem, 14px);
  height: max(0.22rem, 14px);
  object-fit: contain;
}

.sw-box {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.1rem 0.14rem 0.14rem;
  background: var(--sw-panel);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: rgba(0, 0, 0, 0.3) 0px 0.05rem 0.2rem;
}

.sw-box__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.12rem;
  min-height: max(0.4rem, 26px);
}

.sw-box__k {
  display: inline-flex;
  align-items: center;
  gap: 0.08rem;
  font-size: max(calc(.2 * var(--t)), 12px);
  font-weight: 800;
}

.sw-box__k .icon {
  width: max(0.22rem, 14px);
  height: max(0.22rem, 14px);
  color: rgb(199, 207, 205);
}

.sw-box__k small {
  margin-left: 0.04rem;
  font-size: max(calc(.15 * var(--t)), 10px);
  color: var(--text-lo);
}

.sw-box__note {
  min-width: 0px;
  font-size: max(calc(.15 * var(--t)), 10px);
  color: rgb(170, 180, 177);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sw-box__swap {
  margin-right: 0.06rem;
  color: rgb(223, 229, 227);
}

.sw-look {
  display: inline-flex;
  align-items: center;
  gap: 0.06rem;
  height: max(0.4rem, 26px);
  padding: 0px 0.18rem;
  font-style: inherit;
  font-variant: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.18 * var(--t)), 12px);
  font-weight: 700;
  color: rgb(238, 242, 241);
  background: rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  cursor: pointer;
}

.sw-look:hover {
  border-color: var(--mint-500);
  color: var(--mint-300, #8ff0d2);
}

.sw-look .icon {
  width: max(0.2rem, 12px);
  height: max(0.2rem, 12px);
}

.sw-ops {
  display: grid;
  grid-template-columns: repeat(5, minmax(0px, 1fr));
  gap: 0.1rem;
}

.sw-op {
  --tc: var(--tier-1);
  position: relative;
  aspect-ratio: 1 / 1;
  padding: 0px;
  overflow: hidden;
  cursor: pointer;
  background: linear-gradient(rgb(215, 220, 218), rgb(169, 177, 174));
  border: 1px solid rgba(255, 255, 255, 0.5);
}

.sw-op--t2 {
  --tc: var(--tier-2);
}

.sw-op--t3 {
  --tc: var(--tier-3);
}

.sw-op--t4 {
  --tc: var(--tier-4);
}

.sw-op--t5 {
  --tc: var(--tier-5);
}

.sw-op--t6 {
  --tc: var(--tier-6);
}

.sw-op:hover {
  border-color: var(--mint-400);
}

.sw-op img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sw-op__txt {
  display: grid;
  place-items: center;
  height: 100%;
  font-weight: 900;
  color: rgba(17, 22, 20, 0.5);
}

.sw-op__tier {
  position: absolute;
  left: 2px;
  bottom: 2px;
  min-width: max(0.26rem, 16px);
  padding: 0px 0.03rem;
  font-family: var(--font-num);
  font-size: max(calc(.15 * var(--t)), 10px);
  font-weight: 900;
  line-height: max(0.24rem, 15px);
  text-align: center;
  color: var(--tc);
  background: rgba(10, 12, 12, 0.85);
  border: 1px solid var(--tc);
}

.sw-op__sub {
  position: absolute;
  right: 0px;
  top: 0px;
  padding: 0px 0.04rem;
  font-size: max(calc(.12 * var(--t)), 9px);
  font-weight: 800;
  color: rgb(26, 26, 26);
  background: var(--amber, #f2b544);
}

.sw-op.is-standin img {
  filter: saturate(0.55);
}

.sw-ethumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.08rem;
}

.sw-ethumbs--grid {
  max-height: max(1.9rem, 96px);
  overflow-y: auto;
  scrollbar-width: thin;
}

.sw-ethumbs__sep {
  padding: 0px 0.04rem 0px 0.08rem;
  font-size: max(calc(.14 * var(--t)), 10px);
  color: rgb(170, 180, 177);
  border-left: 1px solid rgba(255, 255, 255, 0.18);
}

.sw-eth {
  position: relative;
  display: block;
  flex: 0 0 auto;
  padding: 0px;
  overflow: hidden;
  background: rgb(58, 63, 62);
  border: 1px solid rgba(255, 255, 255, 0.28);
}

button.sw-eth {
  cursor: pointer;
}

button.sw-eth:hover {
  border-color: rgb(255, 255, 255);
}

.sw-eth--sm {
  width: max(0.74rem, 40px);
  height: max(0.74rem, 40px);
}

.sw-eth--md {
  width: 100%;
  aspect-ratio: 1 / 1;
}

.sw-eth img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sw-eth > .icon {
  width: 60%;
  height: 60%;
  margin: 20%;
  color: rgba(255, 255, 255, 0.4);
}

.sw-eth__no {
  position: absolute;
  left: 0px;
  top: 0px;
  padding: 0px 0.05rem;
  font-family: var(--font-num);
  font-size: max(calc(.13 * var(--t)), 9px);
  line-height: 1.25;
  color: rgb(255, 255, 255);
  background: rgba(0, 0, 0, 0.78);
}

.sw-eth.is-elite {
  border-color: rgba(242, 181, 68, 0.7);
}

.sw-eth.is-boss {
  border-color: rgba(255, 120, 90, 0.8);
}

.sw-eth.is-on {
  border-color: rgb(255, 255, 255);
  box-shadow: rgb(255, 255, 255) 0px 0px 0px 2px, rgba(255, 255, 255, 0.6) 0px 0px 0.14rem;
}

.sw-sec {
  position: relative;
  margin: 0.26rem 0px 0.3rem;
  padding-bottom: 0.2rem;
  background: linear-gradient(rgba(24, 29, 28, 0.74), rgba(24, 29, 28, 0.74)) center top / 100% max(0.62rem, 34px) no-repeat, rgba(225, 232, 231, 0.16);
  box-shadow: rgba(0, 0, 0, 0.14) 0px 0.04rem 0.16rem;
}

.sw-sec__head {
  position: relative;
  display: grid;
  place-items: center;
  height: max(0.62rem, 34px);
}

.sw-sec__glyph {
  position: absolute;
  left: 50%;
  top: 0px;
  transform: translate(-50%, -62%);
  display: grid;
  place-items: center;
  width: max(0.38rem, 22px);
  height: max(0.38rem, 22px);
  color: var(--sw-ink);
  background: linear-gradient(rgb(242, 245, 244), rgb(197, 205, 203));
  box-shadow: rgba(0, 0, 0, 0.35) 0px 0.02rem 0.08rem;
}

.sw-sec__glyph .icon {
  width: 64%;
  height: 64%;
}

.sw-sec__name {
  display: inline-flex;
  align-items: center;
  gap: 0.14rem;
  font-size: max(calc(.25 * var(--t)), 14px);
  font-weight: 800;
  letter-spacing: 0.1em;
  color: rgb(241, 244, 243);
}

.sw-sec__name i {
  font-style: normal;
  font-weight: 300;
  font-size: 1.3em;
  color: rgba(241, 244, 243, 0.6);
}

.sw-sec__name small {
  font-size: 0.6em;
  font-weight: 600;
  letter-spacing: 0px;
  color: rgba(241, 244, 243, 0.5);
}

.sw-sec__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0px, 1fr));
  gap: 0.16rem;
  padding: 0.2rem 0.18rem 0px;
}

.sw-tile {
  position: relative;
  aspect-ratio: 1 / 1;
  padding: 0px;
  overflow: visible;
  font: inherit;
  color: rgb(238, 242, 241);
  cursor: pointer;
  background: linear-gradient(160deg, var(--sw-tile), var(--sw-tile-2));
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 3px;
  box-shadow: rgba(0, 0, 0, 0.35) 0px 0.04rem 0.12rem, rgba(255, 255, 255, 0.06) 0px 1px 0px inset;
  transition: transform var(--t-fast), box-shadow var(--t-fast);
}

.sw-tile:hover {
  transform: translateY(-2px);
  box-shadow: rgba(0, 0, 0, 0.4) 0px 0.08rem 0.18rem, rgba(255, 255, 255, 0.08) 0px 1px 0px inset;
}

.sw-tile.is-on {
  outline: rgb(245, 248, 247) solid 2px;
  outline-offset: 0.05rem;
  box-shadow: rgba(255, 255, 255, 0.55) 0px 0px 0.2rem, rgba(255, 255, 255, 0.08) 0px 1px 0px inset;
}

.sw-tile__in {
  position: absolute;
  inset: 0px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: inherit;
}

.sw-tile__cap {
  position: absolute;
  left: 0px;
  right: 0px;
  bottom: 0px;
  padding: 0.02rem 0.06rem 0.04rem;
  font-size: max(calc(.13 * var(--t)), 9px);
  line-height: 1.2;
  text-align: center;
  color: rgba(238, 242, 241, 0.78);
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.5));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sw-tile__hp {
  position: absolute;
  right: 3px;
  top: 3px;
  padding: 0px 0.05rem;
  font-size: max(calc(.13 * var(--t)), 9px);
  font-weight: 800;
  line-height: 1.35;
  color: var(--mint-400);
  background: rgba(0, 0, 0, 0.6);
}

.sw-disc {
  display: grid;
  place-items: center;
  width: 64%;
  aspect-ratio: 1 / 1;
  margin-bottom: 10%;
  border-radius: 50%;
  background: radial-gradient(circle, rgb(246, 250, 249) 0px, rgb(246, 250, 249) 42%, rgb(211, 221, 219) 64%, rgb(159, 177, 174) 100%);
  box-shadow: rgba(220, 240, 236, 0.45) 0px 0px 0.16rem, rgba(0, 0, 0, 0.25) 0px 0px 0.06rem inset;
}

.sw-disc img {
  width: 70%;
  height: 70%;
  object-fit: contain;
  filter: brightness(0);
  opacity: 0.82;
}

.sw-disc__txt {
  font-size: max(calc(.3 * var(--t)), 15px);
  font-weight: 900;
  color: var(--sw-ink);
}

.sw-face {
  display: grid;
  place-items: center;
  width: 92%;
  aspect-ratio: 1 / 1;
  margin-bottom: 4%;
  overflow: hidden;
}

.sw-face img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sw-face__txt {
  font-size: max(calc(.3 * var(--t)), 15px);
  font-weight: 900;
}

.sw-art {
  display: block;
  width: 84%;
  aspect-ratio: 1 / 1;
  margin-bottom: 8%;
  overflow: hidden;
  box-shadow: rgba(255, 255, 255, 0.14) 0px 0px 0px 1px;
}

.sw-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sw-glyph {
  display: grid;
  place-items: center;
  width: 72%;
  aspect-ratio: 1 / 1;
  margin-bottom: 8%;
}

.sw-glyph img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(rgba(255, 255, 255, 0.55) 0px 0px 0.08rem);
}

.sw-glyph .icon {
  width: 70%;
  height: 70%;
}

.sw-allcodex {
  display: flex;
  align-items: center;
  gap: 0.16rem;
  width: 100%;
  margin: 0px 0px 0.1rem;
  padding: 0.14rem 0.22rem;
  font: inherit;
  text-align: left;
  color: rgb(238, 242, 241);
  cursor: pointer;
  background: linear-gradient(90deg, rgba(24, 29, 28, 0.86), rgba(24, 29, 28, 0.62));
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.sw-allcodex:hover {
  border-color: var(--mint-500);
}

.sw-allcodex > .icon {
  width: max(0.36rem, 20px);
  height: max(0.36rem, 20px);
  color: rgb(199, 207, 205);
  flex: 0 0 auto;
}

.sw-allcodex > .icon:last-child {
  margin-left: auto;
  width: max(0.26rem, 16px);
}

.sw-allcodex span {
  display: flex;
  flex-direction: column;
}

.sw-allcodex b {
  font-size: max(calc(.22 * var(--t)), 13px);
}

.sw-allcodex small {
  font-size: max(calc(.15 * var(--t)), 10px);
  color: rgb(170, 180, 177);
}

.sw-codex {
  position: absolute;
  inset: 0px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  padding: var(--sa-t, 0px) var(--sa-r, 0px) var(--sa-b, 0px) var(--sa-l, 0px);
  background: rgba(14, 17, 17, 0.88);
  backdrop-filter: blur(8px);
  animation: sw-in 160ms var(--ease-out) backwards;
}

.sw-codex__top {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0.14rem;
  height: max(1rem, 50px);
  padding: 0px 0.34rem 0px 0.26rem;
}

.sw-codex__top .sw-back {
  padding-right: 0.12rem;
}

.sw-codex__title {
  font-size: max(calc(.26 * var(--t)), 14px);
  font-weight: 900;
  letter-spacing: 0.1em;
}

.sw-scope {
  display: inline-flex;
  align-items: center;
  gap: 0.06rem;
  height: max(0.42rem, 26px);
  padding: 0px 0.12rem 0px 0.16rem;
  font-style: inherit;
  font-variant: inherit;
  font-weight: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.16 * var(--t)), 11px);
  color: rgb(238, 242, 241);
  background: rgba(78, 216, 175, 0.14);
  border: 1px solid var(--mint-700);
  border-radius: 999px;
  cursor: pointer;
  white-space: nowrap;
}

.sw-scope .icon {
  width: max(0.16rem, 10px);
  height: max(0.16rem, 10px);
}

.sw-search {
  display: inline-flex;
  align-items: center;
  gap: 0.06rem;
  margin-left: auto;
  height: max(0.46rem, 28px);
  padding: 0px 0.12rem;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.sw-search .icon {
  width: max(0.2rem, 12px);
  height: max(0.2rem, 12px);
  color: rgb(170, 180, 177);
}

.sw-search input {
  width: max(1.9rem, 110px);
  font-style: inherit;
  font-variant: inherit;
  font-weight: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.17 * var(--t)), 12px);
  color: rgb(238, 242, 241);
  background: none;
  border: 0px;
  outline: none;
}

.sw-codex__body {
  flex: 1 1 auto;
  min-height: 0px;
  display: grid;
  grid-template-columns: minmax(0px, 1fr) minmax(0px, 1.08fr);
  gap: 0.3rem;
  padding: 0px 0.34rem 0.26rem 0.3rem;
}

.sw-codex__list {
  min-height: 0px;
  overflow-y: auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(max(1.3rem, 64px), 1fr));
  align-content: start;
  gap: 0.14rem;
  grid-auto-rows: max-content;
  padding: 0.06rem 0.16rem 0.06rem 0.06rem;
  border-right: 2px solid rgba(255, 255, 255, 0.5);
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.25) transparent;
}

.sw-codex__list .sw-eth__no {
  font-size: max(calc(.16 * var(--t)), 10px);
}

.sw-codex__empty {
  grid-column: 1 / -1;
  margin: 0.6rem 0px;
  text-align: center;
  color: var(--text-lo);
}

.sw-codex__side {
  min-height: 0px;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}

.sw-ranks {
  flex: 0 0 auto;
  display: flex;
  align-items: stretch;
  height: max(0.6rem, 34px);
  background: rgb(12, 15, 15);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.sw-ranks__n {
  display: grid;
  place-items: center;
  min-width: max(0.8rem, 42px);
  font-size: max(calc(.2 * var(--t)), 12px);
  font-weight: 800;
  color: rgb(76, 195, 238);
  border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.sw-ranks button {
  flex: 1 1 0px;
  font-style: inherit;
  font-variant: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.2 * var(--t)), 12px);
  font-weight: 700;
  color: rgb(141, 151, 148);
  background: none;
  border: 0px;
  cursor: pointer;
}

.sw-ranks button:hover:not(:disabled):not(.is-on) {
  color: rgb(238, 242, 241);
}

.sw-ranks button.is-on {
  color: rgb(255, 255, 255);
  background: rgb(29, 111, 143);
}

.sw-ranks button:disabled {
  opacity: 0.35;
  cursor: default;
}

.sw-cd {
  min-height: 0px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  padding-right: 0.08rem;
  animation: sw-in 140ms var(--ease-out) backwards;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.25) transparent;
}

.sw-cd__head {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.02rem;
  min-height: max(1.1rem, 60px);
}

.sw-cd__cat, .sw-cd__way {
  font-size: max(calc(.19 * var(--t)), 12px);
  color: rgb(143, 154, 151);
}

.sw-cd__name {
  display: flex;
  align-items: center;
  gap: 0.12rem;
  margin: 0px;
  padding-right: 1.4rem;
  font-size: max(calc(.36 * var(--t)), 18px);
  font-weight: 900;
  line-height: 1.2;
}

.sw-cd__no {
  padding: 0.02rem 0.12rem;
  font-family: var(--font-num);
  font-size: max(calc(.2 * var(--t)), 12px);
  font-weight: 700;
  color: rgb(255, 255, 255);
  background: rgb(0, 0, 0);
  border: 1px solid rgba(255, 255, 255, 0.18);
}

.sw-cd__lp {
  position: absolute;
  right: 0.06rem;
  top: 0.5rem;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 0.04rem;
  color: rgb(255, 91, 91);
}

.sw-cd__lp .icon {
  width: max(0.3rem, 18px);
  height: max(0.3rem, 18px);
  color: rgb(241, 244, 243);
}

.sw-cd__lp b {
  font-size: max(calc(.3 * var(--t)), 17px);
}

.sw-cd__mark {
  position: absolute;
  right: 0.3rem;
  top: -0.04rem;
  width: max(1.3rem, 64px);
  height: max(1.3rem, 64px);
  opacity: 0.14;
  pointer-events: none;
}

.sw-cd__mark img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.sw-cd__main {
  display: grid;
  grid-template-columns: max(1.6rem, 80px) minmax(0px, 1fr);
  gap: 0.16rem;
  align-items: start;
}

.sw-cd__art {
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
}

.sw-cd__img {
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: rgb(58, 63, 62);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.sw-cd__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sw-cd__img > .icon {
  width: 60%;
  height: 60%;
  margin: 20%;
  color: rgba(255, 255, 255, 0.4);
}

.sw-cd__mass {
  display: flex;
  align-items: center;
  gap: 0.06rem;
  padding: 0.03rem 0.1rem;
  font-size: max(calc(.16 * var(--t)), 10px);
  color: rgb(199, 207, 205);
  background: rgba(0, 0, 0, 0.55);
}

.sw-cd__mass .icon {
  width: max(0.18rem, 11px);
  height: max(0.18rem, 11px);
}

.sw-cd__mass b {
  margin-left: auto;
  font-size: max(calc(.26 * var(--t)), 14px);
  color: rgb(238, 242, 241);
}

.sw-cd__stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0px, 1fr));
  gap: 0.08rem 0.1rem;
}

.sw-stat {
  display: grid;
  grid-template-columns: minmax(0px, 1fr) auto auto;
  align-items: center;
  gap: 0.08rem;
  min-height: max(0.46rem, 28px);
  padding: 0px 0.12rem;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 2px;
}

.sw-stat__k {
  display: inline-flex;
  align-items: center;
  gap: 0.06rem;
  min-width: 0px;
  font-size: max(calc(.17 * var(--t)), 11px);
  color: rgb(185, 194, 191);
  white-space: nowrap;
  overflow: hidden;
}

.sw-stat__k .icon {
  flex: 0 0 auto;
  width: max(0.18rem, 11px);
  height: max(0.18rem, 11px);
  color: rgb(238, 242, 241);
}

.sw-stat__v {
  font-size: max(calc(.13 * var(--t)), 9px);
  color: rgb(127, 138, 135);
}

.sw-stat__g {
  min-width: max(0.36rem, 20px);
  text-align: right;
  font-family: var(--font-display);
  font-size: max(calc(.28 * var(--t)), 15px);
  font-weight: 800;
  color: rgb(238, 242, 241);
}

.sw-stat__g.g-S {
  color: rgb(255, 207, 90);
}

.sw-stat__g.g-Ap, .sw-stat__g.g-A {
  color: rgb(255, 154, 92);
}

.sw-stat__g.g-C, .sw-stat__g.g-D {
  color: rgb(185, 194, 191);
}

.sw-stat__g.g-E, .sw-stat__g.g-none {
  color: rgb(111, 122, 119);
}

.sw-cd__desc {
  margin: 0px;
  font-size: max(calc(.19 * var(--t)), 12px);
  font-style: italic;
  line-height: 1.55;
  color: rgb(174, 183, 180);
}

.sw-cd__types {
  display: flex;
  flex-wrap: wrap;
  gap: 0.08rem;
  margin: 0px;
}

.sw-cd__h {
  margin: 0.04rem 0px 0px;
  padding: 0.06rem 0.14rem;
  font-size: max(calc(.2 * var(--t)), 12px);
  font-weight: 800;
  background: rgba(255, 255, 255, 0.08);
}

.sw-cd__abil {
  margin: 0px;
  padding: 0px 0.1rem 0px 0.3rem;
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  font-size: max(calc(.18 * var(--t)), 12px);
  line-height: 1.5;
  color: rgb(228, 233, 231);
}

@media (max-height: 520px) {
  .sw-top, .sw-codex__top {
    height: 44px;
  }

  .sw-body {
    gap: 0.3rem;
    padding-bottom: 0.16rem;
  }

  .sw-left {
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
  }

  .sw-detail {
    flex: 0 0 auto;
  }

  .sw-text {
    flex: 0 0 auto;
    overflow: visible;
    min-height: 0px;
  }

  .sw-hero__box {
    height: 64px;
  }

  .sw-hero__box.is-art {
    width: 64px;
  }

  .sw-hero__img {
    width: 50px;
    height: 50px;
  }

  .sw-hero__name {
    font-size: 15px;
  }

  .sw-sec__grid {
    gap: 8px;
    padding: 10px 10px 0px;
  }

  .sw-tile__cap {
    display: none;
  }

  .sw-ops {
    grid-template-columns: repeat(auto-fill, minmax(38px, 1fr));
  }

  .sw-cd__name {
    font-size: 16px;
  }

  .lobby-hub {
    --hub-entry-w: max(2.1rem, 32px, calc(128px * var(--sp-ui, 1)));
  }

  .hub-stage {
    grid-template-columns: minmax(0, 1fr) minmax(0, calc(var(--hub-entry-w) * 2 + var(--hub-gap)));
    grid-template-areas: "center right" "entries entries";
    gap: 0.14rem 0.3rem;
    padding: 0.1rem 0.4rem 0.24rem;
  }

  .hub-center {
    grid-column: 1;
  }

  .hub-side, .hub-radar {
    display: none;
  }

  .hub-center__mark {
    min-height: 0px;
    margin-bottom: 0px;
  }

  .hub-center__logo {
    width: 0.9rem;
  }

  .hub-center__mark .emblem__svg {
    width: 0.9rem;
    height: 1rem;
  }

  .hub-center__title {
    max-width: none;
    font-size: calc(.46 * var(--t));
  }

  .hub-right {
    padding-top: 0.1rem;
  }

  .lobby-hub .hub-plate {
    min-height: max(.7rem, 32px, calc(40px * var(--sp-ui, 1)));
  }

  .lobby-hub .hub-plate--ach {
    display: flex;
  }

  .hub-entry {
    min-height: max(1.1rem, 32px, calc(64px * var(--sp-ui, 1)));
    padding: 0.1rem 0.14rem;
  }

  .hub-entry__icon .icon {
    width: 0.42rem;
    height: 0.42rem;
  }

  .proto-top {
    padding-top: 8px;
  }

  .proto-body {
    grid-template-columns: minmax(0, 1fr) min(calc(7.4rem / var(--sp-ui, 1)), 50vw);
    gap: 10px;
    padding-bottom: 10px;
  }

  .ally-body {
    grid-template-columns: minmax(0, 1fr) min(calc(7.4rem / var(--sp-ui, 1)), 54vw);
  }

  .proto__pic {
    inset: 0px 0px 1.6rem;
  }

  .proto-brief {
    max-width: min(calc(6.4rem / var(--sp-ui, 1)), 100%);
    padding: 6px 10px 7px;
  }

  .proto-brief p {
    margin-top: 2px;
    font-size: clamp(11px, calc(.26 * var(--t)), 13px);
    line-height: 1.35;
  }

  .proto-list {
    gap: 6px;
    padding-left: 22px;
    justify-content: flex-start;
  }

  .pcard {
    padding: 6px 10px;
    gap: 2px;
    border-radius: 10px;
  }

  .pcard.is-on {
    transform: translateX(-16px);
  }

  .pcard__desc, .pcard__effects, .pcard__meta {
    display: none;
  }

  .pcard__head {
    min-width: 0px;
  }

  .pcard__glyph {
    flex: 0 0 auto;
  }

  .pcard__name {
    min-width: 0px;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
  }

  .pcard.is-on .pcard__head {
    padding-right: 46px;
  }

  .pcard.is-on .pcard__stamp {
    right: 6px;
    width: 40px;
    height: 34px;
  }

  .pcard.is-on .pcard__tick {
    width: 22px;
    height: 22px;
  }

  .pcard__ok {
    display: none;
  }

  .proto-foot {
    padding-left: 22px;
  }

  .proto-hint {
    display: none;
  }

  .proto-start {
    height: auto;
    min-height: 44px;
    gap: 10px;
    padding: 3px 0px 3px 10px;
  }

  .proto-start__label {
    letter-spacing: 0.02em;
  }

  .ally-side {
    gap: 8px;
    margin: -4px -4px -4px 0px;
    padding: 4px 4px 4px 10px;
    overflow: hidden auto;
    overscroll-behavior: contain;
  }

  .ally-card__art {
    display: none;
  }

  .ally-key {
    margin: 6px 10px;
  }

  .ally-recent {
    margin: 0px 10px 6px;
  }

  .mf-radar {
    inset: 0px 0px 0.6rem;
    height: calc(100% - 0.6rem);
  }

  .hub-center__en {
    font-size: calc(.24 * var(--t));
  }

  .lobby-hub .hub-plate {
    font-size: min(calc(.3 * var(--t)), calc(18px + var(--t-step)));
  }

  .hub-plate__tag {
    display: none;
  }

  .hub-entry__group {
    height: auto;
    font-size: calc(.22 * var(--t));
  }

  .hub-entry__long {
    display: none;
  }

  .hub-entry__short {
    display: inline;
  }

  .hub-entry {
    width: calc(var(--hub-entry-w) + 7 * max(0px, var(--t-step)));
  }

  .hub-entry__en {
    padding-right: 0.44rem;
    font-size: min(calc(.16 * var(--t)), calc(10px + var(--t-step)));
    letter-spacing: 0.12em;
  }

  .hub-entry__name {
    font-size: min(calc(.42 * var(--t)), calc(18px + var(--t-step)));
  }

  .proto-title .modal__title {
    font-size: min(calc(.46 * var(--t)), 24px);
    white-space: nowrap;
  }

  .proto-title__mode, .proto-title__mode i {
    font-size: min(calc(.24 * var(--t)), 16px);
  }

  .proto-title__mode {
    flex-wrap: wrap;
    justify-content: flex-end;
    row-gap: 0px;
    white-space: nowrap;
  }

  .proto-title__mode i {
    font-size: min(calc(.24 * var(--t)), 15px);
  }

  .proto-brief__code {
    font-size: min(calc(.22 * var(--t)), 14px);
  }

  .proto-brief__name {
    font-size: min(calc(.34 * var(--t)), 20px);
  }

  .pcard__name {
    font-size: clamp(16px, calc(.4 * var(--t)), 20px);
  }

  .proto-foot .proto-start__label {
    font-size: min(calc(.5 * var(--t)), 20px);
  }

  .proto-foot .proto-start__rook {
    font-size: min(calc(.36 * var(--t)), 16px);
  }

  .proto-foot .proto-start__mark small {
    font-size: min(calc(.08 * var(--t)), 6px);
  }

  .ally-card__bar {
    font-size: clamp(16px, calc(.3 * var(--t)), 26px);
  }

  .ally-card--create .ally-card__bar {
    display: grid;
    grid-template-columns: auto minmax(0px, 1fr);
    align-content: center;
    row-gap: 1px;
    height: auto;
    min-height: max(.74rem, 32px, calc(42px * var(--sp-ui, 1)));
    padding-top: 5px;
    padding-bottom: 5px;
  }

  .ally-card--create .ally-card__name {
    min-width: 0px;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.2;
  }

  .ally-card--create .ally-card__bar small {
    grid-column: 2;
    margin-left: 0px;
    overflow: visible;
    white-space: normal;
    text-align: left;
    font-size: clamp(11px, calc(.28 * var(--t)), 14px);
    line-height: 1.3;
  }

  .ally-key input {
    font-size: calc(.32 * var(--t));
  }

  .ally-key input::placeholder {
    font-size: clamp(11px, calc(.26 * var(--t)), 13px);
  }

  .ally-key input:placeholder-shown {
    font-size: clamp(11px, calc(.26 * var(--t)), 13px);
  }

  .ally-key__spec {
    font-size: min(calc(.26 * var(--t)), 14px);
  }

  .ally-recent {
    font-size: min(calc(.24 * var(--t)), 14px);
    line-height: 1.35;
  }

  .code-chip {
    font-size: calc(.28 * var(--t));
  }

  .ally-guide {
    font-size: calc(.3 * var(--t));
  }
}

@media (max-aspect-ratio: 1 / 1) {
  .sw-body {
    grid-template-columns: minmax(0px, 1fr);
    grid-template-rows: auto minmax(0px, 1fr);
    gap: 0.2rem;
  }

  .sw-left {
    max-height: 48vh;
  }

  .sw-tabs .sw-tab {
    min-width: 0px;
  }

  .sw-codex__body {
    grid-template-columns: minmax(0px, 1fr);
    grid-template-rows: minmax(0px, 0.8fr) minmax(0px, 1.2fr);
  }

  .sw-codex__list {
    border-right: 0px;
    border-bottom: 2px solid rgba(255, 255, 255, 0.5);
  }

  .proto-body {
    grid-template-columns: minmax(0px, 1fr);
    grid-template-rows: minmax(0px, 0.7fr) minmax(0px, 1.3fr);
  }

  .ally-body {
    grid-template-rows: minmax(0px, 0.5fr) minmax(0px, 1.5fr);
  }

  .proto__pic {
    inset: 0px 0px 0.9rem;
  }

  .proto-foot {
    padding-left: 0.1rem;
  }

  .ally-side {
    padding-left: 0px;
  }

  .pcard__name {
    font-size: calc(.28 * var(--t));
  }

  .proto-foot .proto-start__label {
    font-size: calc(.4 * var(--t));
  }

  .proto-foot .proto-start__rook {
    font-size: calc(.36 * var(--t));
  }
}

@media (max-width: 640px) {
  .sw-back__mark {
    display: none;
  }

  .sw-tab {
    padding: 0px 0.12rem;
    font-size: 12px;
  }

  .sw-tab__icon {
    display: none;
  }

  .sw-sec__grid {
    grid-template-columns: repeat(4, minmax(0px, 1fr));
  }
}

@media (prefers-reduced-motion: reduce) {
  .sw, .sw-detail, .sw-codex, .sw-cd {
    animation: auto ease 0s 1 normal none running none;
  }

  .sw__mist {
    animation: auto ease 0s 1 normal none running none;
  }

  .sw-tile {
    transition: none;
  }

  .hub-bg__ship, .hub-center, .hub-entry-wrap, .hub-radar__sweep, .proto__pic, .modal__box.proto, .modal__box.ally, .pcard.is-on .pcard__stamp, .mf-radar__sweep, .mf-radar__blip, .mf-blk.is-lit, .hub-bg__own, .lobby-hub .hub-bg, .lobby-hub > .topbar, .lobby-hub .hub-center, .lobby-hub .hub-side, .lobby-hub .hub-right, .hub-entries .hub-entry-wrap, .proto__bg, .proto-top, .proto-title, .proto-stage, .ally-stage, .proto-list .pcard, .proto-foot, .ally-card--create, .ally-card--join, .ally-guide, .pcard.is-on .pcard__ring path, .ps, .ps-fig, .ps-spike, .ps-call, .ps-beacon, .ps-scan {
    animation: auto ease 0s 1 normal none running none;
  }

  .ps-cable__pulse {
    display: none;
  }

  .pcard.is-on .pcard__ring path {
    stroke-dashoffset: 0;
  }

  .proto__body::after, .ally__body::after {
    display: none;
  }
}

.proto {
  position: fixed;
  inset: 0px;
  z-index: 54;
  display: flex;
  flex-direction: column;
  padding: var(--sa-t, 0px) var(--sa-r, 0px) var(--sa-b, 0px) var(--sa-l, 0px);
  color: rgb(238, 240, 239);
  background: rgb(11, 12, 12);
  overscroll-behavior: contain;
  animation: sw-in 200ms var(--ease-out) backwards;
}

.proto__bg {
  position: absolute;
  inset: 0px;
  pointer-events: none;
  transition: background 400ms;
  background: radial-gradient(46% 60% at 30% 52%, color-mix(in srgb, var(--d-color) 16%, transparent), transparent 70%),
    radial-gradient(40% 50% at 100% 50%, color-mix(in srgb, var(--d-color) 10%, transparent), transparent 70%),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, .022) 0 1px, transparent 1px 4px),
    linear-gradient(rgba(255, 255, 255, .03) 1px, transparent 1px) 0 0 / 1.1rem 1.1rem,
    linear-gradient(90deg, rgba(255, 255, 255, .03) 1px, transparent 1px) 0 0 / 1.1rem 1.1rem,
    radial-gradient(120% 90% at 50% 40%, #151616, #070808);
}

.proto > :where(:not(.proto__bg)) {
  position: relative;
}

.proto-top {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.18rem 0.34rem 0px 0.22rem;
  z-index: 2;
  gap: 0.2rem;
}

.proto-back {
  display: inline-flex;
  align-items: center;
  height: max(0.62rem, 36px);
  padding: 0px;
  font: inherit;
  color: rgb(242, 244, 243);
  cursor: pointer;
  background: linear-gradient(rgb(43, 44, 45), rgb(27, 28, 29));
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: rgba(0, 0, 0, 0.5) 0px 0.04rem 0.14rem;
}

.proto-back > .icon {
  width: max(0.4rem, 22px);
  height: max(0.4rem, 22px);
  margin: 0px 0.3rem 0px 0.14rem;
}

.proto-back__home {
  display: grid;
  place-items: center;
  align-self: stretch;
  width: max(2rem, 96px);
  border-left: 2px solid rgb(13, 14, 14);
  background: radial-gradient(circle, rgba(255, 255, 255, 0.22) 1px, transparent 1.6px) 0px 0px / 0.14rem 0.14rem, linear-gradient(90deg, rgb(47, 49, 50), rgb(61, 63, 64) 50%, rgb(47, 49, 50));
}

.proto-back__home .icon {
  width: max(0.32rem, 18px);
  height: max(0.32rem, 18px);
}

.proto-back:hover {
  border-color: rgba(255, 255, 255, 0.35);
}

.proto-title {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.02rem;
  padding-top: 0.06rem;
  min-width: 0px;
  text-align: right;
}

.proto-title h2 {
  margin: 0px;
  font-size: max(calc(.36 * var(--t)), 18px);
  font-weight: 900;
  letter-spacing: 0.06em;
}

.proto-title__mode {
  display: inline-flex;
  align-items: baseline;
  gap: 0.1rem;
  font-size: max(calc(.16 * var(--t)), 11px);
  color: var(--d-color);
  font-weight: 700;
}

.proto-title__mode i {
  font-style: normal;
  font-family: var(--font-display);
  font-size: 0.8em;
  letter-spacing: 0.16em;
  color: rgb(139, 143, 142);
}

.proto-body {
  flex: 1 1 auto;
  min-height: 0px;
  display: grid;
  grid-template-columns: minmax(0px, 1fr) min(5.6rem, 46vw);
  gap: 0.3rem;
  padding: 0px 0.34rem 0.26rem 0.22rem;
}

.proto-stage {
  position: relative;
  min-width: 0px;
  min-height: 0px;
  display: grid;
  place-items: center;
}

.ps {
  position: absolute;
  inset: -0.4rem 0px 0.9rem;
  width: 100%;
  height: calc(100% - 0.5rem);
  color: var(--d-color);
  transition: color 400ms;
  overflow: visible;
  animation: 640ms ease-out 0s 1 normal backwards running ps-in;
}

.ps-grid line {
  stroke: currentcolor;
  stroke-opacity: 0.13;
  stroke-width: 1;
}

.ps-pad polygon {
  fill: currentcolor;
  fill-opacity: 0.1;
  stroke: currentcolor;
  stroke-opacity: 0.55;
  stroke-width: 1.2;
}

.ps-pad__edge {
  fill: none;
  stroke: currentcolor;
  stroke-opacity: 0.7;
  stroke-width: 2;
  stroke-dasharray: 26, 8;
}

.ps-hull {
  filter: drop-shadow(0 0 6px color-mix(in srgb, var(--d-color) 70%, transparent));
}

.ps-face {
  stroke: currentcolor;
  stroke-width: 1.3;
  stroke-linejoin: round;
  fill: currentcolor;
}

.ps-face--top {
  fill-opacity: 0.42;
}

.ps-face--front {
  fill-opacity: 0.26;
}

.ps-face--side {
  fill-opacity: 0.16;
}

.ps-seam {
  stroke: rgb(255, 255, 255);
  stroke-opacity: 0.35;
  stroke-width: 1;
}

.ps-beacon {
  fill: rgb(255, 255, 255);
  animation: 1.6s steps(2) 0s infinite normal none running ps-blink;
}

@keyframes ps-blink {
  50% {
    opacity: 0.2;
  }
}

.ps-cable {
  fill: none;
  stroke: currentcolor;
  stroke-width: 4;
  stroke-opacity: 0.75;
  stroke-linecap: round;
}

.ps-fig {
  animation-delay: calc(var(--i) * 18ms);
}

@keyframes ps-fig {
  0% {
    opacity: 0;
    transform: translateY(-6px);
  }
}

.ps-fig__body, .ps-fig__head {
  fill: currentcolor;
  fill-opacity: 0.88;
  stroke: rgba(0, 0, 0, 0.45);
  stroke-width: 0.8;
}

.ps-fig__head {
  fill-opacity: 1;
}

.ps-fig__shadow {
  fill: rgb(0, 0, 0);
  opacity: 0.35;
}

.ps-spike polygon {
  fill: currentcolor;
  fill-opacity: 0.75;
  filter: drop-shadow(0 0 4px var(--d-color));
}

.ps-spike__x {
  stroke: currentcolor;
  stroke-width: 2;
  stroke-opacity: 0.8;
}

.ps-spike {
  animation-delay: calc(var(--i) * 60ms + 120ms);
}

.ps-call rect {
  fill: rgba(0, 0, 0, 0.55);
  stroke: currentcolor;
  stroke-width: 1.5;
}

.ps-call line {
  stroke: currentcolor;
  stroke-width: 1.5;
  stroke-opacity: 0.8;
}

.ps-call__icon {
  fill-opacity: 0.25;
  fill: currentcolor !important;
}

.ps-call__man {
  fill: currentcolor;
}

.ps-call text {
  fill: currentcolor;
  font: 700 11px var(--font-num, monospace);
  letter-spacing: 2px;
}

.ps-scan {
  stroke: currentcolor;
  stroke-opacity: 0.22;
  stroke-width: 2;
  animation: 7s linear 0s infinite normal none running ps-scan;
}

@keyframes ps-scan {
  0% {
    transform: translateY(40px);
  }

  100% {
    transform: translateY(620px);
  }
}

.proto-brief {
  position: absolute;
  left: 0.1rem;
  bottom: 0.1rem;
  max-width: min(6rem, 92%);
  padding: 0.12rem 0.2rem 0.14rem;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.2));
  border-left: 3px solid var(--d-color);
}

.proto-brief__code {
  margin-right: 0.1rem;
  padding: 0px 0.08rem;
  font-size: max(calc(.14 * var(--t)), 10px);
  color: rgb(17, 17, 17);
  background: var(--d-color);
}

.proto-brief__name {
  font-size: max(calc(.24 * var(--t)), 14px);
  color: var(--d-color);
}

.proto-brief p {
  margin: 0.04rem 0px 0px;
  font-size: max(calc(.16 * var(--t)), 11px);
  line-height: 1.5;
  color: rgb(183, 188, 186);
}

.proto-fp {
  position: absolute;
  left: 0.1rem;
  top: 0.2rem;
  width: min(6.2rem, 96%);
  max-height: calc(100% - 1.6rem);
  overflow-y: auto;
  scrollbar-width: thin;
}

.proto-fp .firepower-brief {
  margin: 0px;
  background: rgba(8, 9, 9, 0.82);
}

.proto-side {
  min-height: 0px;
  display: flex;
  flex-direction: column;
  gap: 0.14rem;
  position: relative;
  z-index: 1;
}

.proto-list {
  flex: 1 1 auto;
  min-height: 0px;
  overflow: hidden auto;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.1rem 0.06rem 0.1rem 0.5rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.25) transparent;
}

.pcard {
  position: relative;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.04rem;
  padding: 0.16rem 0.26rem;
  overflow: hidden;
  font: inherit;
  text-align: left;
  color: rgb(233, 236, 235);
  cursor: pointer;
  background: linear-gradient(rgb(37, 38, 39), rgb(26, 27, 28));
  border: 2px solid rgb(85, 88, 90);
  border-radius: 0.2rem;
  box-shadow: rgba(0, 0, 0, 0.5) 0px 0.05rem 0.16rem;
  transition: transform 220ms var(--ease-out), border-color 220ms;
}

.pcard:hover:not(.is-on) {
  border-color: rgb(123, 127, 129);
}

.pcard.is-on {
  transform: translateX(-0.44rem);
  border-color: rgb(143, 148, 150);
}

.pcard__glow {
  position: absolute;
  inset: 0px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 260ms;
  background: radial-gradient(70% 140% at 100% 50%, color-mix(in srgb, var(--d-color) 70%, transparent), transparent 72%);
}

.pcard.is-on .pcard__glow {
  opacity: 1;
}

.pcard > :not(.pcard__glow, .pcard__stamp) {
  position: relative;
}

.pcard.is-on > :not(.pcard__glow, .pcard__stamp) {
  padding-right: max(1.3rem, 70px);
}

.pcard__head {
  display: flex;
  align-items: center;
  gap: 0.08rem;
}

.pcard__glyph {
  width: max(0.3rem, 18px);
  height: max(0.3rem, 18px);
  color: var(--d-color);
}

.pcard__name {
  font-size: max(calc(.3 * var(--t)), 16px);
  font-weight: 900;
  letter-spacing: 0.04em;
  color: var(--d-color);
  text-shadow: rgba(0, 0, 0, 0.6) 0px 0px 0.1rem;
  white-space: nowrap;
}

.pcard__head .mm-count, .pcard__head [class*="matchmaking"] {
  margin-left: auto;
}

.pcard__desc {
  padding-bottom: 0.06rem;
  font-size: max(calc(.17 * var(--t)), 11px);
  color: rgb(154, 159, 157);
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.pcard__effects {
  display: flex;
  flex-direction: column;
  padding-top: 0.04rem;
  font-size: max(calc(.19 * var(--t)), 12px);
  line-height: 1.45;
}

.pcard__effects span::before {
  content: "·";
  margin-right: 0.06rem;
}

.pcard__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.04rem 0.14rem;
  margin-top: 0.04rem;
  font-size: max(calc(.13 * var(--t)), 9px);
  color: rgb(127, 133, 131);
  align-items: center;
}

.pcard__meta b {
  color: rgb(207, 211, 209);
}

.pcard__stamp {
  position: absolute;
  right: 0.2rem;
  top: 50%;
  display: none;
  width: max(1.3rem, 70px);
  height: max(1.1rem, 60px);
  transform: translateY(-50%) rotate(-6deg);
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.04rem;
}

.pcard.is-on .pcard__stamp {
  display: flex;
  animation: proto-stamp 260ms var(--ease-out) backwards;
}

@keyframes proto-stamp {
  0% {
    opacity: 0;
    transform: translateY(-50%) rotate(-6deg) scale(1.4);
  }
}

.pcard__ring {
  position: absolute;
  inset: -0.1rem -0.14rem;
  width: calc(100% + 0.28rem);
  height: calc(100% + 0.2rem);
}

.pcard__ring path {
  fill: none;
  stroke: rgb(255, 255, 255);
  stroke-width: 3;
  stroke-linecap: round;
  opacity: 0.9;
}

.pcard__tick {
  display: grid;
  place-items: center;
  width: max(0.46rem, 26px);
  height: max(0.46rem, 26px);
  color: rgb(42, 23, 18);
  background: rgb(245, 245, 245);
  border-radius: 0.06rem;
  box-shadow: rgba(0, 0, 0, 0.5) 0px 0.02rem 0.08rem;
}

.pcard__tick .icon {
  width: 78%;
  height: 78%;
  color: var(--d-color);
  filter: brightness(0.7);
}

.pcard__ok {
  font-size: max(calc(.18 * var(--t)), 11px);
  font-weight: 800;
  color: rgb(255, 255, 255);
  text-shadow: rgba(0, 0, 0, 0.6) 0px 1px 3px;
  white-space: nowrap;
}

.proto-foot {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  padding-left: 0.5rem;
}

.proto-opts {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.14rem;
}

.proto-private {
  display: inline-flex;
  align-items: center;
  gap: 0.08rem;
  font-size: max(calc(.17 * var(--t)), 12px);
  color: rgb(201, 206, 204);
  cursor: pointer;
}

.proto-private input {
  width: max(0.22rem, 15px);
  height: max(0.22rem, 15px);
  accent-color: var(--mint-500);
}

.proto-hint {
  margin: 0px;
  font-size: max(calc(.14 * var(--t)), 10px);
  color: rgb(133, 139, 137);
  display: flex;
  align-items: center;
  gap: 0.08rem;
  min-height: 0.24rem;
}

.proto-start {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.26rem;
  width: 100%;
  height: max(1.04rem, 54px);
  padding: 0px 0px 0px 0.26rem;
  overflow: hidden;
  font: inherit;
  color: rgb(13, 42, 35);
  cursor: pointer;
  text-align: left;
  background: linear-gradient(rgb(79, 224, 191), rgb(52, 200, 166));
  border: 3px solid rgb(18, 19, 19);
  box-shadow: rgba(79, 224, 191, 0.5) 0px 0px 0px 1px, rgba(0, 0, 0, 0.55) 0px 0.06rem 0.2rem;
  transition: filter var(--t-fast);
  min-height: max(1.04rem, 32px, calc(54px * var(--sp-ui, 1)));
}

.proto-start:hover:not(:disabled) {
  filter: brightness(1.07);
}

.proto-start:disabled {
  filter: grayscale(0.8) brightness(0.6);
  cursor: default;
}

.proto-start__mark {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
}

.proto-start__rook {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: max(calc(.36 * var(--t)), 20px);
  font-weight: 300;
  line-height: 1;
}

.proto-start__rook i {
  font-style: normal;
}

.proto-start__rook .icon {
  width: max(0.34rem, 19px);
  height: max(0.34rem, 19px);
}

.proto-start__mark small {
  font-family: var(--font-display);
  font-size: max(calc(.08 * var(--t)), 6px);
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.1;
  text-align: center;
}

.proto-start__label {
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  font-size: max(calc(.44 * var(--t)), 22px);
  font-weight: 900;
  letter-spacing: 0.08em;
  position: relative;
  min-width: 0px;
  white-space: nowrap;
}

.proto-start__deco {
  position: absolute;
  right: 0px;
  top: 0px;
  bottom: 0px;
  width: 26%;
  clip-path: polygon(18% 0px, 100% 0px, 100% 100%, 0px 100%);
  background: repeating-linear-gradient(135deg, rgba(0, 0, 0, 0.28) 0px, rgba(0, 0, 0, 0.28) 5px, transparent 5px, transparent 11px), linear-gradient(90deg, rgba(13, 42, 35, 0.2), rgba(13, 42, 35, 0.6));
}

@media (max-height: 520px) {
  .proto-top {
    padding-top: 8px;
  }

  .proto-body {
    grid-template-columns: minmax(0px, 1fr) min(5.6rem, 48vw);
    gap: 10px;
  }

  .proto-list {
    gap: 8px;
    padding-left: 22px;
  }

  .pcard {
    padding: 8px 12px;
  }

  .pcard.is-on {
    transform: translateX(-16px);
  }

  .pcard__meta {
    display: none;
  }

  .proto-foot {
    padding-left: 22px;
  }

  .proto-brief p {
    display: none;
  }

  .pcard.is-on > :not(.pcard__glow, .pcard__stamp) {
    padding-right: 0px;
  }

  .pcard.is-on > .pcard__desc, .pcard.is-on > .pcard__effects {
    padding-right: 58px;
  }

  .pcard.is-on .pcard__stamp {
    right: 8px;
    width: 54px;
    height: 48px;
  }

  .pcard__name {
    white-space: nowrap;
  }

  .pcard__head {
    flex-wrap: wrap;
  }

  .proto-opts {
    flex-wrap: wrap;
    gap: 4px 8px;
  }

  .proto-opts > *, .proto-mode-chip {
    white-space: nowrap;
  }

  .proto-start {
    height: 46px;
    gap: 10px;
    padding-left: 10px;
  }

  .proto-start__label {
    font-size: 18px;
    letter-spacing: 0.02em;
    white-space: nowrap;
  }

  .proto-fp .firepower-features {
    grid-template-columns: repeat(2, minmax(0px, 1fr));
  }
}

@media (max-aspect-ratio: 1 / 1) {
  .proto-body {
    grid-template-columns: minmax(0px, 1fr);
    grid-template-rows: minmax(0px, 0.8fr) minmax(0px, 1.2fr);
  }

  .proto-fp {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .proto, .ps-fig, .ps-spike, .pcard.is-on .pcard__stamp {
    animation: auto ease 0s 1 normal none running none;
  }

  .ps-scan, .ps-beacon {
    animation: auto ease 0s 1 normal none running none;
  }
}

.mf-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  font-family: var(--font-display);
  font-size: max(calc(.2 * var(--t)), 12px);
  letter-spacing: 0.12em;
  color: rgb(141, 147, 145);
}

.mf-brand__rook {
  display: inline-flex;
  align-items: center;
  gap: 1px;
  font-weight: 300;
}

.mf-brand__rook i {
  font-style: normal;
}

.mf-brand__rook .icon {
  width: 1.05em;
  height: 1.05em;
}

.mf-search {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.14rem;
  padding: 0.5rem 0.3rem 0.3rem;
  text-align: center;
  color: rgb(238, 240, 239);
}

.mf-search__title {
  display: flex;
  align-items: baseline;
  gap: 0.1rem;
  margin: 0.06rem 0px 0px;
  font-size: max(calc(.5 * var(--t)), 24px);
  font-weight: 900;
  letter-spacing: 0.08em;
  text-shadow: rgba(255, 255, 255, 0.35) 0px 0px 0.24rem;
}

.mf-search__dots {
  display: inline-block;
  width: 1.2em;
  text-align: left;
}

.mf-search__title small {
  font-size: 0.42em;
  font-weight: 700;
  letter-spacing: 0px;
  color: rgb(201, 206, 204);
  text-shadow: none;
}

.mf-search__tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.1rem;
}

.mf-tag {
  --tag: #8d9391;
  display: inline-flex;
  align-items: center;
  gap: 0.06rem;
  padding: 0.04rem 0.16rem;
  font-size: max(calc(.18 * var(--t)), 12px);
  font-weight: 700;
  color: rgb(238, 240, 239);
  background: color-mix(in srgb, var(--tag) 26%, #1b1d1d);
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tag) 45%, transparent);
}

.mf-tag .icon {
  width: max(0.2rem, 13px);
  height: max(0.2rem, 13px);
  color: var(--tag);
}

.mf-search__scene {
  position: relative;
  width: min(100%, 4.6rem);
  padding: 0.16rem 0.3rem;
}

.mf-cross {
  position: absolute;
  width: 0.16rem;
  height: 0.16rem;
}

.mf-cross::before, .mf-cross::after {
  content: "";
  position: absolute;
  background: rgba(78, 216, 175, 0.55);
}

.mf-cross::before {
  left: 50%;
  top: 0px;
  bottom: 0px;
  width: 1px;
}

.mf-cross::after {
  top: 50%;
  left: 0px;
  right: 0px;
  height: 1px;
}

.mf-cross--tl {
  left: 0.1rem;
  top: 0px;
}

.mf-cross--tr {
  right: 0.1rem;
  top: 0px;
}

.mf-cross--bl {
  left: 0.1rem;
  bottom: 0px;
}

.mf-cross--br {
  right: 0.1rem;
  bottom: 0px;
}

.mf-scout {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.mf-scout__wave {
  fill: none;
  stroke: rgba(78, 216, 175, 0.35);
  stroke-width: 6;
  filter: blur(2px);
  animation: 3s ease-in-out 0s infinite alternate none running mf-wave;
}

@keyframes mf-wave {
  100% {
    transform: translateX(-12px);
  }
}

.mf-scout__sky {
  fill: rgb(72, 226, 182);
  opacity: 0.9;
  animation: 4s linear 0s infinite normal none running mf-sky;
}

@keyframes mf-sky {
  0% {
    transform: translateX(0px);
  }

  100% {
    transform: translateX(-120px);
  }
}

.mf-scout__bot rect {
  fill: rgb(93, 240, 198);
}

.mf-scout__bot {
  animation: 0.5s steps(2) 0s infinite normal none running mf-hop;
}

@keyframes mf-hop {
  50% {
    transform: translateY(-3px);
  }
}

.mf-scout__eye {
  animation: 3s steps(1) 0s infinite normal none running mf-blink;
  fill: rgb(11, 38, 32) !important;
}

@keyframes mf-blink {
  0%, 92% {
    opacity: 1;
  }

  94%, 100% {
    opacity: 0;
  }
}

.mf-scout__leg--a {
  animation: 0.3s steps(2) 0s infinite normal none running mf-leg;
}

.mf-scout__leg--b {
  animation: 0.3s steps(2) 0s infinite reverse none running mf-leg;
}

@keyframes mf-leg {
  50% {
    transform: translateY(-3px);
  }
}

.mf-scout__ground {
  stroke: rgba(93, 240, 198, 0.5);
  stroke-width: 2;
  stroke-dasharray: 6, 4;
}

.mf-scout text {
  fill: rgb(93, 240, 198);
  font: 700 8px var(--font-num, monospace);
  letter-spacing: 2px;
  opacity: 0.8;
}

.mf-search__tip {
  min-height: 2.8em;
  margin: 0px;
  max-width: 5rem;
  font-size: max(calc(.2 * var(--t)), 12px);
  line-height: 1.45;
  color: rgb(230, 233, 232);
  animation: sw-in 300ms var(--ease-out) backwards;
}

.mf-search__note {
  margin: 0px;
  font-size: max(calc(.15 * var(--t)), 10px);
  color: rgb(141, 147, 145);
}

.mf-stop {
  display: inline-flex;
  align-items: center;
  gap: 0.12rem;
  margin-top: auto;
  align-self: flex-end;
  height: max(0.62rem, 36px);
  padding: 0px 0.3rem 0px 0.14rem;
  font-style: inherit;
  font-variant: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.24 * var(--t)), 14px);
  font-weight: 800;
  color: rgb(255, 217, 217);
  cursor: pointer;
  background: linear-gradient(90deg, rgba(120, 24, 34, 0.85), rgba(70, 14, 20, 0.85));
  border: 1px solid rgba(255, 120, 130, 0.55);
}

.mf-stop:hover:not(:disabled) {
  filter: brightness(1.15);
}

.mf-stop__x {
  display: grid;
  place-items: center;
  width: max(0.34rem, 20px);
  height: max(0.34rem, 20px);
  border: 2px solid;
  border-radius: 3px;
}

.mf-stop__x .icon {
  width: 80%;
  height: 80%;
}

.mf-found {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.08rem;
  padding: 0.3rem 0.3rem 0.4rem;
  color: rgb(234, 255, 248);
  text-align: center;
  background: radial-gradient(80% 50% at 50% 30%, rgba(90, 255, 205, 0.3), transparent 70%), linear-gradient(rgb(43, 184, 146), rgb(21, 95, 77) 55%, rgb(13, 59, 49));
  animation: mf-found-in 260ms var(--ease-out) backwards;
}

@keyframes mf-found-in {
  0% {
    opacity: 0;
    transform: translateX(0.4rem);
  }
}

.mf-found .mf-brand {
  color: rgb(201, 255, 240);
}

.mf-found__lines {
  width: 100%;
  max-height: 52%;
  flex: 1 1 auto;
}

.mf-found__lines path {
  fill: none;
  stroke: rgb(141, 255, 217);
  stroke-width: 2;
  stroke-opacity: 0.55;
  stroke-dasharray: 420;
  stroke-dashoffset: 420;
  animation-delay: calc(var(--k) * 40ms);
}

@keyframes mf-line {
  100% {
    stroke-dashoffset: 0;
  }
}

.mf-found__node {
  fill: rgb(183, 255, 232);
  stroke: rgb(13, 59, 49);
  stroke-width: 2;
}

.mf-found__face svg {
  width: max(1.1rem, 60px);
  height: max(1.1rem, 60px);
}

.mf-found__face rect:first-child {
  fill: rgb(93, 240, 198);
}

.mf-found__eye {
  fill: rgb(13, 59, 49);
}

.mf-found__wink, .mf-found__smile {
  fill: none;
  stroke: rgb(13, 59, 49);
  stroke-width: 4;
  stroke-linecap: round;
}

.mf-found__title {
  font-size: max(calc(.46 * var(--t)), 22px);
  font-weight: 900;
  letter-spacing: 0.08em;
  color: rgb(183, 255, 232);
  text-shadow: rgba(0, 0, 0, 0.3) 0px 0px 0.2rem;
}

.mf-found__sub {
  font-size: max(calc(.18 * var(--t)), 12px);
  color: rgb(213, 255, 242);
}

.proto-side--search {
  justify-content: stretch;
  background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.55) 30%);
}

.proto-side--search .mf-search {
  flex: 1 1 auto;
}

.proto-mode-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.06rem;
  padding: 0.04rem 0.16rem;
  font-size: max(calc(.17 * var(--t)), 12px);
  font-weight: 700;
  color: rgb(233, 236, 235);
  background: rgb(42, 44, 45);
  border-radius: 999px;
}

.proto-mode-chip .icon {
  width: max(0.2rem, 13px);
  height: max(0.2rem, 13px);
}

.ally__bg {
  background: radial-gradient(40% 55% at 30% 52%, rgba(46, 210, 160, 0.12), transparent 70%), repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.024) 0px, rgba(255, 255, 255, 0.024) 1px, transparent 1px, transparent 4px), linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px) 0px 0px / 1.1rem 1.1rem, linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px) 0px 0px / 1.1rem 1.1rem, radial-gradient(120% 90% at 50% 40%, rgb(20, 22, 22), rgb(7, 8, 8));
}

.ally__mode {
  color: var(--mint-400);
}

.ally-stage {
  position: relative;
  min-height: 0px;
  min-width: 0px;
}

.mf-radar {
  position: absolute;
  inset: 0px 0px 0.8rem;
  width: 100%;
  height: calc(100% - 0.8rem);
}

.mf-radar__grid line {
  stroke: rgba(78, 216, 175, 0.08);
  stroke-width: 1;
}

.mf-radar__land path {
  fill: rgba(150, 170, 165, 0.1);
  stroke: rgba(150, 170, 165, 0.2);
  stroke-width: 1;
}

.mf-radar__ring {
  fill: none;
  stroke: rgba(78, 216, 175, 0.25);
  stroke-width: 1.5;
}

.mf-radar__ring--far {
  fill: rgba(30, 140, 110, 0.1);
}

.mf-radar__ring--core {
  stroke: rgba(78, 216, 175, 0.75);
  stroke-width: 3;
  filter: drop-shadow(rgba(78, 216, 175, 0.6) 0px 0px 6px);
}

.mf-radar__sweep {
  transform-origin: 270px 250px;
  animation: 4.5s linear 0s infinite normal none running mf-sweep;
}

.mf-radar__sweep path {
  fill: rgba(60, 230, 180, 0.22);
}

.mf-radar__sweep line {
  stroke: rgb(93, 240, 198);
  stroke-width: 3;
  filter: drop-shadow(rgb(93, 240, 198) 0px 0px 6px);
}

@keyframes mf-sweep {
  100% {
    transform: rotate(360deg);
  }
}

.mf-radar__blip {
  fill: rgb(255, 197, 61);
  filter: drop-shadow(rgb(255, 197, 61) 0px 0px 8px);
  animation: 2.2s ease-in-out 0s infinite normal none running mf-blip;
}

.mf-radar__blip--b {
  fill: rgb(93, 240, 198);
  filter: drop-shadow(rgb(93, 240, 198) 0px 0px 6px);
  animation-delay: 1.1s;
}

@keyframes mf-blip {
  50% {
    opacity: 0.2;
  }
}

.mf-radar__cross {
  stroke: rgb(93, 240, 198);
  stroke-width: 3;
}

.mf-radar__read rect {
  fill: rgba(0, 0, 0, 0.5);
  stroke: rgba(78, 216, 175, 0.45);
}

.mf-radar__read text {
  fill: rgb(159, 233, 211);
  font: 700 14px var(--font-num, monospace);
}

.mf-radar__frame {
  fill: none;
  stroke: rgba(78, 216, 175, 0.35);
  stroke-width: 2;
}

.ally-guide {
  position: absolute;
  left: 0.1rem;
  bottom: 0.1rem;
  display: inline-flex;
  align-items: center;
  gap: 0.14rem;
  height: max(0.64rem, 38px);
  padding: 0px 0.3rem 0px 0.1rem;
  font-style: inherit;
  font-variant: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.22 * var(--t)), 13px);
  font-weight: 800;
  color: rgb(26, 29, 28);
  cursor: pointer;
  background: linear-gradient(rgb(233, 237, 235), rgb(195, 202, 199));
  border: 1px solid rgba(255, 255, 255, 0.6);
  box-shadow: rgba(0, 0, 0, 0.5) 0px 0.04rem 0.14rem;
}

.ally-guide:hover {
  filter: brightness(1.06);
}

.ally-guide__icon {
  display: grid;
  place-items: center;
  width: max(0.46rem, 28px);
  height: max(0.4rem, 24px);
  color: rgb(233, 237, 235);
  background: rgb(42, 47, 45);
}

.ally-guide__icon .icon {
  width: 64%;
  height: 64%;
}

.ally-body {
  grid-template-columns: minmax(0px, 1fr) min(7.4rem, 42vw);
}

.ally-side {
  min-height: 0px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.16rem;
  padding: 0.1rem 0px 0.1rem 0.3rem;
  overflow-y: auto;
  scrollbar-width: thin;
}

.ally-card__art {
  flex: 1 1 auto;
  display: grid;
  place-items: center;
  padding: 0.1rem 0.2rem 0px;
}

.ally-card {
  position: relative;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 0px;
  overflow: hidden;
  font: inherit;
  color: rgb(238, 240, 239);
  text-align: left;
  background: radial-gradient(70% 90% at 50% 40%, rgb(22, 26, 25), rgb(9, 10, 10));
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 0.08rem;
  box-shadow: rgba(0, 0, 0, 0.5) 0px 0.06rem 0.2rem;
}

button.ally-card {
  cursor: pointer;
}

button.ally-card:hover:not(:disabled) {
  border-color: rgba(93, 240, 198, 0.6);
}

button.ally-card:disabled {
  filter: grayscale(0.7) brightness(0.7);
  cursor: default;
}

.ally-card__art {
  display: block;
  padding: 0.1rem 0.2rem 0px;
}

.mf-art {
  display: block;
  width: 100%;
  height: auto;
  max-height: 1.3rem;
}

.mf-art text {
  font: 700 8px var(--font-display, monospace);
  letter-spacing: 2px;
  fill: currentcolor;
  opacity: 0.7;
}

.mf-art--create {
  color: rgb(93, 240, 198);
}

.mf-art--create .mf-art__wire {
  fill: none;
  stroke: rgba(93, 240, 198, 0.45);
  stroke-width: 2;
}

.mf-art--create .mf-art__oct {
  fill: rgb(47, 214, 166);
  filter: drop-shadow(rgba(93, 240, 198, 0.6) 0px 0px 10px);
}

.mf-art--create .mf-art__plus {
  stroke: rgb(8, 34, 27);
  stroke-width: 7;
  stroke-linecap: square;
}

.mf-art--create .mf-art__brk {
  fill: none;
  stroke: rgb(93, 240, 198);
  stroke-width: 4;
}

.mf-art--create .mf-art__dot {
  fill: rgb(93, 240, 198);
}

.mf-art--join {
  color: rgb(255, 154, 60);
}

.mf-art--join .mf-art__wire {
  fill: none;
  stroke: rgba(255, 154, 60, 0.6);
  stroke-width: 2;
}

.mf-art--join .mf-art__tri {
  fill: rgb(255, 154, 60);
}

.mf-art--join .mf-art__target {
  fill: rgba(255, 154, 60, 0.15);
  stroke: rgb(255, 154, 60);
  stroke-width: 2;
}

.mf-art--join .mf-art__x {
  stroke: rgb(255, 154, 60);
  stroke-width: 3;
}

.mf-blk path {
  stroke: rgba(0, 0, 0, 0.5);
  stroke-width: 1;
}

.mf-blk__top {
  fill: rgb(58, 61, 61);
}

.mf-blk__l {
  fill: rgb(42, 44, 44);
}

.mf-blk__r {
  fill: rgb(31, 33, 33);
}

.mf-blk.is-lit .mf-blk__top {
  fill: rgb(240, 163, 90);
}

.mf-blk.is-lit .mf-blk__l {
  fill: rgb(201, 107, 35);
}

.mf-blk.is-lit .mf-blk__r {
  fill: rgb(165, 84, 26);
}

.mf-blk.is-lit {
  animation-duration: 2.4s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-direction: normal;
  animation-fill-mode: none;
  animation-play-state: running;
  animation-name: mf-blk;
  animation-timeline: auto;
  animation-range: normal;
  animation-delay: calc(var(--k) * 120ms);
}

@keyframes mf-blk {
  50% {
    transform: translateY(-3px);
  }
}

.ally-card__bar {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.14rem;
  height: max(0.74rem, 42px);
  padding: 0px 0.2rem;
  font-size: max(calc(.3 * var(--t)), 16px);
  font-weight: 900;
  letter-spacing: 0.06em;
  color: rgb(8, 34, 27);
  background: linear-gradient(rgb(79, 232, 192), rgb(47, 207, 159));
  border: 0px;
  font-family: inherit;
  text-align: left;
  white-space: nowrap;
}

.ally-card__bar {
  white-space: nowrap;
}

.ally-card__bar small {
  margin-left: auto;
  min-width: 0px;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: max(calc(.14 * var(--t)), 10px);
  font-weight: 700;
  letter-spacing: 0px;
  color: rgba(8, 34, 27, 0.75);
  flex: 0 1 auto;
  white-space: normal;
  text-align: right;
  text-wrap-style: balance;
  line-height: 1.2;
}

.ally-pill {
  white-space: nowrap;
}

@media (max-width: 700px) {
  .ally-card__bar small {
    display: none;
  }

  .ally-card__art {
    padding-top: 4px;
  }
}

.ally-card__bar--join {
  width: 100%;
  color: rgb(42, 20, 4);
  background: linear-gradient(rgb(255, 178, 79), rgb(240, 138, 38));
  cursor: pointer;
}

.ally-card__bar--join:disabled {
  filter: grayscale(0.6) brightness(0.75);
  cursor: default;
}

.ally-card__bar--join:hover:not(:disabled) {
  filter: brightness(1.06);
}

.ally-card__icon {
  display: grid;
  place-items: center;
  width: max(0.36rem, 22px);
  height: max(0.36rem, 22px);
  color: currentcolor;
  background: rgba(0, 0, 0, 0.14);
  border: 2px solid;
  border-radius: 4px;
  flex: 0 0 auto;
}

.ally-card__icon .icon {
  width: 74%;
  height: 74%;
}

.ally-links {
  display: flex;
  justify-content: flex-end;
  gap: 0.1rem;
  margin: -0.04rem 0px;
}

.ally-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.08rem;
  height: max(0.5rem, 30px);
  padding: 0px 0.2rem;
  font-style: inherit;
  font-variant: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.2 * var(--t)), 12px);
  font-weight: 700;
  color: rgb(238, 240, 239);
  background: linear-gradient(rgb(44, 47, 47), rgb(27, 29, 29));
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  cursor: pointer;
}

.ally-pill:hover {
  border-color: rgba(255, 255, 255, 0.45);
}

.ally-pill .icon {
  width: max(0.2rem, 13px);
  height: max(0.2rem, 13px);
}

.ally-pill b {
  min-width: max(0.24rem, 16px);
  padding: 0px 4px;
  font-size: 0.8em;
  text-align: center;
  color: rgb(42, 20, 4);
  background: rgb(255, 154, 60);
  border-radius: 999px;
}

.ally-pill__mark {
  width: max(0.22rem, 14px);
  height: max(0.22rem, 14px);
  background: conic-gradient(rgb(255, 154, 60) 0deg, rgb(255, 154, 60) 25%, transparent 0deg, transparent 50%, rgb(255, 154, 60) 0deg, rgb(255, 154, 60) 75%, transparent 0deg);
}

.ally-key {
  display: flex;
  align-items: center;
  gap: 0.1rem;
  margin: 0.06rem 0.2rem 0.1rem;
  padding: 0px 0.06rem 0px 0.12rem;
  height: max(0.56rem, 34px);
  background: rgb(38, 41, 41);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 0.06rem;
}

.ally-key > .icon {
  flex: 0 0 auto;
  width: max(0.24rem, 15px);
  height: max(0.24rem, 15px);
  color: rgb(201, 206, 204);
}

.ally-key input {
  flex: 1 1 auto;
  min-width: 0px;
  height: 100%;
  font-style: inherit;
  font-variant: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.22 * var(--t)), 13px);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: center;
  color: rgb(242, 244, 243);
  background: none;
  border: 0px;
  outline: none;
  text-transform: uppercase;
  text-overflow: ellipsis;
}

.ally-key input::placeholder {
  color: rgb(141, 147, 145);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: none;
}

.ally-key__spec {
  display: inline-flex;
  align-items: center;
  gap: 0.04rem;
  height: 80%;
  padding: 0px 0.12rem;
  font-style: inherit;
  font-variant: inherit;
  font-weight: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.15 * var(--t)), 11px);
  color: rgb(238, 240, 239);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 4px;
  cursor: pointer;
  flex: 0 0 auto;
}

.ally-key__spec .icon {
  width: 1.1em;
  height: 1.1em;
}

.ally-recent {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.06rem;
  margin: -0.04rem 0.2rem 0.1rem;
  align-items: center;
  min-height: 0.3rem;
  font-size: calc(.14 * var(--t));
  text-align: center;
}

.rs {
  background: rgb(10, 11, 11);
  color: rgb(238, 240, 239);
}

.rs__bg {
  position: absolute;
  inset: 0px;
  pointer-events: none;
  background: radial-gradient(60% 50% at 30% 40%, color-mix(in srgb, var(--mint-500) 7%, transparent), transparent 70%),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, .02) 0 1px, transparent 1px 4px),
    linear-gradient(rgba(255, 255, 255, .025) 1px, transparent 1px) 0 0 / 1.1rem 1.1rem,
    linear-gradient(90deg, rgba(255, 255, 255, .025) 1px, transparent 1px) 0 0 / 1.1rem 1.1rem,
    radial-gradient(120% 90% at 50% 30%, #161818, #070808);
}

.rs > :where(:not(.rs__bg, .mf-search, .mf-found, .rs-proto, .modal)) {
  position: relative;
}

.rs-top {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.2rem;
  padding: 0.16rem 0.3rem 0px 0.22rem;
  z-index: 3;
}

.rs-top__left {
  display: flex;
  align-items: center;
  gap: 0.16rem;
  min-width: 0px;
}

.rs-exit {
  display: grid;
  place-items: center;
  width: max(0.6rem, 36px);
  height: max(0.6rem, 36px);
  padding: 0px;
  color: rgb(27, 30, 29);
  cursor: pointer;
  background: linear-gradient(rgb(227, 231, 229), rgb(183, 191, 188));
  border: 0px;
  border-radius: 0.06rem;
  box-shadow: rgba(0, 0, 0, 0.5) 0px 0.03rem 0.1rem;
}

.rs-exit:hover {
  filter: brightness(1.08);
}

.rs-exit .icon {
  width: 60%;
  height: 60%;
}

.rs-clock {
  display: flex;
  flex-direction: column;
  gap: 0.02rem;
  min-width: 0px;
}

.rs-clock > b {
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  font-size: max(calc(.2 * var(--t)), 13px);
  font-weight: 700;
  white-space: nowrap;
}

.rs-clock__sep {
  width: 1px;
  height: 0.9em;
  background: rgba(255, 255, 255, 0.3);
}

.rs-clock > span {
  font-size: max(calc(.16 * var(--t)), 11px);
  color: rgb(154, 161, 158);
}

.rs-ping {
  margin: 0px 2px;
}

.rs-ping--low {
  color: rgb(143, 239, 90);
}

.rs-ping--mid {
  color: rgb(255, 197, 61);
}

.rs-ping--high, .rs-ping--off {
  color: rgb(255, 107, 107);
}

.rs-tools {
  display: flex;
  gap: 0.08rem;
  margin-left: 0.1rem;
}

.rs-key {
  display: flex;
  align-items: center;
  gap: 0.14rem;
  height: max(0.56rem, 34px);
  padding: 0px 0.06rem 0px 0.2rem;
  background: rgba(28, 30, 30, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.06rem;
}

.rs-key__k {
  font-size: max(calc(.17 * var(--t)), 11px);
  color: rgb(183, 189, 187);
  padding-right: 0.14rem;
  border-right: 1px solid rgba(255, 255, 255, 0.25);
}

.rs-key__code {
  font-size: max(calc(.28 * var(--t)), 16px);
  letter-spacing: 0.06em;
  color: rgb(242, 244, 243);
}

.rs-key__copy {
  height: 78%;
  padding: 0px 0.26rem;
  font-style: inherit;
  font-variant: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.2 * var(--t)), 12px);
  font-weight: 800;
  color: rgb(27, 30, 29);
  background: linear-gradient(rgb(233, 237, 235), rgb(195, 202, 199));
  border: 0px;
  border-radius: 0.05rem;
  cursor: pointer;
}

.rs-key__copy:hover {
  filter: brightness(1.06);
}

.rs-key__copy, .rs-key__code {
  white-space: nowrap;
}

.rs-key__link {
  display: grid;
  place-items: center;
  width: max(0.44rem, 28px);
  height: 78%;
  padding: 0px;
  color: rgb(201, 206, 204);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 0.05rem;
  cursor: pointer;
}

.rs-key__link .icon {
  width: 60%;
  height: 60%;
}

.rs-key__friends {
  display: inline-flex;
  align-items: center;
  gap: 0.06rem;
  height: 78%;
  padding: 0px 0.2rem;
  font-style: inherit;
  font-variant: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.2 * var(--t)), 12px);
  font-weight: 800;
  white-space: nowrap;
  color: rgb(29, 20, 5);
  background: linear-gradient(rgb(255, 210, 122), rgb(240, 169, 58));
  border: 0px;
  border-radius: 0.05rem;
  cursor: pointer;
}

.rs-key__friends:hover {
  filter: brightness(1.06);
}

.rs-key__friends .icon {
  width: max(0.24rem, 14px);
  height: max(0.24rem, 14px);
}

.rs-key--solo {
  gap: 0.1rem;
  padding-right: 0.2rem;
  font-size: max(calc(.16 * var(--t)), 11px);
  color: rgb(183, 189, 187);
}

.rs-seats {
  flex: 1 1 auto;
  min-height: 0px;
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: max(0.3rem, 2.2vw);
  padding: 0.3rem 0.4rem 0.1rem;
  overflow: auto hidden;
  scrollbar-width: thin;
}

.rs--big .rs-seats {
  justify-content: flex-start;
  gap: 0.16rem;
}

.rseat {
  --w: min(18vw, 3.4rem, calc((100vw - 1.6rem) / var(--n, 4) - .3rem));
  position: relative;
  flex: 0 0 auto;
  width: var(--w);
  display: flex;
  flex-direction: column;
  animation-delay: calc(var(--i) * 60ms);
}

.rs--big .rseat {
  --w: max(1.7rem, 120px);
}

.rs--solo .rseat {
  --w: min(2.7rem, 34vw);
}

.rseat__clip {
  position: absolute;
  left: 50%;
  top: -0.14rem;
  width: 0.16rem;
  height: 0.2rem;
  transform: translateX(-50%);
  background: rgb(58, 62, 61);
  border: 2px solid rgb(26, 28, 28);
  z-index: 2;
}

.rseat.is-ready .rseat__clip {
  background: rgb(79, 232, 192);
}

.rseat__strip {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: max(0.26rem, 16px);
  padding: 0px 0.08rem;
  background: rgb(43, 46, 46);
}

.rseat__strip i {
  width: 0.5rem;
  height: 4px;
  background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.45) 0px, rgba(255, 255, 255, 0.45) 3px, transparent 3px, transparent 5px);
}

.rseat__strip span {
  font-size: max(calc(.12 * var(--t)), 9px);
  color: rgb(141, 147, 145);
}

.rseat.is-ready .rseat__strip {
  background: rgb(79, 232, 192);
}

.rseat.is-ready .rseat__strip i {
  background: repeating-linear-gradient(90deg, rgba(8, 34, 27, 0.6) 0px, rgba(8, 34, 27, 0.6) 3px, transparent 3px, transparent 5px);
}

.rseat.is-ready .rseat__strip span {
  color: rgb(8, 34, 27);
}

.rseat__art {
  position: relative;
  flex: 1 1 auto;
  min-height: 0px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: linear-gradient(rgb(31, 34, 34), rgb(20, 22, 22));
  border-width: 0px 2px 2px;
  border-style: none solid solid;
  border-color: currentcolor rgb(43, 46, 46) rgb(43, 46, 46);
  border-image: none;
}

.rseat.is-ready .rseat__art {
  border-color: rgb(79, 232, 192);
  box-shadow: rgba(79, 232, 192, 0.35) 0px 0px 0.2rem;
}

.rseat__art img {
  position: absolute;
  inset: 0px;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: 50% 50%;
}

.rseat.is-ready .rseat__art::after {
  content: "";
  position: absolute;
  inset: 50% 0px 0px;
  background: linear-gradient(transparent, rgba(47, 207, 159, 0.85));
  pointer-events: none;
}

.rseat__glyph {
  font-size: max(calc(.9 * var(--t)), 40px);
  font-weight: 900;
  color: rgba(255, 255, 255, 0.25);
}

.rseat__glyph .icon {
  width: max(1rem, 50px);
  height: max(1rem, 50px);
}

.rseat__host {
  position: absolute;
  top: 0.14rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  padding: 0.02rem 0.18rem;
  font-size: max(calc(.18 * var(--t)), 12px);
  font-weight: 800;
  color: rgb(8, 34, 27);
  background: rgb(79, 232, 192);
  border-radius: 0.04rem;
  white-space: nowrap;
}

.rseat__lost {
  position: absolute;
  left: 0px;
  right: 0px;
  top: 40%;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.1rem;
  padding: 0.14rem 0px;
  font-size: max(calc(.24 * var(--t)), 14px);
  font-weight: 800;
  color: rgb(255, 122, 138);
  background: rgba(80, 10, 18, 0.85);
}

.rseat__lost .icon {
  width: 1.2em;
  height: 1.2em;
}

.rseat.is-offline .rseat__art img {
  filter: grayscale(0.8) brightness(0.6);
}

.rseat__state {
  position: absolute;
  left: 0px;
  right: 0px;
  bottom: 0.14rem;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.1rem;
  font-size: max(calc(.26 * var(--t)), 14px);
  font-weight: 900;
  color: rgb(255, 255, 255);
  text-shadow: rgba(0, 0, 0, 0.6) 0px 1px 3px;
}

.rseat:not(.is-ready) .rseat__state {
  color: rgb(201, 206, 204);
  font-size: max(calc(.2 * var(--t)), 12px);
}

.rseat__box {
  display: grid;
  place-items: center;
  width: max(0.34rem, 20px);
  height: max(0.34rem, 20px);
  border: 2px solid;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.25);
}

.rseat__box .icon {
  width: 80%;
  height: 80%;
}

.rseat__kick {
  position: absolute;
  right: -0.08rem;
  top: -0.12rem;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  height: max(0.4rem, 24px);
  padding: 0px 0.1rem;
  color: rgb(255, 138, 150);
  background: rgb(59, 18, 24);
  border: 1px solid rgba(255, 120, 130, 0.6);
  border-radius: 999px;
  cursor: pointer;
}

.rseat__kick .icon {
  width: max(0.2rem, 12px);
  height: max(0.2rem, 12px);
}

.rseat__kick .icon + .icon {
  width: max(0.14rem, 9px);
  margin-left: -2px;
}

.rseat__kick:hover:not(:disabled) {
  filter: brightness(1.3);
}

.rseat__plate {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0px, 1fr);
  grid-template-rows: auto auto;
  column-gap: 0.1rem;
  align-items: center;
  min-height: max(0.76rem, 46px);
  margin-top: 0.08rem;
  padding: 0.06rem 0.1rem;
  background: linear-gradient(90deg, rgb(35, 38, 38), rgb(22, 24, 24));
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.rseat.is-ready .rseat__plate {
  border-color: rgba(79, 232, 192, 0.55);
}

.rseat.is-me .rseat__plate {
  background: linear-gradient(90deg, rgb(38, 48, 45), rgb(22, 26, 25));
}

.rseat__plate .avatar {
  grid-row: 1 / 3;
}

.rseat__who {
  display: flex;
  align-items: center;
  gap: 0.06rem;
  min-width: 0px;
  font-size: max(calc(.18 * var(--t)), 12px);
}

.rseat__name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rseat__doc {
  font-size: max(calc(.11 * var(--t)), 8px);
  letter-spacing: 0.1em;
  color: rgb(127, 133, 131);
}

.rseat__me {
  position: absolute;
  left: -0.1rem;
  top: -0.1rem;
  display: grid;
  place-items: center;
  width: max(0.26rem, 16px);
  height: max(0.26rem, 16px);
  color: rgb(8, 34, 27);
  background: rgb(79, 232, 192);
  border-radius: 3px;
}

.rseat__me .icon {
  width: 80%;
  height: 80%;
}

.rseat__plate--empty {
  border-style: dashed;
  border-color: rgba(255, 255, 255, 0.12);
  background: none;
}

.rseat--empty .rseat__art {
  background: linear-gradient(135deg, transparent 47%, rgba(255, 255, 255, 0.06) 50%, transparent 53%), rgb(20, 22, 22);
}

.rseat__invite {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.1rem;
  padding: 0.2rem 0.1rem;
  font: inherit;
  color: rgb(238, 240, 239);
  background: none;
  border: 0px;
  cursor: pointer;
}

.rseat__plus {
  position: relative;
  width: max(0.9rem, 46px);
  height: max(0.9rem, 46px);
}

.rseat__plus::before, .rseat__plus::after {
  content: "";
  position: absolute;
  background: rgb(242, 244, 243);
  box-shadow: rgba(255, 255, 255, 0.5) 0px 0px 0.1rem;
}

.rseat__plus::before {
  left: 50%;
  top: 0px;
  bottom: 0px;
  width: 7px;
  transform: translateX(-50%);
}

.rseat__plus::after {
  top: 50%;
  left: 0px;
  right: 0px;
  height: 7px;
  transform: translateY(-50%);
}

.rseat__invite b {
  font-size: max(calc(.26 * var(--t)), 15px);
}

.rseat__invite small {
  font-size: max(calc(.15 * var(--t)), 10px);
  color: rgb(141, 147, 145);
  text-align: center;
}

.rseat__invite:hover .rseat__plus::before, .rseat__invite:hover .rseat__plus::after {
  background: rgb(93, 240, 198);
}

.rseat__wait {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.1rem;
  color: rgb(183, 189, 187);
}

.rseat__wait svg {
  width: max(0.7rem, 36px);
  height: auto;
  fill: none;
  stroke: currentcolor;
  stroke-width: 3;
}

.rseat__wait small {
  padding: 0.02rem 0.08rem;
  font-family: var(--font-display);
  font-size: max(calc(.1 * var(--t)), 7px);
  letter-spacing: 0.1em;
  background: rgba(255, 255, 255, 0.08);
}

.rseat--empty.is-searching .rseat__wait {
  animation: 1.6s ease-in-out 0s infinite normal none running mf-blip;
}

.rseat__noinfo {
  position: absolute;
  right: 0.12rem;
  bottom: 0.3rem;
  font-family: var(--font-display);
  font-size: max(calc(.12 * var(--t)), 8px);
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.15);
}

.rs-brief {
  align-self: center;
  max-width: min(5rem, 46vw);
}

.rseat__art.is-pickable {
  cursor: pointer;
}

.rseat__pick {
  position: absolute;
  right: 0.08rem;
  top: 0.5rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.04rem;
  height: max(0.36rem, 22px);
  padding: 0px 0.1rem;
  font-style: inherit;
  font-variant: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.14 * var(--t)), 10px);
  font-weight: 700;
  color: rgb(238, 240, 239);
  background: rgba(0, 0, 0, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 999px;
  cursor: pointer;
  opacity: 0.75;
  transition: opacity var(--t-fast);
}

.rseat__pick .icon {
  width: 1.1em;
  height: 1.1em;
}

.rseat__art:hover .rseat__pick, .rseat__pick:focus-visible {
  opacity: 1;
  border-color: rgb(93, 240, 198);
}

@media (max-width: 900px) {
  .rseat__pick span {
    display: none;
  }
}

.cardpick .modal__body, .cardpick {
  --cp-size: max(.86rem, 52px);
}

.cardpick__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.1rem;
  margin-bottom: 0.12rem;
}

.cardpick__search {
  flex: 1 1 2.4rem;
  display: flex;
  align-items: center;
  gap: 0.06rem;
  height: max(0.5rem, 30px);
  padding: 0px 0.1rem;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid var(--line-2);
}

.cardpick__search .icon {
  width: 1.1em;
  height: 1.1em;
  color: var(--text-lo);
}

.cardpick__search input {
  flex: 1 1 auto;
  min-width: 0px;
  font: inherit;
  color: var(--text-hi);
  background: none;
  border: 0px;
  outline: none;
}

.cardpick__stars {
  display: inline-flex;
  border: 1px solid var(--line-2);
}

.cardpick__stars button {
  height: max(0.48rem, 28px);
  padding: 0px 0.14rem;
  font-style: inherit;
  font-variant: inherit;
  font-weight: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.16 * var(--t)), 11px);
  color: var(--text-md);
  background: none;
  border: 0px;
  cursor: pointer;
}

.cardpick__stars button.is-on {
  color: rgb(8, 34, 27);
  background: var(--mint-500);
}

.cardpick__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(var(--cp-size), 1fr));
  gap: 0.08rem;
  max-height: min(52vh, 5.4rem);
  overflow-y: auto;
  padding: 2px;
  scrollbar-width: thin;
}

.cardpick__op {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 3px;
  font: inherit;
  color: var(--text-md);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--line);
  cursor: pointer;
}

.cardpick__op:hover {
  border-color: var(--line-3);
  color: var(--text-hi);
}

.cardpick__op.is-on {
  border-color: var(--mint-400);
  box-shadow: 0 0 0 1px var(--mint-400);
  color: var(--text-hi);
}

.cardpick__img {
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: linear-gradient(rgb(215, 220, 218), rgb(169, 177, 174));
}

.cardpick__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cardpick__op--auto .cardpick__img {
  background: rgb(29, 33, 32);
  color: var(--mint-400);
}

.cardpick__op--auto .cardpick__img .icon {
  width: 45%;
  height: 45%;
}

.cardpick__name {
  width: 100%;
  font-size: max(calc(.13 * var(--t)), 10px);
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cardpick__star {
  position: absolute;
  right: 3px;
  top: 3px;
  padding: 0px 3px;
  font-size: max(calc(.11 * var(--t)), 8px);
  font-weight: 800;
  color: rgb(17, 17, 17);
  background: rgb(232, 232, 232);
}

.cardpick__star.r6 {
  background: rgb(255, 207, 90);
}

.cardpick__star.r5 {
  background: rgb(242, 224, 107);
}

.cardpick__looks {
  display: flex;
  align-items: flex-end;
  gap: 0.08rem;
  margin-bottom: 0.12rem;
  padding: 0.06rem 0.08rem;
  overflow-x: auto;
  scrollbar-width: thin;
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid var(--line-2);
}

.cardpick__looks-label {
  flex: 0 0 auto;
  align-self: center;
  font-size: max(calc(.14 * var(--t)), 11px);
  color: var(--text-lo);
}

.cardpick__look {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  width: max(0.72rem, 52px);
  padding: 3px;
  font: inherit;
  color: var(--text-md);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--line-2);
  cursor: pointer;
}

.cardpick__look.is-on {
  border-color: var(--mint-400);
  box-shadow: 0 0 0 1px var(--mint-400);
  color: var(--text-hi);
}

.cardpick__look.is-tall .cardpick__img {
  aspect-ratio: 3 / 4;
}

.cardpick__look.is-tall .cardpick__img img {
  object-position: 50% 8%;
}

.cardpick__note {
  display: flex;
  align-items: center;
  gap: 0.06rem;
  margin: 0.12rem 0px 0px;
  font-size: max(calc(.15 * var(--t)), 10px);
  color: var(--text-lo);
}

.cardpick__note .icon {
  flex: 0 0 auto;
  width: 1.1em;
  height: 1.1em;
}

.rs-foot {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: minmax(0px, 1fr) auto minmax(0px, 1fr);
  align-items: end;
  gap: 0.2rem;
  padding: 0.1rem 0.3rem 0.2rem 0.22rem;
  z-index: 2;
}

.rs-foot__left {
  min-width: 0px;
}

.rs-top__right {
  display: flex;
  align-items: center;
  gap: 0.14rem;
}

.rs-loadout.hub-plate {
  min-width: 0px;
  width: auto !important;
  height: max(0.56rem, 34px) !important;
  padding: 0px 0.2rem 0px 0.14rem !important;
}

.rs-loadout.hub-plate .lo-entry__icon, .rs-loadout.hub-plate > .btn__icon {
  padding: 0.04rem;
  width: max(0.36rem, 22px) !important;
  height: max(0.36rem, 22px) !important;
}

.rs-loadout.hub-plate .btn__label {
  font-size: max(calc(.18 * var(--t)), 12px);
}

.rs-ready {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  margin-right: 0.14rem;
  font-size: max(calc(.16 * var(--t)), 11px);
  color: rgb(154, 161, 158);
  vertical-align: middle;
}

.rs-ready .icon {
  width: max(0.2rem, 13px);
  height: max(0.2rem, 13px);
  color: rgb(75, 80, 78);
}

.rs-ready .icon.is-on {
  color: rgb(79, 232, 192);
}

.rs-ready b {
  margin-left: 0.06rem;
  color: rgb(238, 240, 239);
}

.rs-foot__center {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.08rem;
}

.rs-hint {
  margin: 0px;
  font-size: max(calc(.18 * var(--t)), 12px);
  color: rgb(214, 218, 216);
  text-align: center;
}

.rs-hint .icon {
  width: 1.1em;
  height: 1.1em;
  margin-right: 4px;
  vertical-align: -2px;
}

.rs-pill {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.14rem;
  height: max(0.68rem, 40px);
  padding: 0px 0.08rem 0px 0.24rem;
  background: rgba(14, 15, 15, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  box-shadow: rgba(0, 0, 0, 0.5) 0px 0.04rem 0.16rem;
}

.rs-pill__mode {
  display: inline-flex;
  align-items: center;
  gap: 0.08rem;
  font-size: max(calc(.2 * var(--t)), 13px);
  font-weight: 700;
  color: rgb(233, 236, 235);
  white-space: nowrap;
}

.rs-pill__mode .icon {
  width: 1.1em;
  height: 1.1em;
}

.rs-pill__sep {
  width: 1px;
  height: 50%;
  background: rgba(255, 255, 255, 0.25);
}

.rs-pill__diff {
  display: inline-flex;
  align-items: center;
  gap: 0.08rem;
  height: 78%;
  padding: 0px 0.2rem;
  font-style: inherit;
  font-variant: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.2 * var(--t)), 13px);
  font-weight: 800;
  color: var(--d-color);
  background: color-mix(in srgb, var(--d-color) 22%, #151616);
  border: 0px;
  border-radius: 999px;
  cursor: pointer;
  white-space: nowrap;
}

.rs-pill__diff .icon {
  width: 1.2em;
  height: 1.2em;
}

.rs-pill__diff:disabled {
  cursor: default;
}

.rs-pill__diff:hover:not(:disabled) {
  filter: brightness(1.2);
}

.rs-pill__gear {
  display: grid;
  place-items: center;
  width: max(0.52rem, 32px);
  height: max(0.52rem, 32px);
  padding: 0px;
  color: rgb(27, 30, 29);
  background: linear-gradient(rgb(233, 237, 235), rgb(195, 202, 199));
  border: 2px solid rgb(14, 15, 15);
  border-radius: 50%;
  cursor: pointer;
}

.rs-pill__gear svg {
  width: 62%;
  height: 62%;
  fill: currentcolor;
}

.rs-pill__gear.is-on, .rs-pill__gear:hover {
  background: rgb(255, 255, 255);
}

.rs-opts {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 0.14rem);
  z-index: 10;
  transform: translateX(-50%);
  width: min(5.2rem, 92vw);
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  padding: 0.16rem 0.2rem;
  background: linear-gradient(rgb(32, 35, 35), rgb(20, 22, 22));
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: rgba(0, 0, 0, 0.7) 0px 0.1rem 0.4rem;
  animation: sw-in 140ms var(--ease-out) backwards;
}

.rs-opts h4 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin: 0px;
  font-size: max(calc(.2 * var(--t)), 13px);
}

.rs-opts h4 small {
  font-size: 0.75em;
  font-weight: 500;
  color: rgb(141, 147, 145);
}

.rs-opt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.14rem;
  font-size: max(calc(.18 * var(--t)), 12px);
}

.rs-opt > span {
  display: flex;
  flex-direction: column;
}

.rs-opt small {
  font-size: 0.8em;
  color: rgb(141, 147, 145);
}

.rs-opt input {
  order: 2;
  width: max(0.24rem, 16px);
  height: max(0.24rem, 16px);
  accent-color: var(--mint-500);
}

.rs-opt select {
  font: inherit;
  color: rgb(238, 240, 239);
  background: rgb(17, 19, 19);
  border: 1px solid rgba(255, 255, 255, 0.2);
  padding: 2px 6px;
}

.rs-opt--variant {
  flex-direction: column;
  align-items: stretch;
}

.rs-opts .ailast {
  display: flex;
  align-items: center;
  gap: 0.1rem;
}

.rs-foot__right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.14rem;
}

.rs-search {
  display: inline-flex;
  align-items: center;
  gap: 0.08rem;
  height: max(0.7rem, 40px);
  padding: 0px 0.26rem;
  font-style: inherit;
  font-variant: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.24 * var(--t)), 14px);
  font-weight: 800;
  color: rgb(93, 240, 198);
  background: rgba(10, 30, 25, 0.85);
  border: 2px solid rgba(79, 232, 192, 0.7);
  cursor: pointer;
  white-space: nowrap;
}

.rs-search:hover:not(:disabled) {
  background: rgba(20, 60, 48, 0.9);
}

.rs-search:disabled {
  opacity: 0.5;
  cursor: default;
}

.rs-search .icon {
  width: 1.1em;
  height: 1.1em;
}

.rs-go.proto-start {
  width: min(4.6rem, 40vw);
}

.rs-go__box {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: max(0.5rem, 28px);
  height: max(0.5rem, 28px);
  border: 3px solid;
  border-radius: 6px;
}

.rs-go__box .icon {
  width: 80%;
  height: 80%;
}

.rs-go.is-ready {
  background: linear-gradient(rgb(127, 243, 212), rgb(79, 224, 191));
}

.rs-searchpanel.mf-search {
  position: absolute;
  right: 0px;
  top: 0px;
  bottom: 0px;
  z-index: 5;
  width: min(6.2rem, 46vw);
  padding-top: 0.9rem;
  padding-bottom: 0.3rem;
  background: linear-gradient(90deg, transparent, rgba(6, 7, 7, 0.9) 18%, rgba(6, 7, 7, 0.96));
  animation: mf-found-in 240ms var(--ease-out) backwards;
}

.rs > .mf-found {
  position: absolute;
  right: 0px;
  top: 0px;
  bottom: 0px;
  z-index: 6;
  width: min(5.6rem, 44vw);
}

.rs-proto {
  position: absolute;
  inset: 0px;
  z-index: 7;
  display: grid;
  grid-template-columns: minmax(0px, 1fr) min(5.6rem, 46vw);
  background: rgba(5, 6, 6, 0.6);
  animation: sw-in 160ms var(--ease-out) backwards;
}

.rs-proto__scene {
  position: relative;
  opacity: 0.35;
  pointer-events: none;
  color: var(--d-color);
}

.rs-proto__scene .ps {
  inset: 0px;
  height: 100%;
}

.rs-proto__side {
  min-height: 0px;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  padding: 0.2rem 0.3rem 0.2rem 0px;
  background: linear-gradient(90deg, transparent, rgba(6, 7, 7, 0.9) 20%);
}

.rs-proto__title {
  margin: 0px;
  align-self: flex-end;
  font-size: max(calc(.34 * var(--t)), 18px);
  font-weight: 900;
}

.rs-proto__list {
  flex: 1 1 auto;
}

.rs-proto__ok.proto-start {
  flex: 0 0 auto;
  margin-left: 0.5rem;
  width: calc(100% - 0.5rem);
}

@media (max-height: 520px) {
  .rs-top {
    padding-top: 6px;
  }

  .rs-seats {
    padding-top: 14px;
    gap: 12px;
  }

  .rseat__plate {
    min-height: 36px;
    margin-top: 4px;
  }

  .rseat__doc {
    display: none;
  }

  .rs-foot {
    padding-bottom: 8px;
    gap: 8px;
  }

  .rs-go.proto-start, .rs-proto__ok.proto-start {
    height: 46px;
  }

  .rs-go .proto-start__mark {
    display: none;
  }

  .rs-search {
    height: 40px;
  }

  .rs-loadout.hub-plate {
    min-width: 0px;
  }

  .rs-loadout .btn__label {
    display: none;
  }

  .mf-search {
    gap: 4px;
    padding: 8px 10px;
    overflow-y: auto;
  }

  .mf-search__scene {
    width: min(100%, 200px);
    padding: 4px 16px;
  }

  .mf-search__tip {
    min-height: 0px;
  }

  .mf-stop {
    margin-top: 4px;
    height: 32px;
  }

  .rs-searchpanel.mf-search {
    padding-top: 48px;
  }

  .mf-found__lines {
    max-height: 40%;
  }
}

.mf-brand {
  white-space: nowrap;
}

@media (max-width: 900px) {
  .rs-foot {
    grid-template-columns: auto minmax(0px, 1fr);
  }

  .rs-foot__center {
    grid-area: 1 / 1 / auto / -1;
  }

  .rs-tools {
    display: none;
  }

  .rs-key__k {
    display: none;
  }

  .rs-key__friends {
    min-width: 44px;
    justify-content: center;
    padding: 0px 8px;
  }
}

@media (max-width: 640px) {
  .rs-key__friends span {
    display: none;
  }
}

@media (max-aspect-ratio: 1 / 1) {
  .ally-body {
    grid-template-columns: minmax(0px, 1fr);
    grid-template-rows: minmax(0px, 0.7fr) auto;
  }

  .rs-seats {
    justify-content: flex-start;
  }

  .rseat {
    --w: max(1.8rem, 42vw);
  }

  .rs-searchpanel.mf-search, .rs > .mf-found {
    width: 100%;
    background: rgba(6, 7, 7, 0.94);
  }

  .rs-proto {
    grid-template-columns: minmax(0px, 1fr);
  }

  .rs-proto__scene {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mf-scout *, .mf-scout__wave, .mf-radar__sweep, .mf-radar__blip, .mf-blk.is-lit, .mf-found__lines path, .rseat, .rseat__wait {
    animation: auto ease 0s 1 normal none running none !important;
  }

  .mf-found__lines path {
    stroke-dashoffset: 0;
  }
}

:root {
  --tr-ease: cubic-bezier(.16, .84, .3, 1);
}

@keyframes tr-fade {
  0% {
    opacity: 0;
  }
}

@keyframes tr-out {
  100% {
    opacity: 0;
  }
}

@keyframes tr-veil {
  0% {
    background-color: transparent;
  }
}

@keyframes tr-lift {
  100% {
    background-color: transparent;
  }
}

@keyframes tr-right {
  0% {
    opacity: 0;
    transform: translateX(0.36rem);
  }
}

@keyframes tr-left {
  0% {
    opacity: 0;
    transform: translateX(-0.36rem);
  }
}

@keyframes tr-rise {
  0% {
    opacity: 0;
    transform: translateY(0.22rem);
  }
}

@keyframes tr-zoom {
  0% {
    opacity: 0;
    transform: scale(1.04);
  }
}

@keyframes tr-pop {
  0% {
    opacity: 0;
    transform: scale(0.4);
  }
}

@keyframes tr-card {
  0% {
    opacity: 0;
    transform: translateY(0.16rem) scale(1.03);
    filter: brightness(1.9) saturate(0.3);
  }

  55% {
    filter: none;
  }
}

@keyframes tr-diamond {
  0% {
    opacity: 0;
    transform: translateX(-50%) rotate(45deg) scale(0.5);
  }

  30%, 72% {
    opacity: 1;
    transform: translateX(-50%) rotate(45deg) scale(1);
  }

  100% {
    opacity: 0;
    transform: translateX(-50%) rotate(45deg) scale(1.1);
  }
}

@keyframes tr-draw {
  100% {
    stroke-dashoffset: 0;
  }
}

.sw {
  background-color: rgb(8, 9, 9);
}

.proto, .sw {
  animation: 150ms linear 0s 1 normal backwards running tr-veil;
}

.proto.is-chained {
  animation: auto ease 0s 1 normal none running none;
}

.proto__bg, .sw__bg {
  animation: 340ms ease-out 140ms 1 normal backwards running tr-fade;
}

.proto-top, .sw-top {
  animation: 260ms ease-out 170ms 1 normal backwards running tr-fade;
}

.proto-title, .sw-tabs {
  animation: tr-right 400ms var(--tr-ease) 200ms backwards;
}

.proto-stage, .ally-stage {
  animation: tr-zoom 480ms var(--tr-ease) 190ms backwards;
}

.proto-list .pcard {
  animation-delay: calc(240ms + var(--n, 0) * 60ms);
}

.proto-list .pcard:nth-child(2) {
  --n: 1;
}

.proto-list .pcard:nth-child(3) {
  --n: 2;
}

.proto-list .pcard:nth-child(4) {
  --n: 3;
}

.proto-list .pcard:nth-child(5) {
  --n: 4;
}

.proto-foot {
  animation: tr-rise 400ms var(--tr-ease) 440ms backwards;
}

.ally-card--create {
  animation: tr-right 420ms var(--tr-ease) 240ms backwards;
}

.ally-links {
  animation: tr-right 420ms var(--tr-ease) 310ms backwards;
}

.ally-card--join {
  animation: tr-right 420ms var(--tr-ease) 380ms backwards;
}

.ally-guide {
  animation: tr-rise 380ms var(--tr-ease) 450ms backwards;
}

.sw-left {
  animation: tr-left 440ms var(--tr-ease) 230ms backwards;
}

.sw-right {
  animation: tr-right 440ms var(--tr-ease) 280ms backwards;
}

.sw-right > * {
  animation: 260ms ease-out 0s 1 normal backwards running tr-fade;
}

.proto::after, .sw::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: max(0.5rem, 24px);
  z-index: 9;
  width: max(0.3rem, 16px);
  height: max(0.3rem, 16px);
  border: 2px solid rgba(223, 230, 226, 0.55);
  box-shadow: rgb(10, 11, 11) 0px 0px 0px 3px inset, rgba(223, 230, 226, 0.3) 0px 0px 0px 5px inset;
  pointer-events: none;
  opacity: 0;
  animation: 720ms ease-out 60ms 1 normal both running tr-diamond;
}

.proto.is-chained::after {
  animation-delay: 0ms;
}

.proto.is-leaving, .sw.is-leaving {
  pointer-events: none;
  animation: 170ms linear 130ms 1 normal forwards running tr-lift;
}

.proto.is-leaving > *, .sw.is-leaving > * {
  animation: 140ms ease-in 0s 1 normal forwards running tr-out;
}

.proto.is-leaving::after, .sw.is-leaving::after {
  display: none;
}

.tr-join {
  position: absolute;
  left: 0px;
  right: 0px;
  bottom: 0px;
  z-index: 8;
  display: flex;
  align-items: center;
  gap: 0.1rem;
  padding: 0px max(0.24rem, 12px) max(0.05rem, 3px);
  font-size: max(calc(.19 * var(--t)), 12px);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgb(93, 240, 198);
  text-shadow: rgba(93, 240, 198, 0.45) 0px 0px 0.12rem;
  pointer-events: none;
  animation: 200ms ease-out 0s 1 normal backwards running tr-fade;
}

.tr-join::after {
  content: "";
  position: absolute;
  left: 0px;
  right: 0px;
  bottom: 0px;
  height: 2px;
  transform-origin: left center;
  background: linear-gradient(90deg, rgba(93, 240, 198, 0.2), rgb(93, 240, 198) 40%, rgb(201, 255, 240) 50%, rgb(93, 240, 198) 60%, rgba(93, 240, 198, 0.2));
  box-shadow: rgb(93, 240, 198) 0px 0px 10px;
  animation: tr-run 1.4s var(--tr-ease) both;
}

@keyframes tr-run {
  0% {
    transform: scaleX(0);
  }

  100% {
    transform: scaleX(1);
  }
}

.tr-join__mark {
  width: max(0.24rem, 14px);
  height: max(0.24rem, 14px);
  flex: 0 0 auto;
  border: 2px solid;
  border-radius: 3px;
  background: linear-gradient(currentcolor, currentcolor) center center / 40% 40% no-repeat;
  animation: 1.4s steps(8) 0s infinite normal none running spin;
}

.tr-join__dots {
  display: inline-block;
  width: 0px;
  overflow: hidden;
  white-space: nowrap;
  vertical-align: bottom;
  animation: 1.2s steps(4, jump-none) 0s infinite normal none running tr-dots;
}

.tr-join__dots::before {
  content: "...";
}

@keyframes tr-dots {
  100% {
    width: 1.1em;
  }
}

.pcard.is-on .pcard__ring path {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  animation: 380ms ease-out 90ms 1 normal forwards running tr-draw;
}

.pcard.is-on .pcard__ring path + path {
  animation-delay: 260ms;
}

.ps {
  animation: 320ms ease-out 0s 1 normal backwards running tr-fade;
}

.lobby-hub .hub-bg {
  animation: 560ms ease-out 0s 1 normal backwards running tr-fade;
}

.lobby-hub > .topbar {
  animation: 320ms ease-out 120ms 1 normal backwards running tr-fade;
}

.hub-center {
  animation: tr-zoom 600ms var(--tr-ease) 140ms backwards;
}

.hub-side {
  animation: tr-left 480ms var(--tr-ease) 220ms backwards;
}

.hub-right {
  animation: tr-right 480ms var(--tr-ease) 260ms backwards;
}

.hub-entries .hub-entry-wrap {
  animation: tr-rise 440ms var(--tr-ease) 300ms backwards;
}

.hub-entries .hub-entry-wrap:nth-child(2) {
  animation-delay: 360ms;
}

.hub-entries .hub-entry-wrap:nth-child(3) {
  animation-delay: 420ms;
}

.hub-entries .hub-entry-wrap:nth-child(4) {
  animation-delay: 480ms;
}

.rs__bg {
  animation: 440ms ease-out 0s 1 normal backwards running tr-fade;
}

.rs-top {
  animation: 320ms ease-out 120ms 1 normal backwards running tr-fade;
}

.rseat {
  animation-delay: calc(150ms + var(--i, 0) * 70ms);
}

.rs--big .rseat {
  animation-delay: calc(150ms + var(--i, 0) * 35ms);
}

.rs-brief {
  animation: tr-right 440ms var(--tr-ease) 260ms backwards;
}

.rs-foot {
  animation: tr-rise 420ms var(--tr-ease) 300ms backwards;
}

.rs-foot__right {
  animation: tr-right 440ms var(--tr-ease) 380ms backwards;
}

.rs.is-leaving {
  pointer-events: none;
}

.rs.is-leaving > * {
  animation: 200ms ease-in 0s 1 normal forwards running tr-out;
}

.rseat--empty {
  transition: opacity 320ms;
}

.rseat--empty.is-searching {
  opacity: 0.5;
}

.rseat.is-flash .rseat__art {
  animation: 700ms ease-out 0s 1 normal none running tr-glow;
}

@keyframes tr-glow {
  20% {
    box-shadow: rgba(120, 255, 215, 0.9) 0px 0px 0.5rem, rgb(185, 255, 233) 0px 0px 0.12rem;
    border-color: rgb(185, 255, 233);
  }
}

.rseat.is-flash .rseat__art::before {
  content: "";
  position: absolute;
  inset: 0px;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(rgba(214, 255, 243, 0.95), rgba(79, 232, 192, 0.7));
  animation: 700ms ease-out 0s 1 normal forwards running tr-wash;
}

@keyframes tr-wash {
  0% {
    opacity: 0;
  }

  14% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

.rseat.is-flash .rseat__clip::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 100%;
  width: 6px;
  height: 0.16rem;
  transform-origin: 50% 100%;
  background: linear-gradient(0deg, rgb(201, 255, 240), rgba(93, 240, 198, 0));
  box-shadow: rgb(93, 240, 198) 0px 0px 8px;
  animation: 700ms ease-out 0s 1 normal forwards running tr-beam;
}

@keyframes tr-beam {
  0% {
    opacity: 0;
    transform: translateX(-50%) scaleY(0);
  }

  22% {
    opacity: 1;
    transform: translateX(-50%) scaleY(1);
  }

  100% {
    opacity: 0;
    transform: translateX(-50%) scaleY(1.3);
  }
}

.rseat.is-flash .rseat__state {
  animation: 380ms cubic-bezier(0.3, 1.7, 0.5, 1) 100ms 1 normal backwards running tr-pop;
}

.rs-proto {
  animation: 160ms linear 0s 1 normal backwards running tr-veil;
}

.rs-proto__scene {
  animation: 360ms ease-out 100ms 1 normal backwards running tr-fade;
}

.rs-proto__side {
  animation: tr-right 380ms var(--tr-ease) 60ms backwards;
}

.rs-proto .proto-list .pcard {
  animation-delay: calc(110ms + var(--n, 0) * 50ms);
}

.rs-proto.is-leaving {
  pointer-events: none;
  animation: 200ms linear 0s 1 normal forwards running tr-lift;
}

.rs-proto.is-leaving > * {
  animation: 200ms ease-in 0s 1 normal forwards running tr-slide-out;
}

@keyframes tr-slide-out {
  100% {
    opacity: 0;
    transform: translateX(0.36rem);
  }
}

.rs-opts {
  transform-origin: 50% 100%;
  animation: tr-pop-up 200ms var(--tr-ease) backwards;
}

@keyframes tr-pop-up {
  0% {
    opacity: 0;
    transform: translateX(-50%) translateY(0.12rem) scale(0.96);
  }
}

.rs-opts.is-leaving {
  pointer-events: none;
  animation: 150ms ease-in 0s 1 normal forwards running tr-pop-down;
}

@keyframes tr-pop-down {
  100% {
    opacity: 0;
    transform: translateX(-50%) translateY(0.08rem) scale(0.97);
  }
}

.rs-searchpanel.mf-search {
  animation: 260ms ease-out 0s 1 normal backwards running tr-fade;
}

.mf-search > * {
  animation-delay: 60ms;
}

.mf-search > :nth-child(2) {
  animation-delay: 110ms;
}

.mf-search > :nth-child(3) {
  animation-delay: 160ms;
}

.mf-search > :nth-child(4) {
  animation-delay: 210ms;
}

.mf-search > :nth-child(5) {
  animation-delay: 260ms;
}

.mf-search > :nth-child(6) {
  animation-delay: 300ms;
}

.mf-search > :nth-child(7) {
  animation-delay: 340ms;
}

.mf-search.is-leaving {
  pointer-events: none;
  animation: 200ms ease-in 0s 1 normal forwards running tr-out;
}

.mf-found {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  animation: tr-found 380ms var(--tr-ease) backwards, tr-found-glow 1.8s ease-in-out 700ms infinite alternate;
}

@keyframes tr-found {
  0% {
    clip-path: inset(0px 0px 0px 100%);
    filter: brightness(2.4) saturate(0.6);
  }

  55% {
    clip-path: inset(0px);
    filter: brightness(1.7);
  }

  100% {
    clip-path: inset(0px);
    filter: none;
  }
}

@keyframes tr-found-glow {
  0% {
    box-shadow: rgba(150, 255, 222, 0.2) 0px -0.2rem 0.5rem -0.2rem inset;
  }

  100% {
    box-shadow: rgba(150, 255, 222, 0.6) 0px -0.5rem 0.9rem -0.2rem inset;
  }
}

.mf-found::before, .mf-found::after {
  content: "";
  position: absolute;
  left: 0px;
  right: 0px;
  z-index: 4;
  pointer-events: none;
  opacity: 0;
  background: repeating-linear-gradient(0deg, rgba(225, 255, 246, 0.5) 0px, rgba(225, 255, 246, 0.5) 1px, transparent 1px, transparent 3px), linear-gradient(90deg, rgb(47, 214, 166), rgb(123, 255, 216) 40%, rgb(47, 214, 166));
}

.mf-found::before {
  top: 6%;
  height: 38%;
  animation: 560ms steps(1) 0s 1 normal backwards running tr-glitch-a;
}

.mf-found::after {
  top: 52%;
  height: 30%;
  animation: 560ms steps(1) 0s 1 normal backwards running tr-glitch-b;
}

@keyframes tr-glitch-a {
  0% {
    opacity: 1;
    transform: translateX(30%);
  }

  14% {
    opacity: 1;
    transform: translateX(-8%) scaleY(1.2);
  }

  28% {
    opacity: 0.85;
    transform: translateX(12%) scaleY(0.5);
  }

  42% {
    opacity: 0.6;
    transform: translateX(-4%);
  }

  56% {
    opacity: 0.9;
    transform: scaleY(0.2);
  }

  70%, 100% {
    opacity: 0;
    transform: none;
  }
}

@keyframes tr-glitch-b {
  0% {
    opacity: 0;
  }

  10% {
    opacity: 0.95;
    transform: translateX(-24%);
  }

  24% {
    opacity: 0.95;
    transform: translateX(10%) scaleY(0.6);
  }

  38% {
    opacity: 0.7;
    transform: translateX(-6%) scaleY(1.3);
  }

  52% {
    opacity: 0.4;
    transform: none;
  }

  64%, 100% {
    opacity: 0;
    transform: none;
  }
}

.mf-found > .mf-brand {
  animation: 260ms ease-out 260ms 1 normal backwards running tr-fade;
}

.mf-found__lines {
  animation: 200ms ease-out 240ms 1 normal backwards running tr-fade;
}

.mf-found__lines path {
  animation-delay: calc(260ms + var(--k) * 40ms);
}

.mf-found__face {
  animation: 460ms cubic-bezier(0.3, 1.7, 0.5, 1) 420ms 1 normal backwards running tr-pop;
}

.mf-found__title {
  animation: tr-rise 320ms var(--tr-ease) 520ms backwards;
}

.mf-found__sub {
  animation: 300ms ease-out 620ms 1 normal backwards running tr-fade;
}

.mf-found.is-leaving {
  animation: 320ms ease-in 0s 1 normal forwards running tr-out;
}

@media (prefers-reduced-motion: reduce) {
  .proto, .sw, .proto *, .sw *, .proto::after, .sw::after, .lobby-hub *, .rs *, .rs__bg, .mf-found, .mf-found::before, .mf-found::after {
    animation-delay: 0ms !important;
  }

  .proto::after, .sw::after, .mf-found::before, .mf-found::after, .tr-join::after {
    display: none;
  }
}

.hub-ach {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  margin-bottom: 0.1rem;
  padding: 0px;
  cursor: pointer;
  text-align: left;
  color: rgb(238, 243, 241);
  background: rgb(12, 17, 16);
  border: 1px solid rgba(220, 230, 226, 0.16);
  box-shadow: rgba(0, 0, 0, 0.45) 0px 0.04rem 0.16rem;
  transition: border-color var(--t-fast, 150ms), filter var(--t-fast, 150ms);
  font: inherit;
}

.hub-ach:hover, .hub-ach:focus-visible {
  border-color: var(--mint-a35, rgba(78, 216, 175, .35));
  filter: brightness(1.08);
  outline: none;
}

.hub-ach:focus-visible {
  box-shadow: 0 0 0 2px var(--mint-400);
}

.hub-ach__scene {
  position: relative;
  height: 0.88rem;
  overflow: hidden;
  display: grid;
  place-items: center;
}

.hub-ach__land {
  position: absolute;
  inset: 0px;
  width: 100%;
  height: 100%;
}

.hub-ach__scene::after {
  content: "";
  position: absolute;
  inset: 0px;
  pointer-events: none;
  background: repeating-linear-gradient(0deg, rgba(0, 0, 0, 0.18) 0px, rgba(0, 0, 0, 0.18) 1px, transparent 1px, transparent 3px), linear-gradient(90deg, rgba(8, 10, 10, 0.55), transparent 40%);
}

.hub-ach .hub-ach__mark {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
}

.hub-ach .hub-ach__mark .emblem {
  margin: 0px;
  gap: 0.06rem;
  animation: auto ease 0s 1 normal none running none;
}

.hub-ach .hub-ach__mark .emblem__svg {
  width: 0.52rem;
  height: 0.56rem;
  filter: drop-shadow(rgba(0, 0, 0, 0.6) 0px 0px 0.04rem);
}

.hub-ach .hub-ach__mark .emblem__svg circle {
  fill: rgb(21, 17, 12);
  animation: auto ease 0s 1 normal none running none;
}

.hub-ach .hub-ach__mark .emblem__svg circle.is-accent {
  fill: rgb(44, 240, 184);
}

.hub-ach .hub-ach__mark .emblem__bracket {
  height: 0.66rem;
  width: 0.07rem;
  border-width: 1px;
  border-color: rgba(20, 16, 10, 0.55);
}

.hub-ach__rank {
  position: absolute;
  left: 0.1rem;
  top: 0.1rem;
  z-index: 1;
  width: 0.52rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.01rem;
  padding: 0.04rem 0px 0.03rem;
  background: rgba(14, 18, 17, 0.55);
  border: 1px solid rgba(240, 244, 243, 0.4);
}

.hub-ach__rank > .icon {
  width: 0.3rem;
  height: 0.3rem;
  color: rgb(238, 243, 241);
}

.hub-ach__rank small {
  display: inline-flex;
  align-items: center;
  gap: 0.02rem;
  font-size: 0.13rem;
  color: rgb(230, 235, 233);
}

.hub-ach__rank small .icon {
  width: 0.12rem;
  height: 0.12rem;
}

.hub-ach__label {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.08rem;
  height: 0.42rem;
  padding: 0px 0.14rem;
  background: linear-gradient(90deg, rgba(20, 26, 25, 0.96), rgba(14, 18, 17, 0.96));
  border-top: 1px solid rgba(220, 230, 226, 0.14);
  font-size: 0.21rem;
  font-weight: 700;
  white-space: nowrap;
  flex-wrap: wrap;
  min-height: 0.46rem;
}

.hub-ach__label::before, .hub-ach__label::after {
  content: "";
  position: absolute;
  top: 0.06rem;
  bottom: 0.06rem;
  width: 0.06rem;
  border: 1px solid rgba(220, 230, 226, 0.3);
}

.hub-ach__label::before {
  left: 0.04rem;
  border-right: 0px;
}

.hub-ach__label::after {
  right: 0.04rem;
  border-left: 0px;
}

.hub-ach__badge {
  width: 0.24rem;
  height: 0.24rem;
  fill: rgb(232, 238, 236);
  flex: 0 0 auto;
}

.hub-ach__lv {
  margin-left: auto;
  font-size: 0.15rem;
  color: var(--mint-400);
  font-weight: 600;
}

.hub-ach__login {
  color: rgb(185, 194, 191);
}

.hub-ach.is-guest .hub-ach__scene {
  filter: saturate(0.55) brightness(0.8);
}

.ach {
  position: fixed;
  inset: 0px;
  z-index: var(--z-modal);
  display: grid;
  place-items: center;
  background: rgba(2, 4, 4, 0.62);
  backdrop-filter: blur(6px);
  animation: 140ms ease 0s 1 normal both running ach-fade;
}

.ach.is-closing {
  animation: 180ms ease 0s 1 reverse forwards running ach-fade;
}

@keyframes ach-fade {
  0% {
    opacity: 0;
  }
}

.ach__loader {
  position: absolute;
  left: 50%;
  bottom: 9%;
  width: 0.9rem;
  height: 0.9rem;
  margin-left: -0.45rem;
  display: grid;
  place-items: center;
  pointer-events: none;
}

.ach__loader i, .ach__loader b {
  grid-area: 1 / 1;
  transform: rotate(45deg);
}

.ach__loader i {
  width: 0.56rem;
  height: 0.56rem;
  border: 2px solid rgba(240, 244, 243, 0.9);
  animation: ach-dia 1.1s var(--ease-out) infinite;
}

.ach__loader i + i {
  animation-delay: 0.55s;
}

.ach__loader b {
  width: 0.24rem;
  height: 0.24rem;
  border: 2px solid rgb(244, 247, 246);
  animation: 1.1s linear 0s infinite normal none running ach-dia-core;
}

@keyframes ach-dia {
  0% {
    transform: rotate(45deg) scale(0.55);
    opacity: 1;
  }

  100% {
    transform: rotate(45deg) scale(1.4);
    opacity: 0;
  }
}

@keyframes ach-dia-core {
  100% {
    transform: rotate(225deg);
  }
}

.ach__box {
  position: relative;
  width: min(17.4rem, -1.1rem + 100vw);
  height: min(9.06rem, calc(var(--sp-vh, 1vh) * 100 - .9rem));
  display: flex;
  flex-direction: column;
  background: radial-gradient(60% 70% at 70% 60%, rgba(30, 70, 62, 0.3), transparent 70%), rgb(10, 13, 13);
  box-shadow: rgba(220, 230, 226, 0.1) 0px 0px 0px 1px, rgba(0, 0, 0, 0.7) 0px 0.2rem 0.6rem;
  animation: ach-in 240ms var(--ease-out) both;
}

@keyframes ach-in {
  0% {
    opacity: 0;
    transform: scale(0.985);
  }
}

.ach__box::after {
  content: "";
  position: absolute;
  inset: 0px;
  pointer-events: none;
  background: repeating-linear-gradient(0deg, rgba(0, 0, 0, 0.16) 0px, rgba(0, 0, 0, 0.16) 1px, transparent 1px, transparent 4px);
}

.ach__head {
  position: relative;
  flex: 0 0 auto;
  height: 1.27rem;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  background: linear-gradient(rgb(27, 31, 30), rgb(20, 23, 22));
  border-bottom: 1px solid rgba(220, 230, 226, 0.08);
}

.ach__head::before {
  content: "";
  position: absolute;
  left: 0px;
  top: 0px;
  bottom: 0px;
  width: 4.6rem;
  opacity: 0.35;
  pointer-events: none;
  background: linear-gradient(160deg, transparent 40%, rgba(150, 160, 158, 0.35) 41%, rgba(150, 160, 158, 0.35) 46%, transparent 47%), linear-gradient(200deg, transparent 50%, rgba(150, 160, 158, 0.3) 51%, rgba(150, 160, 158, 0.3) 55%, transparent 56%);
}

.ach__logo {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.1rem;
  padding-left: 0.45rem;
  color: rgb(167, 176, 173);
}

.ach__logo svg {
  width: 0.5rem;
  height: 0.38rem;
}

.ach__logo b {
  font-family: var(--font-display);
  font-size: 0.17rem;
  line-height: 0.95;
  font-weight: 600;
}

.ach__band {
  position: relative;
  margin-left: auto;
  width: 8.7rem;
  display: flex;
  align-items: center;
  gap: 0.3rem;
  padding-left: 2.2rem;
  background: linear-gradient(90deg, transparent, rgba(220, 128, 36, 0.82) 24%, rgb(240, 162, 58) 60%, rgb(243, 176, 74));
}

.ach__band::before {
  content: "";
  position: absolute;
  inset: 0px;
  pointer-events: none;
  background: repeating-linear-gradient(100deg, rgba(0, 0, 0, 0.08) 0px, rgba(0, 0, 0, 0.08) 2px, transparent 2px, transparent 9px);
}

.ach__dunes {
  position: absolute;
  inset: 0px;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.ach__dunes path {
  fill: rgba(150, 64, 8, 0.3);
}

.ach__dunes path.is-far {
  fill: rgba(255, 220, 150, 0.2);
}

.ach__band .emblem {
  margin: 0px;
  gap: 0.06rem;
  animation: auto ease 0s 1 normal none running none;
}

.ach__band .emblem__svg {
  width: 0.7rem;
  height: 0.76rem;
}

.ach__band .emblem__svg circle {
  fill: rgb(21, 17, 12);
  animation: auto ease 0s 1 normal none running none;
}

.ach__band .emblem__svg circle.is-accent {
  fill: rgb(21, 17, 12);
  filter: none;
}

.ach__band .emblem__bracket {
  height: 0.95rem;
  width: 0.1rem;
  border-width: 2px;
  border-color: rgba(20, 16, 10, 0.7);
}

.ach__titles {
  position: relative;
  display: flex;
  flex-direction: column;
  line-height: 1.05;
}

.ach__titles i {
  font-family: var(--font-display);
  font-style: normal;
  font-size: 0.3rem;
  letter-spacing: 0.06em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(30, 22, 12, 0.6);
}

.ach__titles b {
  font-size: 0.38rem;
  font-weight: 900;
  color: rgb(22, 17, 10);
  white-space: nowrap;
}

.ach__body {
  position: relative;
  z-index: 1;
  flex: 1 1 0%;
  min-height: 0px;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0.1rem 0.7rem 0.5rem 0.66rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(220, 230, 226, 0.45) transparent;
}

.ach__body::-webkit-scrollbar {
  width: 0.07rem;
}

.ach__body::-webkit-scrollbar-thumb {
  background: rgba(220, 230, 226, 0.45);
  border-radius: 0.04rem;
}

.ach__close {
  position: absolute;
  right: -0.52rem;
  top: -0.36rem;
  z-index: 2;
  width: 0.5rem;
  height: 0.5rem;
  display: grid;
  place-items: center;
  padding: 0px;
  border: 0px;
  background: none;
  color: rgb(244, 247, 246);
  cursor: pointer;
}

.ach__close .icon {
  width: 0.5rem;
  height: 0.5rem;
  filter: drop-shadow(rgb(0, 0, 0) 0px 0px 0.04rem);
}

.ach__close:hover, .ach__close:focus-visible {
  color: var(--mint-400);
  outline: none;
}

.ach__foot {
  position: absolute;
  right: -0.06rem;
  bottom: -0.16rem;
  z-index: 2;
  padding: 0.06rem 0.16rem;
  font-size: 0.2rem;
  color: rgb(226, 232, 230);
  background: rgba(16, 22, 21, 0.94);
  box-shadow: rgba(78, 216, 175, 0.35) 0px 0px 0px 1px inset;
}

@media (max-width: 1100px) {
  .ach__close {
    right: 0.06rem;
    top: 0.06rem;
  }
}

.ach-top-area {
  display: grid;
  grid-template-columns: minmax(0px, 9.1rem) minmax(0px, 1fr);
  gap: 0.3rem;
  padding-top: 0.3rem;
}

.ach-plate {
  display: flex;
  gap: 0.24rem;
  align-items: flex-start;
}

.ach-card {
  position: relative;
  width: 6.15rem;
  height: 1.92rem;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0.18rem;
  padding: 0.16rem;
  overflow: hidden;
  border-radius: 0.06rem;
  background: linear-gradient(118deg, rgb(226, 52, 67) 0px, rgb(226, 52, 67) 46%, rgb(43, 46, 51) 46%, rgb(43, 46, 51) 50%, rgb(242, 244, 243) 50%, rgb(242, 244, 243) 56%, rgb(47, 182, 198) 56%);
}

.ach-card::after {
  content: "";
  position: absolute;
  inset: 0px;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.25), transparent 60%);
  pointer-events: none;
}

.ach-card__ava {
  position: relative;
  z-index: 1;
  width: 1.6rem;
  height: 1.6rem;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  background: rgb(29, 36, 35);
  border: 2px solid rgb(244, 247, 246);
}

.ach-card__ava img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

button.ach-card__ava {
  padding: 0px;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

button.ach-card__ava:hover, button.ach-card__ava:focus-visible {
  border-color: var(--mint-400);
}

.ach-card__glyph {
  font-size: 0.7rem;
  font-weight: 900;
  color: rgb(74, 242, 196);
}

.ach-card__lv {
  position: absolute;
  left: -0.16rem;
  top: -0.14rem;
  width: 0.5rem;
  height: 0.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 0.9;
  border-radius: 50%;
  background: rgb(17, 17, 17);
  border: 3px solid rgb(255, 210, 30);
  color: rgb(255, 255, 255);
}

.ach-card__lv b {
  font-family: var(--font-display);
  font-size: 0.2rem;
}

.ach-card__lv small {
  font-size: 0.09rem;
}

.ach-card__who {
  position: relative;
  z-index: 1;
  min-width: 0px;
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  align-self: flex-start;
  padding-top: 0.16rem;
}

.ach-card__name {
  font-size: 0.3rem;
  font-weight: 600;
  color: rgb(255, 255, 255);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-shadow: rgba(0, 0, 0, 0.5) 0px 0.02rem 0.04rem;
}

.ach-card__tag {
  margin-left: 0.02rem;
  color: rgba(255, 255, 255, 0.8);
  font-weight: 400;
}

.ach-card__id {
  align-self: flex-start;
  padding: 0.02rem 0.1rem;
  font-size: 0.19rem;
  color: rgb(240, 214, 216);
  background: rgba(120, 10, 20, 0.55);
  border-radius: 0.03rem;
  white-space: nowrap;
}

.ach-card__brand {
  position: absolute;
  right: 0.16rem;
  bottom: 0.12rem;
  z-index: 1;
  font-family: var(--font-display);
  font-size: 0.15rem;
  line-height: 0.95;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  text-align: right;
}

.ach-counts {
  display: grid;
  grid-template-columns: auto auto;
  gap: 0.14rem 0.12rem;
  align-items: center;
  padding-top: 0.06rem;
}

.ach-counts__badge {
  width: 0.64rem;
  height: 0.64rem;
  display: grid;
  place-items: center;
}

.ach-counts__badge svg {
  width: 100%;
  height: 100%;
}

.ach-counts__badge.is-trophy .tbadge {
  width: 100%;
  height: 100%;
}

.ach-counts__badge.is-like rect {
  fill: rgb(232, 130, 58);
  stroke: rgb(255, 226, 198);
  stroke-width: 2;
}

.ach-counts__ink {
  fill: rgb(42, 22, 6);
}

.ach-counts__row {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}

.ach-counts__row small {
  display: inline-flex;
  align-items: center;
  gap: 0.04rem;
  font-size: 0.22rem;
  color: rgb(185, 194, 191);
  white-space: nowrap;
}

.ach-counts__row small .icon {
  width: 0.18rem;
  height: 0.18rem;
}

.ach-counts__row b {
  font-family: var(--font-display);
  font-size: 0.3rem;
  color: rgb(244, 247, 246);
}

.ach-modes {
  margin-top: 0.3rem;
  background: rgba(22, 32, 30, 0.55);
}

.ach-modes__row {
  display: grid;
  grid-template-columns: 1.75rem repeat(3, minmax(0px, 1fr));
  align-items: center;
  height: 1.8rem;
}

.ach-modes__row + .ach-modes__row .ach-modes__cell {
  border-top: 1px solid rgba(220, 230, 226, 0.1);
}

.ach-modes__mode {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.06rem;
  background: rgba(28, 92, 80, 0.42);
  color: rgb(74, 242, 196);
}

.ach-modes__mode .icon {
  width: 0.24rem;
  height: 0.24rem;
}

.ach-modes__mode b {
  font-size: 0.28rem;
  white-space: nowrap;
}

.ach-modes__cell {
  height: 1.2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-left: 0.3rem;
}

.ach-modes__cell b {
  font-family: var(--font-display);
  font-size: 0.42rem;
  line-height: 1.05;
  color: rgb(74, 242, 196);
  font-weight: 500;
}

.ach-modes__cell small {
  font-size: 0.25rem;
  color: rgb(169, 179, 176);
  white-space: nowrap;
}

.ach-hex {
  position: relative;
  min-height: 4.4rem;
}

.ach-hex__svg {
  position: absolute;
  inset: 0px;
  width: 100%;
  height: 100%;
  overflow: visible;
  filter: drop-shadow(rgba(74, 242, 196, 0.3) 0px 0px 0.14rem);
}

.ach-hex__seg polygon {
  fill: rgb(92, 211, 178);
  stroke: rgba(225, 255, 246, 0.32);
  stroke-width: 1.5;
  stroke-linejoin: round;
}

.ach-hex__ticks line {
  stroke: rgba(8, 48, 38, 0.34);
  stroke-width: 2;
}

.ach-hex__hub {
  fill: rgb(11, 16, 15);
  stroke: rgba(8, 48, 38, 0.7);
  stroke-width: 5;
}

.ach-hex__seg {
  animation: ach-seg 380ms var(--ease-out) calc(60ms + var(--i) * 50ms) both;
  transform-origin: 0px 0px;
}

@keyframes ach-seg {
  0% {
    opacity: 0;
    transform: scale(0.72);
  }
}

.ach-hex__cap {
  position: absolute;
  left: 0.1rem;
  top: 0px;
  display: grid;
  grid-template-columns: auto auto;
  column-gap: 0.08rem;
  align-items: center;
  font-family: var(--font-display);
  font-size: 0.16rem;
  letter-spacing: 0.04em;
  color: rgba(220, 230, 226, 0.3);
  white-space: nowrap;
  pointer-events: none;
}

.ach-hex__cap i {
  width: 0.06rem;
  height: 0.06rem;
  background: var(--mint-400);
}

.ach-hex__cap small {
  grid-column: 2;
  width: 0.5rem;
  height: 0.08rem;
  margin-top: 0.04rem;
  background: rgba(74, 242, 196, 0.4);
}

.ach-hex__label {
  position: absolute;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.15;
  white-space: nowrap;
  isolation: isolate;
  animation: ach-pop 320ms var(--ease-out) calc(180ms + var(--i) * 50ms) both;
}

.ach-hex__label b {
  position: relative;
  padding: 0px 0.1rem;
  font-family: var(--font-display);
  font-size: 0.32rem;
  color: rgb(218, 255, 244);
  font-weight: 600;
  text-shadow: rgba(74, 242, 196, 0.9) 0px 0px 0.08rem;
}

.ach-hex__label b::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 18% -4%;
  border-radius: 0.2rem;
  background: rgba(74, 242, 196, 0.26);
  filter: blur(0.05rem);
}

.ach-hex__label span {
  font-size: 0.25rem;
  color: rgb(223, 230, 227);
}

.ach-bar {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.2rem;
  height: 0.66rem;
  margin: 0.5rem 0px 0.3rem;
  padding: 0px 0.3rem 0px 1.38rem;
  background: linear-gradient(90deg, rgba(150, 160, 158, 0.34), rgba(110, 120, 118, 0.2) 70%, rgba(110, 120, 118, 0.1));
}

.ach-bar::after {
  content: "";
  position: absolute;
  inset: 0px;
  pointer-events: none;
  opacity: 0.4;
  background: repeating-linear-gradient(90deg, rgba(0, 0, 0, 0.25) 0px, rgba(0, 0, 0, 0.25) 1px, transparent 1px, transparent 7px);
}

.ach-bar__icon {
  position: absolute;
  left: 0.3rem;
  top: -0.2rem;
  width: 0.9rem;
  height: 1.04rem;
  display: grid;
  place-items: center;
  background: rgb(43, 48, 47);
  box-shadow: rgba(200, 210, 206, 0.32) 0px 0px 0px 2px;
}

.ach-bar__icon svg {
  width: 0.52rem;
  height: 0.52rem;
  fill: rgb(238, 243, 241);
}

.ach-bar__title {
  position: relative;
  z-index: 1;
  font-size: 0.34rem;
  font-weight: 800;
  color: rgb(242, 246, 245);
  letter-spacing: 0.04em;
}

.ach-bar__marks {
  position: relative;
  z-index: 1;
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 0.06rem;
  color: rgba(220, 230, 226, 0.55);
}

.ach-bar__marks > i {
  width: 0.3rem;
  height: 0.3rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(220, 230, 226, 0.45);
}

.ach-bar__marks > i .icon, .ach-bar__marks > i svg {
  width: 0.2rem;
  height: 0.2rem;
}

.ach-bar__micro {
  margin-left: 0.04rem;
  line-height: 1.1;
  color: rgba(220, 230, 226, 0.5);
}

.ach-best {
  display: grid;
  grid-template-columns: 3.2rem minmax(0px, 1fr);
  gap: 0.5rem;
  align-items: center;
}

.ach-best__left {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.12rem;
}

.ach-best__mount {
  position: relative;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.12rem;
  padding: 0.06rem 0.3rem 0.1rem;
}

.ach-best__mount::before, .ach-best__mount::after {
  content: "";
  position: absolute;
  top: 0px;
  bottom: 0.1rem;
  width: 0.1rem;
  border: 2px solid rgba(200, 210, 206, 0.3);
  pointer-events: none;
}

.ach-best__mount::before {
  left: 0px;
  border-right: 0px;
}

.ach-best__mount::after {
  right: 0px;
  border-left: 0px;
}

.ach-best__wire {
  position: absolute;
  left: 100%;
  top: 1.21rem;
  width: 0.5rem;
  height: 2px;
  background: rgba(200, 210, 206, 0.4);
}

.ach-best__wire::before {
  content: "";
  position: absolute;
  left: -0.05rem;
  top: 50%;
  width: 0.1rem;
  height: 0.1rem;
  margin-top: -0.05rem;
  border-radius: 50%;
  background: rgba(200, 210, 206, 0.6);
}

.ach-best__wire::after {
  content: "";
  position: absolute;
  right: 0px;
  top: -0.14rem;
  width: 0.14rem;
  height: 0.3rem;
  background: repeating-linear-gradient(rgba(200, 210, 206, 0.45) 0px, rgba(200, 210, 206, 0.45) 2px, transparent 2px, transparent 0.14rem);
}

.ach-pill {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 0.06rem;
  padding: 0.04rem 0.16rem;
  border-radius: 0.24rem;
  background: rgba(220, 230, 226, 0.14);
  font-size: 0.26rem;
  font-weight: 600;
}

.ach-pill .icon {
  width: 0.2rem;
  height: 0.2rem;
}

.ach-best__glyph {
  width: 2.1rem;
  height: 2.1rem;
  display: grid;
  place-items: center;
  margin-top: 0.1rem;
  background: rgb(18, 23, 22);
  box-shadow: rgba(200, 210, 206, 0.32) 0px 0px 0px 3px, rgb(11, 15, 14) 0px 0px 0px 0.1rem, rgba(200, 210, 206, 0.16) 0px 0px 0px calc(1px + 0.1rem);
}

.ach-best__glyph .bglyph, .ach-top__frame .bglyph {
  width: 1.3rem;
  height: 1.3rem;
  display: grid;
  place-items: center;
}

.ach-best__glyph .bglyph img, .ach-top__frame .bglyph img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: brightness(0) invert(84%) sepia(52%) saturate(640%) hue-rotate(106deg) drop-shadow(rgba(74, 242, 196, 0.6) 0px 0px 0.1rem);
}

.ach-best__glyph .bglyph__txt, .ach-top__frame .bglyph__txt {
  font-size: 0.8rem;
  font-weight: 900;
  color: rgb(74, 242, 196);
}

.ach-best__label {
  font-size: 0.27rem;
  color: rgb(223, 230, 227);
}

.ach-best__num {
  font-family: var(--font-display);
  font-size: 0.66rem;
  line-height: 1;
  color: rgb(74, 242, 196);
  font-weight: 500;
}

.ach-best__lineup {
  position: relative;
  display: flex;
  gap: 0.4rem;
  padding: 0.3rem 0.4rem 0.3rem 0.5rem;
}

.ach-best__lineup::before, .ach-best__lineup::after {
  content: "";
  position: absolute;
  top: 0px;
  bottom: 0px;
  width: 0.1rem;
  border: 2px solid rgba(200, 210, 206, 0.35);
  pointer-events: none;
}

.ach-best__lineup::before {
  left: 0px;
  border-right: 0px;
}

.ach-best__lineup::after {
  right: 0px;
  border-left: 0px;
}

.ach-best__rows {
  display: flex;
  flex-direction: column;
  gap: 0.26rem;
}

.ach-best__row {
  display: flex;
  gap: 0.38rem;
}

.ach-best__bonds {
  display: grid;
  grid-template-columns: repeat(2, auto);
  gap: 0.14rem 0.3rem;
  align-content: start;
  padding-left: 0.1rem;
}

.ach-maxima {
  display: grid;
  grid-template-columns: repeat(3, minmax(0px, 1fr));
  gap: 0.3rem;
  margin-top: 0.4rem;
}

.ach-max {
  position: relative;
  height: 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0px 0.3rem;
  overflow: hidden;
}

.ach-max::before, .ach-max::after {
  content: "";
  position: absolute;
  top: 0px;
  bottom: 0px;
  width: 0.1rem;
  border: 2px solid rgba(200, 210, 206, 0.32);
  pointer-events: none;
}

.ach-max::before {
  left: 0px;
  border-right: 0px;
}

.ach-max::after {
  right: 0px;
  border-left: 0px;
}

.ach-max__label {
  position: relative;
  z-index: 1;
  font-size: 0.25rem;
  color: rgb(212, 220, 217);
  white-space: nowrap;
}

.ach-max__num {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: baseline;
  gap: 0.02rem;
  line-height: 1.05;
}

.ach-max__num small {
  font-size: 0.36rem;
  color: rgb(244, 247, 246);
}

.ach-max__num .num {
  font-family: var(--font-display);
  font-size: 0.54rem;
  font-weight: 500;
  color: var(--mx, #4af2c4);
}

.ach-max__glyph {
  position: absolute;
  right: 0.36rem;
  top: 50%;
  width: 1.1rem;
  height: 1.1rem;
  margin-top: -0.55rem;
  fill: var(--mx, #4af2c4);
  opacity: 0.45;
}

.ach-max.is-gold {
  --mx: #ffcf1f;
}

.ach-max.is-orange {
  --mx: #ff8a2a;
}

.ach-max.is-mint {
  --mx: #3fe3b2;
}

.ach-list {
  padding-bottom: 0.1rem;
}

.ach-sub {
  margin: 0.26rem 0px 0.2rem 0.4rem;
  font-size: 0.26rem;
  color: rgb(185, 194, 191);
}

.ach-sub::before {
  content: "-";
  margin-right: 0.22rem;
}

.ach-empty {
  margin: 0.1rem 0px 0.1rem 0.8rem;
  font-size: 0.22rem;
  color: rgb(125, 135, 132);
}

.ach-tops {
  display: flex;
  gap: 1.45rem;
  padding-left: 2.1rem;
}

.ach-top {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.16rem;
  animation: ach-pop 380ms var(--ease-out) both;
}

@keyframes ach-pop {
  0% {
    opacity: 0;
    transform: translateY(0.12rem);
  }
}

.ach-top__frame {
  position: relative;
  width: 2.4rem;
  height: 2.4rem;
  display: grid;
  place-items: center;
  background: rgba(12, 18, 17, 0.7);
  box-shadow: rgba(200, 210, 206, 0.3) 0px 0px 0px 3px inset;
}

.ach-top__rank {
  position: absolute;
  left: 0.12rem;
  top: 0.08rem;
  font-family: var(--font-display);
  font-style: normal;
  font-size: 0.22rem;
  color: rgba(220, 230, 226, 0.5);
}

.ach-top__name {
  font-size: 0.28rem;
  font-weight: 700;
  color: rgb(238, 243, 241);
  white-space: nowrap;
}

.ach-tops--band {
  gap: 0.9rem;
  padding-left: 0.9rem;
}

.ach-top--band {
  flex-direction: row;
  align-items: center;
  gap: 0.22rem;
}

.ach-top--band .ach-top__frame {
  width: 2.1rem;
  height: 2.1rem;
}

.ach-top--band .bandicon, .ach-mark__frame .bandicon {
  width: 1.6rem;
  height: 1.6rem;
}

.ach-top--band .bandicon img, .ach-mark__frame .bandicon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(rgba(74, 242, 196, 0.45) 0px 0px 0.08rem);
}

.ach-top__side {
  display: flex;
  flex-direction: column;
  gap: 0.06rem;
}

.ach-top__count {
  display: flex;
  align-items: baseline;
  gap: 0.02rem;
}

.ach-top__count small {
  font-size: 0.28rem;
  color: rgb(238, 243, 241);
}

.ach-top__count b {
  font-family: var(--font-display);
  font-size: 0.44rem;
  line-height: 1;
  color: rgb(74, 242, 196);
  font-weight: 500;
}

.ach-ops {
  display: flex;
  flex-wrap: wrap;
  gap: 0.26rem 0.5rem;
  padding-left: 0.95rem;
}

.ach-op {
  position: relative;
  width: 1.5rem;
  height: 1.5rem;
  display: grid;
  place-items: center;
}

.ach-op .uthumb {
  --ut: 1.36rem;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: rgba(20, 26, 25, 0.9) 0px 0px 0px 2px, rgba(74, 242, 196, 0.22) 0px 0px 0.2rem;
}

.ach-op__tier {
  position: absolute;
  left: 0.02rem;
  bottom: -0.02rem;
  min-width: 0.4rem;
  height: 0.36rem;
  padding: 0px 0.04rem;
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-size: 0.2rem;
  font-weight: 700;
  line-height: 1;
  color: var(--tc, #e6eae8);
  background: rgb(21, 24, 24);
  border: 2px solid var(--tc, #e6eae8);
  border-radius: 0.05rem;
}

.ach-op.sop--t5 .ach-op__tier {
  background: rgb(21, 24, 24);
  color: rgb(255, 200, 30);
  border-color: rgb(255, 200, 30);
}

.ach-op.sop--t6 .ach-op__tier {
  background: rgb(21, 24, 24);
  color: rgb(255, 138, 29);
  border-color: rgb(255, 138, 29);
}

.ach-marks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  padding-left: 1.2rem;
}

.ach-mark {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.12rem;
}

.ach-mark b {
  font-size: 0.28rem;
  font-weight: 700;
}

.ach-mark__frame {
  position: relative;
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  background: repeating-linear-gradient(135deg, rgba(74, 242, 196, 0.08) 0px, rgba(74, 242, 196, 0.08) 0.04rem, transparent 0.04rem, transparent 0.12rem), rgba(18, 40, 36, 0.7);
  box-shadow: rgba(74, 242, 196, 0.3) 0px 0px 0px 1px inset;
}

.ach-mark__badge {
  position: absolute;
  right: 0.06rem;
  top: 0.06rem;
  width: 0.3rem;
  height: 0.3rem;
  display: grid;
  place-items: center;
  background: rgb(28, 18, 6);
  border: 2px solid rgb(255, 154, 42);
  color: rgb(255, 173, 58);
}

.ach-mark__badge svg {
  width: 0.2rem;
  height: 0.2rem;
}

@media (prefers-reduced-motion: reduce) {
  .ach, .ach__box, .ach-hex__seg, .ach-hex__label, .ach-top, .ach__loader i, .ach__loader b {
    animation: auto ease 0s 1 normal none running none !important;
  }
}

.ach-gate {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  padding: 0.3rem 1rem;
  text-align: center;
}

.ach-gate__mark .emblem {
  margin: 0px;
  animation: auto ease 0s 1 normal none running none;
}

.ach-gate__mark .emblem__svg {
  width: 0.9rem;
  height: 0.98rem;
}

.ach-gate__mark .emblem__svg circle {
  animation: auto ease 0s 1 normal none running none;
}

.ach-gate__title {
  font-size: 0.42rem;
  font-weight: 800;
  color: rgb(242, 246, 245);
  letter-spacing: 0.04em;
}

.ach-gate p {
  margin: 0px;
  max-width: 10rem;
  font-size: 0.26rem;
  line-height: 1.5;
  color: rgb(185, 194, 191);
}

.ach-gate p.ach-gate__local {
  color: var(--mint-400);
}

.has-nc {
  position: relative;
  isolation: isolate;
  text-shadow: rgba(0, 0, 0, 0.8) 0px 1px 2px;
}

.nc-layer {
  position: absolute;
  inset: 0px;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background: var(--nc-shade, linear-gradient(90deg, rgba(8, 11, 11, .9), rgba(8, 11, 11, .62) 50%, rgba(8, 11, 11, .2))), var(--nc) center / cover no-repeat, #101514;
}

.ach-card.has-nc {
  background: rgb(16, 21, 20);
  --nc-shade: linear-gradient(90deg, rgba(6, 9, 9, .5), rgba(6, 9, 9, .12) 55%, transparent);
}

.ach-card.has-nc .ach-card__id {
  background: rgba(8, 12, 11, 0.62);
  color: rgb(230, 236, 234);
}

.ach-card.has-nc .ach-card__brand {
  display: none;
}

.acct-me.has-nc {
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 4px;
  --nc-shade: linear-gradient(90deg, rgba(8, 11, 11, .82), rgba(8, 11, 11, .45) 55%, rgba(8, 11, 11, .1));
}

.acct-me.has-nc .acct-who small, .acct-title-card.has-nc .acct-title-card__who small {
  color: rgb(214, 222, 219);
}

.acct-title-card.has-nc {
  --nc-shade: linear-gradient(90deg, rgba(8, 11, 11, .84), rgba(8, 11, 11, .5) 55%, rgba(8, 11, 11, .2));
}

.me-chip.has-nc {
  border-color: rgba(255, 255, 255, 0.22);
}

.rseat__plate.has-nc, .tcard__plate.has-nc, .frow.has-nc {
  --nc-shade: linear-gradient(90deg, rgba(8, 11, 11, .86), rgba(8, 11, 11, .5) 55%, rgba(8, 11, 11, .12));
}

.dorder__card.has-nc {
  --nc-shade: linear-gradient(90deg, rgba(8, 11, 11, .84), rgba(8, 11, 11, .45) 40%, rgba(8, 11, 11, .25));
}

.splate__info.has-nc {
  --nc-shade: linear-gradient(90deg, rgba(8, 30, 25, .78), rgba(8, 20, 18, .4) 60%, rgba(8, 11, 11, .1));
}

.nc-pick {
  position: fixed;
  inset: 0px;
  z-index: 420;
  display: grid;
  place-items: center;
  padding: 12px;
  background: rgba(3, 8, 6, 0.6);
  backdrop-filter: blur(2px);
}

.nc-pick__panel {
  width: min(780px, 100%);
  max-height: min(620px, calc(var(--sp-vh, 1vh) * 100 - 24px));
  display: flex;
  flex-direction: column;
  color: rgb(230, 236, 234);
  background: rgb(13, 18, 17);
  border: 1px solid rgba(78, 216, 175, 0.35);
  box-shadow: rgba(0, 0, 0, 0.6) 0px 12px 40px;
  font-size: 14px;
}

.nc-pick__head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.nc-pick__head strong {
  font-family: var(--font-display);
  font-size: 12px;
  letter-spacing: 0.12em;
  color: var(--mint-400);
}

.nc-pick__title {
  font-size: 16px;
  font-weight: 700;
}

.nc-pick__x {
  margin-left: auto;
  width: 32px;
  height: 32px;
  padding: 0px;
  border: 0px;
  background: none;
  color: rgb(207, 216, 213);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

.nc-pick__x:hover {
  color: var(--mint-400);
}

.nc-pick__status {
  margin: 0px;
  padding: 8px 14px 0px;
  color: rgb(154, 166, 162);
}

.nc-pick__status:empty {
  display: none;
}

.nc-pick__status.is-error {
  color: rgb(255, 138, 122);
}

.nc-pick__grid {
  flex: 1 1 0%;
  min-height: 0px;
  overflow-y: auto;
  overscroll-behavior: contain;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
  grid-auto-rows: max-content;
  align-content: start;
  gap: 8px;
  padding: 10px 14px 14px;
}

.nc-pick__theme {
  grid-column: 1 / -1;
  margin: 8px 0px 0px;
  font-size: 13px;
  font-weight: 700;
  color: rgb(185, 194, 191);
}

.nc-pick__theme:first-child {
  margin-top: 0px;
}

.nc-pick__card {
  position: relative;
  padding: 0px;
  border: 2px solid transparent;
  border-radius: 4px;
  background: rgb(16, 21, 20);
  cursor: pointer;
}

.nc-pick__card img {
  width: 100%;
  height: auto;
  aspect-ratio: 600 / 186;
  object-fit: cover;
  display: block;
  border-radius: 2px;
}

.nc-pick__card:hover, .nc-pick__card:focus-visible {
  border-color: rgba(78, 216, 175, 0.6);
  outline: none;
}

.nc-pick__card.is-on {
  border-color: var(--mint-400);
}

.nc-pick__card.is-busy {
  opacity: 0.55;
}

.nc-pick__on {
  position: absolute;
  right: 4px;
  bottom: 4px;
  padding: 1px 6px;
  font-size: 11px;
  font-weight: 700;
  color: rgb(6, 35, 27);
  background: var(--mint-400);
  border-radius: 2px;
}

.nc-pick__foot {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.nc-pick__foot small {
  flex: 1 1 0%;
  min-width: 0px;
  color: rgb(140, 152, 148);
}

@media (max-width: 560px), (max-height: 520px) {
  .nc-pick__grid {
    grid-template-columns: repeat(auto-fill, minmax(128px, 1fr));
  }

  .nc-pick__foot small {
    display: none;
  }
}

.ach-counts__likes small .icon {
  fill: rgb(255, 173, 58);
}

.ach-counts__likes b {
  color: rgb(255, 173, 58);
}

.ach-import {
  display: flex;
  align-items: center;
  gap: 0.14rem;
  margin: 0.16rem 0px 0px;
  padding: 0.1rem 0.16rem;
  font-size: 0.2rem;
  color: rgb(223, 230, 227);
  background: rgba(74, 242, 196, 0.08);
  box-shadow: rgba(74, 242, 196, 0.3) 0px 0px 0px 1px inset;
}

.ach-import > .icon {
  width: 0.24rem;
  height: 0.24rem;
  flex: 0 0 auto;
  color: var(--mint-400);
}

.ach-import > span {
  flex: 1 1 0%;
  min-width: 0px;
}

.hub-tile--friends {
  position: relative;
}

.hub-tile__sub {
  margin-left: 0.08rem;
  font-size: calc(.13 * var(--t));
  font-weight: 600;
  color: var(--mint-400);
}

.hub-tile__badge {
  position: absolute;
  right: 0.1rem;
  top: 50%;
  transform: translateY(-50%);
  min-width: 0.3rem;
  height: 0.3rem;
  padding: 0px 0.07rem;
  display: grid;
  place-items: center;
  border-radius: 0.15rem;
  background: rgb(255, 154, 42);
  color: rgb(42, 20, 4);
  font-size: calc(.16 * var(--t));
  font-weight: 800;
}

.fglyph {
  width: 1em;
  height: 1em;
  fill: currentcolor;
  flex: 0 0 auto;
}

.fr {
  display: flex;
  flex-direction: column;
  gap: 0.14rem;
  min-width: 0px;
  font-size: max(calc(.18 * var(--t)), 12px);
}

.fr--guest {
  align-items: flex-start;
  gap: 0.2rem;
  color: var(--text-lo);
}

.fr__add {
  display: flex;
  gap: 0.12rem;
  align-items: stretch;
}

.fr__add > :first-child {
  flex: 1 1 0%;
  min-width: 0px;
}

.fr__me {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.08rem 0.14rem;
  margin: 0px;
  color: var(--text-lo);
}

.fr__me > b {
  color: var(--text-hi);
  font-weight: 700;
}

.fr__got {
  display: inline-flex;
  align-items: center;
  gap: 0.05rem;
  margin-left: auto;
  color: rgb(255, 173, 58);
  font-weight: 700;
}

.fr__tabs {
  display: flex;
  gap: 0.06rem;
  border-bottom: 1px solid rgba(223, 230, 226, 0.14);
}

.fr__tabs button {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.08rem;
  padding: 0.08rem 0.2rem;
  border: 0px;
  background: none;
  color: var(--text-lo);
  font-style: inherit;
  font-variant: inherit;
  font-stretch: inherit;
  font-size: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-weight: 700;
  cursor: pointer;
}

.fr__tabs button .num {
  color: var(--text-dim);
  font-weight: 600;
}

.fr__tabs button.is-on {
  color: var(--mint-400);
  box-shadow: inset 0 -2px 0 var(--mint-500);
}

.fr__badge {
  min-width: 0.26rem;
  height: 0.26rem;
  padding: 0px 0.06rem;
  display: grid;
  place-items: center;
  border-radius: 0.13rem;
  background: rgb(255, 154, 42);
  color: rgb(42, 20, 4);
  font-size: 0.8em;
}

.fr__list {
  list-style: none;
  margin: 0px;
  padding: 0px 0px 3px;
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  max-height: min(4.6rem, 52vh);
  overflow: hidden auto;
  overscroll-behavior: contain;
}

.fr__reqs h4 {
  margin: 0.08rem 0px 0.06rem;
  font-size: 0.9em;
  color: var(--text-dim);
  font-weight: 700;
}

.fr__empty, .fr__note {
  margin: 0px;
  color: var(--text-dim);
}

.fr__note {
  font-size: 0.86em;
}

.fr__loading {
  display: grid;
  place-items: center;
  min-height: 1.2rem;
}

.fr__error {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0px;
  color: rgb(255, 174, 158);
  font-size: max(12px, 0.16rem);
}

.fr__error button {
  flex: 0 0 auto;
  padding: 6px 10px;
  border: 1px solid var(--line-2);
  background: var(--bg-panel, #111b18);
  color: var(--text-hi);
  font: inherit;
  cursor: pointer;
}

.fr-modal .btn, .dm-modal .btn {
  min-height: 32px;
  font-size: max(12px, 0.16rem);
}

.fr-modal .frow__x {
  min-width: 32px;
  min-height: 32px;
}

.dm-modal {
  max-height: calc(100dvh - 24px);
}

.dm-modal .modal__title {
  overflow-wrap: anywhere;
  font-size: clamp(18px, 0.28rem, 26px);
}

.dm-modal .modal__body {
  min-height: 0px;
  overflow: auto;
}

.dm {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0px;
  font-size: 14px;
}

.dm__tools {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--text-dim);
  font-size: 12px;
}

.dm__history {
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: min(42dvh, 330px);
  min-height: 80px;
  padding: 12px;
  overflow: auto;
  overscroll-behavior: contain;
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid var(--line);
}

.dm__message {
  width: fit-content;
  max-width: 88%;
  padding: 8px 12px;
  background: rgb(27, 40, 35);
  border: 1px solid var(--line);
}

.dm__message.is-self {
  margin-left: auto;
  background: rgb(20, 60, 48);
  border-color: var(--mint-700);
}

.dm__message small {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  color: var(--text-lo);
  font-size: 11px;
}

.dm__message p {
  margin: 6px 0px 0px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  line-height: 1.5;
  color: var(--text-hi);
  user-select: text;
}

.dm__older {
  align-self: center;
  padding: 6px 12px;
  background: transparent;
  color: var(--mint-400);
  border: 1px solid var(--line-2);
  font: inherit;
  cursor: pointer;
}

.dm__composer {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.dm__composer label {
  color: var(--text-lo);
  font-size: 12px;
}

.dm__composer textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 64px;
  max-height: 120px;
  resize: vertical;
  padding: 10px;
  border: 1px solid var(--line-2);
  background: rgb(12, 23, 18);
  color: var(--text-hi);
  font-style: inherit;
  font-variant: inherit;
  font-weight: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: 16px;
  user-select: text;
}

.dm__composer > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.dm__composer small {
  color: var(--text-dim);
  font-size: 11px;
}

.dm button:focus-visible, .dm textarea:focus-visible, .dm__history:focus-visible {
  outline: 2px solid var(--mint-400);
  outline-offset: 2px;
}

@media (max-height: 500px) {
  .dm-modal .modal__head {
    padding-block: 8px;
  }

  .dm-modal .modal__actions {
    padding-block: 6px;
  }

  .dm {
    gap: 6px;
  }

  .dm__history {
    height: 20dvh;
  }

  .dm__composer textarea {
    min-height: 42px;
  }
}

.frow {
  display: flex;
  align-items: center;
  gap: 0.14rem;
  padding: 0.08rem 0.12rem;
  background: rgba(255, 255, 255, 0.03);
  box-shadow: rgba(223, 230, 226, 0.1) 0px 0px 0px 1px inset;
}

.frow.is-on {
  box-shadow: rgba(74, 242, 196, 0.3) 0px 0px 0px 1px inset;
}

.frow__who {
  flex: 1 1 0%;
  min-width: 0px;
  display: flex;
  flex-direction: column;
  gap: 0.02rem;
}

.frow__name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 700;
  color: var(--text-hi);
}

.frow__name .acct-tag {
  color: var(--text-dim);
  font-weight: 400;
}

.frow__who small {
  display: flex;
  align-items: center;
  gap: 0.06rem;
  color: var(--text-dim);
  white-space: nowrap;
}

.frow__dot {
  width: 0.1rem;
  height: 0.1rem;
  border-radius: 50%;
  background: rgb(93, 102, 100);
  flex: 0 0 auto;
}

.frow.is-on .frow__dot {
  background: var(--mint-400);
  box-shadow: 0 0 .06rem var(--mint-400);
}

.frow.is-on .frow__state {
  color: var(--mint-400);
}

.frow__likes {
  display: inline-flex;
  align-items: center;
  gap: 0.03rem;
  margin-left: 0.1rem;
  color: rgb(255, 173, 58);
}

.frow__acts {
  display: flex;
  align-items: center;
  gap: 0.06rem;
  flex: 0 0 auto;
}

.frow__x {
  width: 0.4rem;
  height: 0.4rem;
  display: grid;
  place-items: center;
  padding: 0px;
  border: 0px;
  background: none;
  color: var(--text-dim);
  cursor: pointer;
}

.frow__x:hover {
  color: rgb(255, 106, 90);
}

.fava {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  overflow: hidden;
  border-radius: 50%;
  background: rgb(29, 36, 35);
  box-shadow: rgba(223, 230, 226, 0.3) 0px 0px 0px 1px;
  color: var(--mint-400);
}

.fava img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fava--md {
  width: max(0.6rem, 34px);
  height: max(0.6rem, 34px);
}

.fava--sm {
  width: max(0.44rem, 26px);
  height: max(0.44rem, 26px);
}

.finv-host {
  position: fixed;
  right: max(12px, 0.2rem);
  top: max(60px, 0.9rem);
  z-index: calc(var(--z-modal) + 1);
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: min(4.6rem, -24px + 100vw);
  pointer-events: none;
}

.finv {
  display: flex;
  align-items: center;
  gap: 0.12rem;
  padding: 0.1rem 0.14rem;
  pointer-events: auto;
  font-size: max(calc(.18 * var(--t)), 12px);
  background: rgba(10, 16, 15, 0.96);
  box-shadow: rgba(255, 170, 60, 0.55) 0px 0px 0px 1px inset, rgba(0, 0, 0, 0.6) 0px 0.06rem 0.3rem;
  animation: finv-in 260ms var(--ease-out) both;
}

@keyframes finv-in {
  0% {
    opacity: 0;
    transform: translateX(0.3rem);
  }
}

.finv__text {
  flex: 1 1 0%;
  min-width: 0px;
  display: flex;
  flex-direction: column;
  color: var(--text-lo);
}

.finv__text b {
  color: var(--text-hi);
}

.finv__text small {
  color: rgb(255, 173, 58);
}

.finv__x {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  padding: 0px;
  border: 0px;
  background: none;
  color: var(--text-dim);
  cursor: pointer;
}

@media (max-width: 640px) {
  .frow {
    flex-wrap: wrap;
  }

  .frow__acts {
    width: 100%;
    justify-content: flex-end;
  }
}

@media (prefers-reduced-motion: reduce) {
  .finv {
    animation: auto ease 0s 1 normal none running none;
  }
}

.tbadge {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  object-fit: contain;
  width: 0.3rem;
  height: 0.3rem;
}

.tbadge--svg .icon {
  width: 100%;
  height: 100%;
}

.tbadge--svg.tbadge--1 {
  color: rgb(232, 239, 236);
}

.tbadge--svg.tbadge--2 {
  color: rgb(127, 214, 196);
}

.tbadge--svg.tbadge--3 {
  color: rgb(217, 192, 138);
}

.tbadge--svg.tbadge--4 {
  color: rgb(242, 193, 78);
}

.tbadge--svg.tbadge--5 {
  color: rgb(240, 138, 58);
}

.tbadge--inline {
  width: 1.35em;
  height: 1.35em;
  margin-right: 0.2em;
  vertical-align: middle;
  filter: drop-shadow(rgba(0, 0, 0, 0.6) 0px 0px 2px);
}

.hub-ach__rank > .tbadge {
  width: 0.34rem;
  height: 0.34rem;
}

.splate__rank > .tbadge {
  width: 0.44rem;
  height: 0.44rem;
}

.lobby-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--amber);
  box-shadow: 0 0 6px var(--amber);
  flex: 0 0 auto;
}

.hub-notice {
  flex: 0 0 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0px;
  padding: 0px;
  text-align: left;
  color: var(--text-hi);
  cursor: pointer;
  background: linear-gradient(rgba(9, 17, 16, 0.88), rgba(6, 11, 10, 0.9));
  border-right: 1px solid rgba(223, 230, 226, 0.14);
  border-bottom: 1px solid rgba(223, 230, 226, 0.14);
  border-left: 1px solid rgba(223, 230, 226, 0.14);
  border-image: none;
  border-top: 2px solid var(--mint-500);
  box-shadow: rgba(0, 0, 0, 0.45) 0px 0.06rem 0.24rem;
  backdrop-filter: blur(6px);
  transition: border-color var(--t-fast);
}

.hub-notice:hover, .hub-notice:focus-visible {
  border-color: var(--mint-a35);
  outline: none;
}

.hub-notice.is-unread {
  border-top-color: var(--amber);
}

.hub-notice__head {
  display: flex;
  align-items: center;
  gap: 0.08rem;
  height: max(0.42rem, 28px);
  padding: 0px 0.1rem 0px 0.14rem;
  border-bottom: 1px solid rgba(223, 230, 226, 0.08);
}

.hub-notice__title {
  font-size: max(calc(.17 * var(--t)), 13px);
  font-weight: 800;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.hub-notice__en {
  font: 700 max(0.1rem, 9px) / 1 ui-monospace, Consolas, monospace;
  letter-spacing: 0.2em;
  color: var(--mint-400);
  opacity: 0.7;
}

.hub-notice__more {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.02rem;
  font-size: max(calc(.13 * var(--t)), 11px);
  color: rgba(223, 230, 226, 0.72);
  white-space: nowrap;
}

.hub-notice__more .icon {
  width: 1.1em;
  height: 1.1em;
}

.hub-notice__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.04rem;
  min-height: max(0.86rem, 52px);
  padding: 0.1rem 0.14rem;
}

.hub-notice__body b {
  font-size: max(calc(.16 * var(--t)), 13px);
  line-height: 1.4;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.hub-notice__body small {
  font-size: max(calc(.12 * var(--t)), 10px);
  color: var(--text-lo);
}

.hub-notice__body .t-dim {
  font-size: max(calc(.14 * var(--t)), 11px);
}

.hub-contact {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.06rem;
  margin-top: auto;
}

.lobby-feedback {
  min-height: 40px;
  padding-inline: 10px;
  font-size: max(calc(.14 * var(--t)), 12px);
  color: var(--mint-400);
  border-color: var(--mint-700);
  letter-spacing: 0.04em;
}

.lobby-feedback .icon {
  width: 14px;
  height: 14px;
}

.lobby-feedback__label {
  margin-right: 6px;
  color: var(--text-md);
  letter-spacing: 0px;
}

.hub-contact__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.06rem;
  max-width: 100%;
}

.hub-boards {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.06rem;
}

.hub-board {
  min-height: 40px;
  padding-inline: 10px;
  font-size: max(calc(.14 * var(--t)), 12px);
  color: var(--text-hi);
  letter-spacing: 0.04em;
  text-decoration: none;
}

.hub-board .icon {
  width: 14px;
  height: 14px;
  color: var(--mint-400);
}

:is(.sp-touch, .sp-coarse) .hub-board--status {
  width: 40px;
  padding-inline: 0px;
}

:is(.sp-touch, .sp-coarse) .hub-board--status .btn__label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0px, 0px, 0px, 0px);
  white-space: nowrap;
}

@media (max-width: 1120px) {
  .hub-board--status {
    width: 40px;
    padding-inline: 0px;
  }

  .hub-board--status .btn__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0px, 0px, 0px, 0px);
    white-space: nowrap;
  }
}

.hub-credit {
  margin: 0px;
  padding: 0.03rem 0.1rem;
  font-size: max(calc(.12 * var(--t)), 10px);
  line-height: 1.5;
  color: rgba(223, 230, 226, 0.62);
  background: rgba(6, 10, 10, 0.55);
}

.hub-credit b {
  color: rgba(223, 230, 226, 0.85);
  font-weight: 600;
}

.hub-credit__sep {
  margin: 0px 0.06rem;
}

.hub-foot {
  color: rgba(223, 230, 226, 0.5);
}

.hub-repo {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.02rem;
}

.hub-repo:hover {
  color: var(--mint-400);
}

.hub-dev {
  display: block;
  color: var(--amber);
  font-weight: 700;
}

.ally-note {
  display: block;
  margin-top: 0.04rem;
  font-size: max(calc(.12 * var(--t)), 10px);
}

.join-foot__note {
  flex-basis: 100%;
  font-size: max(calc(.12 * var(--t)), 11px);
}

.hub-fs-btn--help.fsbtn {
  width: max(0.44rem, 32px);
  height: max(0.44rem, 32px);
  min-width: 0px;
  padding: 0px;
  display: grid;
  place-items: center;
  color: var(--text-hi);
  background: rgba(20, 28, 26, 0.8);
  border: 1px solid var(--line-2);
}

.hub-searching {
  display: flex;
  align-items: center;
  gap: 0.12rem;
  padding: 0.08rem 0.12rem;
  background: rgba(8, 15, 14, 0.9);
}

.hub-searching .matchmaking-hud__info {
  display: flex;
  align-items: center;
  gap: 0.1rem;
  flex: 1 1 auto;
  min-width: 0px;
}

.hub-searching .matchmaking-hud__text {
  font-size: max(calc(.16 * var(--t)), 12px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.proto-side--search {
  justify-content: center;
}

.proto-side--search > .mf-search, .proto-side--search > .mf-found, .proto-side--search > .mf-offer {
  position: relative;
  width: 100%;
}

.mf-offer .matchmaking {
  margin: 0px;
  padding: 0.2rem 0.24rem;
}

.mf-offer .matchmaking h2 {
  font-size: max(calc(.3 * var(--t)), 18px);
}

.mf-offer .matchmaking__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0px, 1fr));
  gap: 0.1rem;
}

.mf-offer .matchmaking__actions .btn {
  min-height: 44px;
}

.proto-opts .matchmaking__help {
  margin-left: auto;
}

.rs-queue {
  position: absolute;
  inset: 0px;
  z-index: 5;
  display: grid;
  grid-template-columns: minmax(0px, 1fr) min(6.2rem, 46vw);
  background: rgba(5, 6, 6, 0.55);
}

.rs-queue__team {
  align-self: end;
  margin: 0px 0px 1.4rem 0.4rem;
  max-width: 5.4rem;
  padding: 0.16rem 0.2rem;
  background: rgba(8, 15, 14, 0.9);
  border-left: 3px solid var(--mint-500);
}

.rs-queue__team h2 {
  margin: 0.04rem 0px;
  font-size: max(calc(.28 * var(--t)), 16px);
}

.rs-queue__team p {
  margin: 0px;
  font-size: max(calc(.15 * var(--t)), 12px);
  line-height: 1.5;
  color: var(--text-md);
}

.rs-queue > .rs-searchpanel, .rs-queue > .mf-offer.rs-searchpanel, .rs-queue > .mf-found {
  position: relative;
  inset: auto;
  width: auto;
  height: 100%;
}

.rs-queue > .mf-offer {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0.4rem 0.3rem;
  background: rgba(6, 7, 7, 0.94);
}

.rseat__addbot {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.08rem;
  min-height: max(0.76rem, 46px);
  margin-top: 0.08rem;
  padding: 0.06rem 0.1rem;
  font-style: inherit;
  font-variant: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.17 * var(--t)), 12px);
  font-weight: 800;
  color: rgb(93, 240, 198);
  background: rgba(10, 30, 25, 0.85);
  border: 1px dashed rgba(79, 232, 192, 0.6);
  cursor: pointer;
}

.rseat__addbot:hover:not(:disabled) {
  background: rgba(20, 60, 48, 0.9);
  border-style: solid;
}

.rseat__addbot:disabled {
  opacity: 0.55;
  cursor: default;
}

.rseat__addbot .icon {
  width: 1.2em;
  height: 1.2em;
}

.rseat__band {
  display: flex;
  align-items: center;
  gap: 0.06rem;
  width: 100%;
  min-height: max(0.42rem, 28px);
  margin-top: 0.06rem;
  padding: 0px 0.1rem;
  font-style: inherit;
  font-variant: inherit;
  font-weight: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.14 * var(--t)), 11px);
  color: var(--text-hi);
  background: rgba(14, 20, 19, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.14);
  text-align: left;
}

.rseat__band.is-editable {
  cursor: pointer;
  border-color: rgba(79, 232, 192, 0.45);
}

.rseat__band.is-editable:hover:not(:disabled) {
  background: rgba(20, 48, 40, 0.92);
}

.rseat__band .seat__band-k {
  flex: 0 0 auto;
  padding: 0px 0.06rem;
  font-size: 0.9em;
  color: rgb(8, 34, 27);
  background: rgb(79, 232, 192);
}

.rseat__band .seat__band-name {
  flex: 1 1 auto;
  min-width: 0px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rseat__band > .icon {
  flex: 0 0 auto;
  width: 1.1em;
  height: 1.1em;
  color: var(--text-lo);
}

.rseat__band .bandicon {
  width: max(0.3rem, 18px);
  height: max(0.3rem, 18px);
  flex: 0 0 auto;
}

.rseat__kick--bot {
  color: rgb(201, 206, 204);
  background: rgb(28, 34, 33);
  border-color: rgba(255, 255, 255, 0.3);
}

.room-capacity {
  color: var(--amber) !important;
}

.rs-tools .ping, .rs-tools .server-load-button {
  min-height: max(0.44rem, 30px);
}

.rs-opt--exp {
  width: 100%;
  padding: 0.08rem 0.1rem;
  font: inherit;
  color: var(--text-hi);
  text-align: left;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.14);
  cursor: pointer;
}

.rs-opt--exp:hover:not(:disabled) {
  border-color: var(--mint-a35);
}

.rs-opt--exp > .icon {
  flex: 0 0 auto;
  width: 1.1em;
  height: 1.1em;
}

.rs-foot__left {
  display: flex;
  align-items: flex-end;
}

.rs-exp {
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  max-width: 100%;
  min-height: max(0.6rem, 40px);
  padding: 0.06rem 0.18rem 0.06rem 0.14rem;
  font-style: inherit;
  font-variant: inherit;
  font-weight: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: max(calc(.18 * var(--t)), 12px);
  color: rgb(223, 227, 225);
  text-align: left;
  background: rgba(12, 15, 15, 0.82);
  border: 1px solid rgba(255, 255, 255, 0.22);
  cursor: pointer;
}

.rs-exp > .icon {
  flex: 0 0 auto;
  width: 1.2em;
  height: 1.2em;
  color: rgb(154, 161, 158);
}

.rs-exp > span {
  display: flex;
  flex-direction: column;
  min-width: 0px;
}

.rs-exp b {
  font-weight: 700;
  white-space: nowrap;
}

.rs-exp small {
  overflow: hidden;
  font-size: 0.8em;
  color: rgb(141, 147, 145);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rs-exp:hover:not(:disabled) {
  border-color: var(--mint-a35);
  background: rgba(20, 30, 28, 0.9);
}

.rs-exp:disabled {
  cursor: default;
  opacity: 0.6;
}

.rs-exp.is-on {
  border-color: var(--mint-a35);
}

.rs-exp.is-on > .icon, .rs-exp.is-on small {
  color: rgb(79, 232, 192);
}

@media (max-height: 520px), (max-width: 900px) {
  .rs-exp small {
    display: none;
  }
}

@media (max-width: 640px) {
  .rs-foot__left, .rs-foot__right {
    grid-column: 1 / -1;
  }

  .rs-foot__left {
    justify-content: center;
  }

  .rs-exp {
    min-height: 36px;
  }

  .rs-go .proto-start__mark {
    display: none;
  }

  .rs-go .proto-start__label {
    white-space: nowrap;
  }
}

.rseat__plate.has-nc, .me-chip.has-nc {
  overflow: hidden;
}

.nc-layer--camp {
  background: var(--nc-shade, linear-gradient(90deg, rgba(8, 11, 11, .86), rgba(8, 11, 11, .5) 55%, rgba(8, 11, 11, .12))),
  var(--nc) right 6% center / auto 150% no-repeat, var(--nc-tint, #1d2624);
}

.rseat__bg {
  position: absolute;
  right: 0.04rem;
  top: 0.04rem;
  z-index: 1;
  display: grid;
  place-items: center;
  width: max(0.3rem, 22px);
  height: max(0.3rem, 22px);
  padding: 0px;
  color: rgb(238, 240, 239);
  background: rgba(0, 0, 0, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 3px;
  cursor: pointer;
  opacity: 0.7;
}

.rseat__bg:hover, .rseat__bg:focus-visible {
  opacity: 1;
  border-color: rgb(93, 240, 198);
}

.rseat__bg .icon {
  width: 70%;
  height: 70%;
}

.rseat__ava {
  grid-row: 1 / 3;
  position: relative;
  z-index: 1;
  display: block;
  padding: 0px;
  font: inherit;
  color: inherit;
  background: none;
  border: 0px;
  cursor: pointer;
}

.rseat__ava:hover .avatar, .rseat__ava:focus-visible .avatar {
  filter: brightness(1.15);
}

.rseat__ava .avatar__badge--self {
  display: none;
}

.rseat__ava-pen {
  position: absolute;
  right: -3px;
  bottom: -3px;
  display: grid;
  place-items: center;
  width: max(0.18rem, 11px);
  height: max(0.18rem, 11px);
  color: rgb(8, 34, 27);
  background: rgb(79, 232, 192);
  border-radius: 2px;
  opacity: 0.85;
}

.rseat__ava:hover .rseat__ava-pen, .rseat__ava:focus-visible .rseat__ava-pen {
  opacity: 1;
}

.rseat__ava-pen .icon {
  width: 75%;
  height: 75%;
}

.nc-pick__card {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.nc-pick__art--skin img {
  position: absolute;
  right: 0px;
  top: 0px;
  width: 50%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 14%;
  pointer-events: none;
  mask-image: linear-gradient(90deg, transparent, rgb(0, 0, 0) 45%);
}

.nc-pick__art--skin .nc-pick__name {
  position: relative;
  display: flex;
  flex-direction: column;
}

.nc-pick__art--skin .nc-pick__name small {
  font-size: 11px;
  font-weight: 500;
  color: rgb(169, 180, 176);
}

.nc-pick__theme--skins {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.nc-pick__search {
  flex: 0 1 200px;
  min-width: 0px;
  height: 26px;
  padding: 0px 8px;
  font-style: inherit;
  font-variant: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: 13px;
  font-weight: 400;
  color: rgb(230, 236, 234);
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.18);
  outline: none;
}

.nc-layer--skin {
  background: var(--nc-shade, linear-gradient(90deg, rgba(8, 11, 11, .86), rgba(8, 11, 11, .45) 50%, rgba(8, 11, 11, .1))),
  var(--nc) center 24% / cover no-repeat, #101514;
}

.nc-pick__art {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.08rem;
  width: 100%;
  aspect-ratio: 600 / 186;
  padding: 0px 12px;
  border-radius: 2px;
  overflow: hidden;
  color: rgb(238, 243, 241);
  font-size: 13px;
  font-weight: 700;
  background: rgb(16, 21, 20);
}

.nc-pick__card--none .nc-pick__art {
  justify-content: center;
  color: rgb(154, 166, 162);
  border: 1px dashed rgba(255, 255, 255, 0.18);
}

.nc-pick__card--none .icon {
  width: 18px;
  height: 18px;
}

.sp-owner-name {
  color: rgb(255, 210, 122) !important;
}

.sp-owner-badge {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  flex: 0 0 auto;
  padding: 0px 5px;
  font-size: max(calc(.12 * var(--t)), 10px);
  line-height: 1.5;
  font-weight: 700;
  color: rgb(228, 189, 96);
  border: 1px solid rgb(228, 189, 96);
  border-radius: 2px;
  white-space: nowrap;
}

.sp-owner-badge .icon {
  width: 1.1em;
  height: 1.1em;
}

.rseat.is-owner .rseat__plate {
  border-color: rgba(228, 189, 96, 0.65);
}

.set-owner {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.set-owner h4 {
  margin: 0px;
  font-size: 14px;
  color: var(--text-hi);
}

.set-owner__row {
  display: flex;
  gap: 8px;
  align-items: center;
}

.set-owner__row input {
  flex: 1 1 auto;
  min-width: 0px;
  height: 40px;
  padding: 0px 10px;
  font-style: inherit;
  font-variant: inherit;
  font-weight: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: 16px;
  color: var(--text-hi);
  background: var(--bg-3);
  border: 1px solid var(--line-2);
}

.ach-card__nc {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 0.04rem;
  padding: 0.02rem 0.1rem;
  font-style: inherit;
  font-variant: inherit;
  font-weight: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: 0.17rem;
  color: rgb(230, 236, 234);
  background: rgba(8, 12, 11, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 0.03rem;
  cursor: pointer;
}

.ach-card__nc:hover {
  border-color: var(--mint-400);
}

.ach-card__nc .icon {
  width: 1em;
  height: 1em;
}

.ach-card__edits {
  display: flex;
  flex-wrap: wrap;
  gap: 0.06rem;
}

.ach-marks--list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(4.6rem, 1fr));
  gap: 0.16rem 0.3rem;
  padding-left: 0.8rem;
}

.ach-mark--row {
  flex-direction: row;
  align-items: center;
  gap: 0.2rem;
}

.ach-mark--row .ach-mark__frame {
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
  color: rgba(74, 242, 196, 0.5);
}

.ach-mark--row .ach-mark__frame > .icon {
  width: 0.5rem;
  height: 0.5rem;
}

.ach-mark--row.is-done .ach-mark__frame {
  color: rgb(74, 242, 196);
  box-shadow: rgba(74, 242, 196, 0.7) 0px 0px 0px 2px inset, rgba(74, 242, 196, 0.3) 0px 0px 0.14rem;
}

.ach-mark--row:not(.is-done) {
  opacity: 0.78;
}

.ach-mark__badge .icon {
  width: 0.2rem;
  height: 0.2rem;
}

.ach-mark__text {
  display: flex;
  flex-direction: column;
  gap: 0.04rem;
  min-width: 0px;
}

.ach-mark__text b {
  font-size: 0.28rem;
}

.ach-mark__text small {
  font-size: 0.22rem;
  color: rgb(169, 179, 176);
}

.ach-mark__got {
  font-size: 0.2rem;
  color: rgb(74, 242, 196);
}

.ach-mark__bar {
  position: relative;
  display: block;
  height: 0.26rem;
  background: rgba(220, 230, 226, 0.1);
  overflow: hidden;
}

.ach-mark__bar i {
  position: absolute;
  left: 0px;
  top: 0px;
  bottom: 0px;
  background: rgba(74, 242, 196, 0.5);
}

.ach-mark__bar em {
  position: relative;
  padding-left: 0.08rem;
  font-style: normal;
  font-size: 0.18rem;
  line-height: 0.26rem;
  color: rgb(230, 236, 234);
}

.ach-tops--titles {
  flex-wrap: wrap;
  gap: 0.3rem 0.5rem;
  padding-left: 0.8rem;
}

.ach-top--title .ach-top__frame {
  width: 1.4rem;
  height: 1.4rem;
}

.ach-top--title .ach-top__frame img {
  width: 80%;
  height: 80%;
  object-fit: contain;
}

.ach-top--title.is-none {
  opacity: 0.4;
}

.ach-local {
  display: flex;
  align-items: center;
  gap: 0.1rem;
  margin: 0.4rem 0px 0.1rem 0.4rem;
  font-size: 0.22rem;
  color: rgb(140, 152, 148);
}

.ach-local .icon {
  flex: 0 0 auto;
  width: 1.1em;
  height: 1.1em;
}

@media (max-width: 1100px), (max-height: 560px) {
  .ach-top-area {
    grid-template-columns: minmax(0px, 1fr);
  }

  .ach-marks--list {
    grid-template-columns: minmax(0px, 1fr);
    padding-left: 0.2rem;
  }

  .ach-tops, .ach-tops--band, .ach-tops--titles {
    flex-wrap: wrap;
    gap: 0.3rem;
    padding-left: 0.2rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hub-notice {
    transition: none;
  }
}

.lobby-screen .modal {
  height: calc(var(--sp-vh, 1vh) * 100);
  padding: calc(16px + var(--sa-t, 0px)) calc(16px + var(--sa-r, 0px)) calc(16px + var(--sa-b, 0px)) calc(16px + var(--sa-l, 0px));
}

.lobby-dialog {
  width: min(10rem, calc(100vw - var(--sa-l, 0px) - var(--sa-r, 0px) - 32px));
  max-height: calc(var(--sp-vh, 1vh) * 100 - var(--sa-t, 0px) - var(--sa-b, 0px) - 32px);
  min-height: 0px;
}

.lobby-dialog .modal__head {
  flex: 0 0 auto;
}

.lobby-dialog .modal__body {
  min-height: 0px;
  overscroll-behavior: contain;
}

.lobby-dialog .modal__title {
  font-size: max(calc(.26 * var(--t)), 18px);
}

.lobby-dialog .modal__text, .lobby-protocol-text {
  font-size: max(calc(.18 * var(--t)), 14px);
  line-height: 1.65;
}

.lobby-dialog .modal__text + .modal__text {
  margin-top: 0.16rem;
}

.lobby-protocol-text {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}

.lobby-protocol-text ul {
  padding-left: 1.4em;
}

.announcement-list {
  display: flex;
  flex-direction: column;
  gap: 0.24rem;
}

.announcement-entry {
  overflow-wrap: anywhere;
}

.announcement-entry + .announcement-entry {
  border-top: 1px solid var(--line);
  padding-top: 0.22rem;
}

.announcement-entry header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.1rem 0.2rem;
  margin-bottom: 0.12rem;
}

.announcement-entry h3 {
  font-size: max(calc(.23 * var(--t)), 16px);
  color: var(--text-hi);
}

.announcement-date {
  font-size: max(calc(.14 * var(--t)), 12px);
  color: var(--text-lo);
}

.announcement-entry p {
  white-space: pre-wrap;
  font-size: max(calc(.18 * var(--t)), 14px);
  line-height: 1.7;
}

.announcement-entry p + p {
  margin-top: 0.12rem;
}

.announcement-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.14rem;
  padding-block: 0.36rem;
  text-align: center;
}

.announcement-state > .icon {
  width: 0.4rem;
  height: 0.4rem;
  color: var(--mint-400);
}

.announcement-state h3 {
  color: var(--text-hi);
  font-size: max(calc(.22 * var(--t)), 16px);
}

.announcement-state p {
  font-size: max(calc(.17 * var(--t)), 14px);
  line-height: 1.6;
}

.announcement-board .modal__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 0%;
  gap: 12px;
  overflow: hidden;
}

.announcement-scroll {
  min-height: 0px;
  flex: 1 1 0%;
  overflow-y: scroll;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding-right: 12px;
  touch-action: pan-y;
}

.announcement-scroll::-webkit-scrollbar {
  width: 8px;
}

.announcement-scroll::-webkit-scrollbar-track {
  background: var(--bg-3);
}

.announcement-scroll::-webkit-scrollbar-thumb {
  background: var(--mint-700);
  border: 2px solid var(--bg-3);
  border-radius: 4px;
}

.announcement-reading {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
  color: var(--text-lo);
  font-size: 12px;
}

.announcement-reading__track {
  height: 3px;
  background: var(--bg-4);
  overflow: hidden;
}

.announcement-reading__track i {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--mint-500);
  transform-origin: left center;
}

.announcement-reading > span {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.announcement-reading .icon {
  width: 14px;
  height: 14px;
  transform: rotate(90deg);
}

.announcement-reading.has-more {
  color: var(--mint-400);
}

.fullscreen-help {
  width: min(max(5.4rem, 320px), -32px + 100vw);
}

.fullscreen-help p {
  font-size: max(calc(.17 * var(--t)), 14px);
  line-height: 1.65;
}

.fullscreen-help p + p {
  margin-top: 12px;
}

.announcement-board .modal__actions .btn, .server-status-modal .modal__actions .btn, .fullscreen-help .modal__actions .btn {
  min-height: 40px;
  font-size: max(calc(.17 * var(--t)), 14px);
  padding-inline: 16px;
}

@media (max-height: 460px) {
  .lobby-dialog .modal__head {
    padding: 12px 16px 4px;
  }

  .lobby-dialog .modal__body {
    padding: 8px 16px 12px;
  }

  .lobby-dialog .modal__actions {
    padding: 8px 16px;
  }

  .lobby-dialog .modal__actions .btn {
    min-height: 44px;
    font-size: 14px;
  }

  .lobby-dialog .micro {
    font-size: 10px;
  }
}

:is(.sp-touch, .sp-coarse) :is(.ally-key input, .cardpick__search input, .sw-search input) {
  font-size: 16px;
}

:is(.sp-touch, .sp-coarse) .nc-pick__search {
  font-size: 16px;
}

.lobby-screen .join-row .field--code .field__input {
  font-size: max(calc(.34 * var(--t)), 16px);
}

.hub-side .tips__head > span:not(.tips__idx) {
  white-space: nowrap;
}

.hub-side .tips__head .micro {
  display: none;
}

.ally-card--join .ally-note {
  padding: 0.04rem 0.16rem 0.08rem;
}

.hub-topbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  column-gap: 0.24rem;
}

.hub-topbar .topbar__left {
  flex: 0 1 auto;
}

.hub-topbar .topbar__right {
  flex: 0 0 auto;
  margin-left: auto;
}

.hub-topbar .latency-status {
  flex-wrap: nowrap;
}

@media (max-height: 560px), (max-width: 767px) {
  .hub-topbar .connection-status, .hub-topbar .server-load__caption {
    display: none;
  }

  .hub-topbar .ping, .hub-topbar .server-load-button {
    min-height: 28px;
    height: 28px;
  }

  .hub-topbar .lobby-back .btn__label, .hub-topbar .online-word, .hub-topbar .me-chip__text .micro {
    display: none;
  }

  .hub-topbar .topbar__tools .btn--square.btn--sm, .sp-coarse .hub-topbar .topbar__tools .btn--square.btn--sm {
    --sq: 36px;
  }

  .hub-topbar .topbar__tools .fsbtn {
    width: 36px;
    height: 36px;
    min-width: 36px;
  }

  .hub-online {
    margin-right: 4px;
    padding-inline: 8px;
  }

  .hub-credit {
    max-width: 100%;
  }
}

@media (max-aspect-ratio: 4 / 3) {
  .hub-topbar {
    height: auto;
    row-gap: 6px;
    padding-block: 6px;
  }

  .hub-topbar .topbar__left {
    flex: 1 1 100%;
    flex-wrap: wrap;
    row-gap: 6px;
  }

  .hub-topbar .topbar__left > .topbar__sep {
    display: none;
  }
}

.lobby-hub:lang(ko) .hub-stage {
  word-break: keep-all;
  overflow-wrap: break-word;
}

.lobby-hub:lang(ja) .hub-stage {
  line-break: strict;
}

.tips__text, .proto-brief p, .proto-hint, .proto-foot .proto-start__label {
  text-wrap: pretty;
}

.ally-recent:lang(ja) {
  word-break: auto-phrase;
}

.lobby-hub > .topbar .ping {
  height: auto;
  min-height: 0.32rem;
  padding-top: 1px;
  padding-bottom: 1px;
}

.hub-bg__glow, .hub-bg__ship {
  position: absolute;
  left: 50%;
  height: auto;
  transform: translate(-50%, -50%);
  mix-blend-mode: screen;
}

.hub-bg__glow {
  top: 46%;
  width: 9.6rem;
  opacity: 0.2;
}

.hub-bg__ship {
  top: 54%;
  width: 13.4rem;
  opacity: 0.4;
  animation: 18s ease-in-out 0s infinite alternate none running hub-ship;
}

@keyframes hub-ship {
  100% {
    transform: translate(-50%, calc(-50% - 0.1rem));
  }
}

.lobby-hub .topbar {
  background: linear-gradient(rgba(4, 8, 8, 0.85), transparent);
  border-bottom: 0px;
}

.hub-bg__own {
  position: absolute;
  inset: 0px;
  background: rgb(5, 8, 7);
  animation: 400ms ease-out 0s 1 normal backwards running hub-own-in;
}

.hub-bg__own img, .hub-bg__own video, .hub-bg__own canvas {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hub-bg__own::after {
  content: "";
  position: absolute;
  inset: 0px;
  background: rgba(5, 8, 7, var(--own-dim, .35));
}

@keyframes hub-own-in {
  0% {
    opacity: 0;
  }
}

.lmedia .modal__body {
  display: flex;
  flex-direction: column;
  gap: 0.16rem;
}

.lmedia__part {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.14rem 0.16rem;
  border: 1px solid var(--line);
  background: rgba(0, 0, 0, 0.25);
}

.lmedia__head {
  display: flex;
  align-items: baseline;
  gap: 0.1rem;
  font-size: calc(.18 * var(--t));
  color: var(--text-hi);
}

.lmedia__now {
  display: flex;
  align-items: center;
  gap: 0.08rem;
  min-width: 0px;
  font-size: calc(.16 * var(--t));
  color: var(--text-md);
}

.lmedia__now .icon {
  flex: 0 0 auto;
  width: 0.2rem;
  height: 0.2rem;
  color: var(--mint-500);
}

.lmedia__name {
  min-width: 0px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lmedia__size {
  flex: 0 0 auto;
  font-size: calc(.14 * var(--t));
  color: var(--text-lo);
}

.lmedia__btns {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.1rem;
}

.lmedia__btns .set-toggle {
  grid-column: auto;
}

.lmedia__dim {
  padding: 0px 0.16rem;
}

.lmedia__note {
  display: flex;
  gap: 0.06rem;
  margin: 0px;
  font-size: calc(.15 * var(--t));
  line-height: 1.6;
  color: var(--text-lo);
}

.lmedia__note .icon {
  flex: 0 0 auto;
  width: 0.18rem;
  height: 0.18rem;
  margin-top: 0.04rem;
}

[data-hub-theme="night"] {
  --sky-0: #03080a;
  --sky-1: #08141a;
  --sky-2: #12262a;
  --sky-3: #050909;
  --haze: rgba(92, 168, 156, .17);
  --cloud: rgba(140, 196, 186, .055);
  --ridge-far: #122022;
  --ridge-mid: #0b1516;
  --ridge-near: #060b0b;
  --rim: rgba(110, 226, 196, .34);
  --fog: rgba(54, 104, 98, .3);
  --beam: rgba(150, 240, 215, .1);
  --beacon: #59f4ca;
  --window: rgba(89, 244, 202, .7);
  --grid: rgba(89, 244, 202, .32);
  --mote: rgba(170, 245, 225, .7);
}

[data-hub-theme="official"] {
  --sky-0: #08100f;
  --sky-1: #0c1a1b;
  --sky-2: #1b3134;
  --sky-3: #040606;
  --ridge-far: transparent;
  --ridge-mid: transparent;
  --ridge-near: transparent;
  --beacon: rgba(150, 220, 230, .7);
}

.hub-scene {
  position: absolute;
  inset: 0px;
  pointer-events: none;
  overflow: hidden;
  background: var(--sky-3);
}

.hub-center__logo {
  position: relative;
  width: 1.3rem;
  height: auto;
  filter: drop-shadow(rgba(210, 255, 240, 0.25) 0px 0px 0.12rem);
}

.hub-center__title em {
  font-style: normal;
  color: var(--mint-400);
}

.hub-center__title--latin {
  font-family: var(--font-display);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.hub-center__title {
  max-width: calc(100% - 8.8rem);
}

.hub-center__title--latin {
  font-size: min(calc(.46 * var(--t)), calc((100vw - 9.52rem) / 20.2));
}

.hub-ach__mark {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
}

.hub-ach__mark .emblem {
  margin: 0px;
  gap: 0.06rem;
  animation: auto ease 0s 1 normal none running none;
}

.hub-ach__mark .emblem__svg {
  width: 0.52rem;
  height: 0.56rem;
  filter: drop-shadow(rgba(0, 0, 0, 0.6) 0px 0px 0.04rem);
}

.hub-ach__mark .emblem__svg circle {
  fill: rgb(21, 17, 12);
  animation: auto ease 0s 1 normal none running none;
}

.hub-ach__mark .emblem__svg circle.is-accent {
  fill: rgb(44, 240, 184);
}

.hub-ach__mark .emblem__bracket {
  width: 0.07rem;
  height: 0.66rem;
  border-width: 1px;
  border-color: rgba(20, 16, 10, 0.55);
}

.hub-ach__medal {
  width: 0.44rem;
  height: 0.44rem;
  object-fit: contain;
}

.hub-tile:hover, .hub-tile:focus-visible {
  background: rgba(24, 40, 36, 0.9);
  border-color: var(--mint-a35);
}

.hub-tile__icon .icon {
  width: 0.24rem;
  height: 0.24rem;
}

.lobby-hub .hub-plate {
  --pl-ink: #222b28;
  --bk-c: var(--mint-400);
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.14rem;
  width: 100%;
  height: auto;
  min-height: 0.7rem;
  min-width: 0px;
  padding: 0.04rem 0.22rem 0.04rem 0.2rem;
  font-style: inherit;
  font-variant: inherit;
  font-weight: inherit;
  font-stretch: inherit;
  line-height: inherit;
  font-family: inherit;
  font-optical-sizing: inherit;
  font-size-adjust: inherit;
  font-kerning: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-language-override: inherit;
  font-size: calc(.2 * var(--t));
  letter-spacing: 0.04em;
  color: rgb(17, 24, 22);
  text-align: left;
  cursor: pointer;
  background: linear-gradient(var(--pl-ink), var(--pl-ink)) left .07rem center / 2px 54% no-repeat,
    linear-gradient(var(--pl-ink), var(--pl-ink)) left .07rem top 23% / .06rem 2px no-repeat,
    linear-gradient(var(--pl-ink), var(--pl-ink)) left .07rem bottom 23% / .06rem 2px no-repeat,
    linear-gradient(var(--pl-ink), var(--pl-ink)) right .07rem center / 2px 54% no-repeat,
    linear-gradient(var(--pl-ink), var(--pl-ink)) right .07rem top 23% / .06rem 2px no-repeat,
    linear-gradient(var(--pl-ink), var(--pl-ink)) right .07rem bottom 23% / .06rem 2px no-repeat,
    linear-gradient(180deg, #e8edea, #c6cfcb);
  border: 1px solid rgba(255, 255, 255, 0.5);
  box-shadow: rgba(0, 0, 0, 0.5) 0px 0.05rem 0.18rem, rgba(0, 0, 0, 0.14) 0px -2px 0px inset;
}

.lobby-hub .hub-plate:not(:disabled):hover {
  border-color: rgb(255, 255, 255);
  box-shadow: rgba(0, 0, 0, 0.55) 0px 0.05rem 0.22rem, rgba(78, 216, 175, 0.3) 0px 0px 0.16rem;
  filter: brightness(1.05);
}

.lobby-hub .hub-plate:focus-visible {
  outline: 2px solid var(--mint-400);
  outline-offset: 2px;
}

.hub-plate__glyph, .lobby-hub .hub-plate .lo-entry__icon, .lobby-hub .hub-plate > .btn__icon {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 0.46rem;
  height: 0.46rem;
  padding: 0.07rem;
  box-sizing: border-box;
  color: var(--mint-400);
  background: rgb(24, 33, 32);
  box-shadow: rgba(255, 255, 255, 0.08) 0px 0px 0px 1px inset;
}

.hub-plate__label, .lobby-hub .hub-plate .btn__label {
  flex: 1 1 0px;
  min-width: min-content;
  font-weight: 900;
  letter-spacing: 0.04em;
  line-height: 1.15;
  white-space: normal;
  color: rgb(17, 24, 22);
}

.lobby-hub .hub-plate .lo-entry__n {
  margin-left: auto;
}

.lobby-hub .hub-plate--ach {
  display: none;
}

.hub-plate--ach .hub-plate__glyph svg {
  fill: currentcolor;
}

.hub-entry-wrap:nth-child(2) {
  animation-delay: 60ms;
}

.hub-entry__group .icon {
  flex: 0 0 auto;
  width: 0.16rem;
  height: 0.16rem;
  color: var(--mint-400);
}

.hub-entry__long {
  min-width: 0px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.hub-entry__short {
  display: none;
}

@media (max-width: 900px) and (min-height: 521px) {
  .hub-entry__group {
    min-height: 3em;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }

  .hub-entry__long {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }
}

.hub-entry:hover, .hub-entry:focus-visible {
  transform: translateY(-0.04rem);
  border-color: var(--mint-400);
  box-shadow: 0 .08rem .3rem rgba(0, 0, 0, .55), 0 0 .2rem var(--mint-a20);
}

.hub-entry:active {
  transform: translateY(1px);
}

.hub-entry__icon .icon {
  width: calc(.42 * var(--t));
  height: calc(.42 * var(--t));
}

.hub-entry--coop {
  background: linear-gradient(160deg, var(--mint-500), #1f8f72);
  color: rgb(4, 20, 15);
  border-color: var(--mint-400);
}

.hub-entry--coop .hub-entry__en {
  color: rgba(4, 20, 15, 0.75);
}

.hub-entry--coop .hub-entry__icon {
  color: rgba(4, 20, 15, 0.25);
}

.hub-entry--coop .hub-entry__corner {
  background: linear-gradient(135deg, transparent 50%, rgb(232, 255, 247) 50%);
}

.tips__pager {
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  margin-left: auto;
}

.modal.proto-veil {
  padding: 0px;
  background: rgb(11, 12, 12);
  backdrop-filter: none;
}

.modal__box.proto, .modal__box.ally {
  position: fixed;
  inset: 0px;
  width: auto;
  max-height: none;
  padding: var(--sa-t, 0px) var(--sa-r, 0px) var(--sa-b, 0px) var(--sa-l, 0px);
  color: rgb(238, 240, 239);
  background: rgb(11, 12, 12);
  border: 0px;
  box-shadow: none;
  overscroll-behavior: contain;
  animation: proto-in 200ms var(--ease-out) backwards;
}

.modal__box.proto::after, .modal__box.proto > .modal__stripe, .modal__box.ally::after, .modal__box.ally > .modal__stripe {
  display: none;
}

.modal__box.proto > .modal__body, .modal__box.ally > .modal__body {
  flex: 1 1 auto;
  min-height: 0px;
  display: flex;
  flex-direction: column;
  padding: 0px;
  overflow: hidden;
  color: inherit;
}

.proto__body, .ally__body {
  position: relative;
  flex: 1 1 auto;
  min-height: 0px;
  display: flex;
  flex-direction: column;
}

@keyframes proto-in {
  0% {
    opacity: 0;
  }
}

.proto-top, .proto-body {
  position: relative;
}

.proto-back:hover, .proto-back:focus-visible {
  border-color: rgba(255, 255, 255, 0.35);
}

.proto-title .modal__title {
  margin: 0px;
  font-size: calc(.36 * var(--t));
  font-weight: 900;
  letter-spacing: 0.06em;
  color: rgb(238, 240, 239);
}

.proto-title__mode .icon {
  width: 1.1em;
  height: 1.1em;
}

.proto__pic {
  position: absolute;
  inset: -0.5rem -1.8rem 0.9rem -0.3rem;
  display: grid;
  place-items: center;
  min-height: 0px;
  animation: proto-pic var(--t-slow) var(--ease-out);
}

.proto__art {
  width: 100%;
  height: 100%;
  max-width: 9.4rem;
  max-height: 7.3rem;
  object-fit: contain;
  filter: drop-shadow(0 0 .2rem color-mix(in srgb, var(--d-color) 45%, transparent));
}

.proto__glyph {
  width: 2.2rem;
  height: 2.2rem;
  color: var(--d-color);
  opacity: 0.8;
  filter: drop-shadow(0 0 .2rem var(--d-color));
}

@keyframes proto-pic {
  0% {
    opacity: 0;
    transform: translateX(-0.14rem);
  }
}

@keyframes ps-in {
  0% {
    opacity: 0;
    filter: brightness(0.15);
  }

  35% {
    opacity: 0.35;
    filter: brightness(0.3);
  }

  100% {
    opacity: 1;
    filter: none;
  }
}

.ps-ship image {
  filter: drop-shadow(0 0 10px color-mix(in srgb, var(--d-color) 55%, transparent));
}

.ps-cable__pulse {
  fill: none;
  stroke: rgb(255, 246, 216);
  stroke-width: 6;
  stroke-linecap: round;
  stroke-dasharray: 90, 1200;
  stroke-dashoffset: 90;
  filter: drop-shadow(0 0 6px var(--d-color));
  animation: 2.6s cubic-bezier(0.5, 0, 0.7, 1) 400ms infinite normal none running ps-pulse;
}

@keyframes ps-pulse {
  0% {
    stroke-dashoffset: 90;
    opacity: 1;
  }

  85% {
    opacity: 1;
  }

  100% {
    stroke-dashoffset: -1000;
    opacity: 0;
  }
}

.ps-call rect.ps-call__icon {
  fill: currentcolor;
  fill-opacity: 0.25;
}

.ps-call {
  animation: ps-fig 420ms var(--ease-out) 420ms backwards;
}

.proto-side {
  min-height: 0px;
  display: flex;
  flex-direction: column;
  gap: 0.14rem;
}

.proto-list > :first-child {
  margin-top: auto;
}

.proto-list > :last-child {
  margin-bottom: auto;
}

.pcard:hover:not(.is-on), .pcard:focus-visible:not(.is-on) {
  border-color: rgb(123, 127, 129);
}

.pcard:disabled {
  cursor: default;
}

.pcard:disabled:hover:not(.is-on) {
  border-color: rgb(85, 88, 90);
}

.pcard__head, .pcard__desc, .pcard__effects, .pcard__meta {
  position: relative;
}

.pcard.is-on .pcard__head, .pcard.is-on .pcard__desc, .pcard.is-on .pcard__effects, .pcard.is-on .pcard__meta {
  padding-right: max(1.3rem, 32px, calc(70px * var(--sp-ui, 1)));
}

.pcard__stage {
  display: inline-flex;
  align-items: center;
  gap: 0.04rem;
}

.pcard__stage .icon {
  width: 1.1em;
  height: 1.1em;
}

@media (max-width: 720px) {
  .create-box__test {
    font-size: 16px;
  }

  .create-box__test input {
    width: 32px;
    height: 32px;
  }

  .create-box__test em {
    font-size: 14px;
  }
}

.proto-hint .icon {
  flex: 0 0 auto;
  width: 1.1em;
  height: 1.1em;
}

.proto-hint--ro {
  min-height: max(.64rem, 32px, calc(38px * var(--sp-ui, 1)));
  font-size: calc(.18 * var(--t));
  color: rgb(185, 191, 189);
}

.proto-start:hover:not(:disabled), .proto-start:focus-visible {
  filter: brightness(1.07);
}

.proto-start:focus-visible {
  outline: rgb(238, 240, 239) solid 2px;
  outline-offset: 2px;
}

.proto-foot .proto-start__label {
  flex: 1 1 auto;
  padding-right: 8%;
  font-size: min(calc(.4 * var(--t)), .46rem);
  white-space: normal;
  line-height: 1.1;
}

.proto-foot .proto-start__rook {
  font-size: min(calc(.36 * var(--t)), .4rem);
}

.ally-guide:hover, .ally-guide:focus-visible {
  filter: brightness(1.06);
}

.ally-side > :first-child {
  margin-top: auto;
}

.ally-side > :last-child {
  margin-bottom: auto;
}

button.ally-card:hover, button.ally-card:focus-visible {
  border-color: rgba(93, 240, 198, 0.6);
}

.ally-card--create .ally-card__bar {
  flex-wrap: wrap;
  align-content: center;
  row-gap: 1px;
  height: auto;
  min-height: max(.74rem, 32px, calc(42px * var(--sp-ui, 1)));
  padding-top: 4px;
  padding-bottom: 4px;
}

.ally-card__bar small:lang(ko) {
  word-break: keep-all;
  overflow-wrap: break-word;
}

.ally-card__bar small:lang(ja) {
  line-break: strict;
}

button.ally-card:disabled .ally-card__bar {
  filter: grayscale(0.5) brightness(0.8);
}

.ally-test {
  padding: 0px 0.2rem;
}

.ally-card__bar--join:hover:not(:disabled), .ally-card__bar--join:focus-visible {
  filter: brightness(1.06);
}

.ally-key:focus-within {
  border-color: rgb(255, 154, 60);
}

.ally-key .field {
  flex: 1 1 auto;
  height: 100%;
  gap: 0px;
}

.ally-key .field__box {
  height: 100%;
  padding: 0px;
  gap: 0.1rem;
  background: none;
  border: 0px;
  box-shadow: none;
}

.ally-key .field__box::after {
  display: none;
}

.ally-key .field__icon {
  flex: 0 0 auto;
  width: max(0.24rem, 15px);
  height: max(0.24rem, 15px);
  color: rgb(201, 206, 204);
}

.ally-key .field__box:focus-within .field__icon {
  color: rgb(255, 154, 60);
}

.ally-key__spec:hover:not(:disabled), .ally-key__spec:focus-visible {
  border-color: rgba(255, 255, 255, 0.5);
}

.ally-key__spec:disabled {
  opacity: 0.45;
  cursor: default;
}

.proto-brief__more {
  display: none;
}

@media (min-height: 521px) {
  .proto__body[data-fit="brief"] .pcard__desc, .proto__body[data-fit="names"] .pcard__desc, .proto__body[data-fit="names"] .pcard__effects, .proto__body[data-fit="names"] .pcard__meta {
    display: none;
  }

  .proto__body[data-fit="names"] .pcard {
    padding-top: 0.08rem;
    padding-bottom: 0.08rem;
  }

  .proto__body[data-fit="brief"] .pcard__head, .proto__body[data-fit="names"] .pcard__head {
    min-width: 0px;
  }

  .proto__body[data-fit="brief"] .pcard__glyph, .proto__body[data-fit="names"] .pcard__glyph {
    flex: 0 0 auto;
  }

  .proto__body[data-fit="brief"] .pcard__name, .proto__body[data-fit="names"] .pcard__name {
    min-width: 0px;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
  }

  .proto__body[data-fit="names"] .pcard.is-on .pcard__head {
    padding-right: max(.9rem, calc(46px * var(--sp-ui, 1)));
  }

  .proto__body[data-fit="names"] .pcard.is-on .pcard__stamp {
    right: 0.1rem;
    width: max(.8rem, 32px, calc(40px * var(--sp-ui, 1)));
    height: max(.64rem, 32px, calc(34px * var(--sp-ui, 1)));
  }

  .proto__body[data-fit="names"] .pcard.is-on .pcard__tick {
    width: max(0.4rem, 22px);
    height: max(0.4rem, 22px);
  }

  .proto__body[data-fit="names"] .pcard__ok {
    display: none;
  }

  .proto__body[data-fit="names"] .proto-brief__more {
    display: flex;
    flex-direction: column;
    gap: 0.04rem;
    margin-top: 0.06rem;
    padding-top: 0.06rem;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
  }

  .proto-brief__effects {
    display: flex;
    flex-direction: column;
    font-size: calc(.16 * var(--t));
    line-height: 1.4;
    color: rgb(233, 236, 235);
  }

  .proto-brief__effects span::before {
    content: "·";
    margin-right: 0.06rem;
  }

  .proto-brief__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.04rem 0.14rem;
    font-size: calc(.13 * var(--t));
    color: rgb(127, 133, 131);
  }

  .proto-brief__meta b {
    color: rgb(207, 211, 209);
  }
}

.lobby-hub, .modal__box.proto, .modal__box.ally {
  --tr-ease: cubic-bezier(.16, .84, .3, 1);
}

.lobby-hub .hub-center {
  animation: tr-zoom 600ms var(--tr-ease) 140ms backwards;
}

.lobby-hub .hub-side {
  animation: tr-left 480ms var(--tr-ease) 220ms backwards;
}

.lobby-hub .hub-right {
  animation: tr-right 480ms var(--tr-ease) 260ms backwards;
}

.modal__box.proto, .modal__box.ally {
  animation: 150ms linear 0s 1 normal backwards running tr-veil;
}

.proto__bg {
  animation: 340ms ease-out 140ms 1 normal backwards running tr-fade;
}

.proto-top {
  animation: 260ms ease-out 170ms 1 normal backwards running tr-fade;
}

.proto-title {
  animation: tr-right 400ms var(--tr-ease) 200ms backwards;
}

.proto__body::after, .ally__body::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0.5rem;
  z-index: 9;
  width: 0.3rem;
  height: 0.3rem;
  pointer-events: none;
  opacity: 0;
  border: 2px solid rgba(223, 230, 226, 0.55);
  box-shadow: rgb(10, 11, 11) 0px 0px 0px 3px inset, rgba(223, 230, 226, 0.3) 0px 0px 0px 5px inset;
  animation: 720ms ease-out 60ms 1 normal both running tr-diamond;
}

.hub-center__ver {
  position: relative;
  margin-top: 0.04rem;
  font-size: calc(.22 * var(--t));
  font-weight: 700;
  letter-spacing: 0.08em;
  color: rgb(159, 211, 255);
  text-shadow: rgba(0, 0, 0, 0.85) 0px 1px 0.08rem;
  overflow-wrap: anywhere;
}

.proto-list__wait {
  display: flex;
  align-items: center;
  gap: 0.08rem;
  margin: 0px;
  color: var(--text-lo);
  font-size: calc(.15 * var(--t));
}

.proto-list__wait.is-failed {
  flex-wrap: wrap;
  color: var(--amber);
}

.proto-list__wait.is-failed .icon {
  flex: 0 0 auto;
  width: 1.1em;
  height: 1.1em;
}
