:root {
  color-scheme: light dark;
  --page: #edf2f7;
  --panel: #ffffff;
  --panel-2: #f8fafc;
  --text: #152035;
  --muted: #607087;
  --line: #d8e1ec;
  --north: #2f6df6;
  --south: #e05264;
  --heal: #3ca7ff;
  --bolt: #78818e;
  --ok: #199466;
  --shadow: 0 18px 44px rgba(21, 32, 53, .12);
  --shell-pad: clamp(6px, .65vw, 10px);
  --layout-gap: clamp(6px, .65vw, 10px);
  --hud-width: clamp(238px, 16vw, 286px);
}

@media (prefers-color-scheme: dark) {
  :root {
    --page: #0f1723;
    --panel: #172232;
    --panel-2: #111b29;
    --text: #eef5ff;
    --muted: #a5b4c8;
    --line: #2a3a51;
    --shadow: 0 18px 44px rgba(0, 0, 0, .28);
  }
}

* {
  box-sizing: border-box;
}

html,
body {
  height: 100%;
  margin: 0;
  min-height: 100%;
  overflow: hidden;
}

body {
  background: var(--page);
  color: var(--text);
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  overscroll-behavior: none;
  width: 100%;
}

body.rune-loaded {
  cursor: crosshair;
}

button,
a {
  font: inherit;
}

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

.gate-shell {
  height: 100vh;
  height: 100dvh;
  inset: 0;
  margin: 0 auto;
  max-width: none;
  min-height: 0;
  overflow: hidden;
  padding: var(--shell-pad);
  position: fixed;
  width: 100vw;
}

.eyebrow {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

h1,
h2,
p {
  margin: 0;
}

.latency-meter,
.fps-meter {
  background: rgba(96, 112, 135, .1);
  border: 1px solid rgba(96, 112, 135, .22);
  border-radius: 5px;
  font-size: 11px;
  font-weight: 800;
  justify-self: start;
  min-width: 0;
  padding: 3px 7px;
  text-align: left;
}

.latency-meter.latency-good {
  background: rgba(25, 148, 102, .12);
  border-color: rgba(25, 148, 102, .34);
  color: #128257;
}

.latency-meter.latency-warn {
  background: rgba(222, 157, 38, .13);
  border-color: rgba(222, 157, 38, .36);
  color: #a86408;
}

.latency-meter.latency-bad {
  background: rgba(224, 82, 100, .13);
  border-color: rgba(224, 82, 100, .36);
  color: #c13f53;
}

.latency-meter.latency-unknown {
  color: var(--muted);
}

.fps-meter.fps-good {
  background: rgba(25, 148, 102, .12);
  border-color: rgba(25, 148, 102, .34);
  color: #128257;
}

.fps-meter.fps-warn {
  background: rgba(222, 157, 38, .13);
  border-color: rgba(222, 157, 38, .36);
  color: #a86408;
}

.fps-meter.fps-bad {
  background: rgba(224, 82, 100, .13);
  border-color: rgba(224, 82, 100, .36);
  color: #c13f53;
}

.fps-meter.fps-unknown {
  color: var(--muted);
}

.game-layout {
  align-items: stretch;
  display: grid;
  gap: var(--layout-gap);
  grid-template-columns: minmax(0, 1fr) var(--hud-width);
  height: 100%;
  max-height: 100%;
  min-height: 0;
  overflow: hidden;
}

.mobile-orientation,
.mobile-status-readout,
.mobile-menu-button,
.mobile-game-hud,
.mobile-mission-focus,
.mobile-joystick,
.mobile-spells {
  display: none;
}

.round-overlay {
  align-items: center;
  background: rgba(13, 20, 31, .58);
  display: grid;
  inset: 0;
  justify-items: center;
  padding: 18px;
  position: fixed;
  z-index: 10;
}

.round-overlay[hidden] {
  display: none;
}

.round-overlay button {
  touch-action: manipulation;
}

.round-overlay {
  opacity: 1;
  transition: opacity .22s ease;
}

.round-overlay.is-leaving {
  opacity: 0;
  pointer-events: none;
}

.start-overlay {
  background:
    radial-gradient(circle at 50% 24%, rgba(71, 129, 255, .18), transparent 32%),
    radial-gradient(circle at 78% 78%, rgba(224, 82, 100, .14), transparent 34%),
    linear-gradient(180deg, rgba(4, 8, 14, .72), rgba(5, 9, 16, .9));
  backdrop-filter: blur(2px) saturate(.85) brightness(.68);
  overflow: auto;
}

.start-overlay::before {
  background:
    linear-gradient(115deg, transparent 0 24%, rgba(255, 214, 106, .06) 34%, transparent 45%),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, .025) 0 1px, transparent 1px 88px);
  content: "";
  inset: 0;
  opacity: .55;
  pointer-events: none;
  position: absolute;
}

.round-dialog {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
  display: grid;
  gap: 14px;
  max-width: 460px;
  padding: 22px;
  text-align: center;
  width: min(100%, 460px);
}

.game-menu-overlay {
  background:
    radial-gradient(circle at 50% 34%, rgba(47, 109, 246, .16), transparent 36%),
    linear-gradient(180deg, rgba(3, 6, 12, .56), rgba(3, 6, 12, .82));
  backdrop-filter: blur(2px) saturate(.85);
  z-index: 14;
}

.game-menu-dialog {
  background:
    linear-gradient(180deg, rgba(30, 42, 61, .96), rgba(9, 14, 23, .98)),
    radial-gradient(circle at 50% 0, rgba(255, 214, 106, .11), transparent 58%);
  border: 1px solid rgba(255, 214, 106, .32);
  box-shadow:
    0 24px 80px rgba(0, 0, 0, .58),
    inset 0 1px 0 rgba(255, 255, 255, .09);
  color: #edf5ff;
  gap: 16px;
  max-width: 420px;
  padding: 24px;
}

.game-menu-dialog h2 {
  color: #fff7d6;
  font-size: 30px;
  line-height: 1;
  text-transform: uppercase;
}

.game-menu-actions {
  display: grid;
  gap: 10px;
}

.game-menu-hint {
  color: #9fb0c9;
  font-size: 12px;
  font-weight: 800;
}

.connection-lost-overlay {
  background:
    radial-gradient(circle at 50% 34%, rgba(255, 73, 96, .17), transparent 36%),
    linear-gradient(180deg, rgba(3, 6, 12, .62), rgba(3, 6, 12, .9));
  backdrop-filter: blur(2px) saturate(.82);
  z-index: 16;
}

.connection-lost-dialog {
  background:
    linear-gradient(180deg, rgba(46, 32, 42, .97), rgba(10, 13, 20, .99)),
    radial-gradient(circle at 50% 0, rgba(255, 214, 106, .12), transparent 56%);
  border: 1px solid rgba(255, 92, 111, .38);
  box-shadow:
    0 24px 80px rgba(0, 0, 0, .62),
    0 0 0 1px rgba(255, 214, 106, .1),
    inset 0 1px 0 rgba(255, 255, 255, .08);
  color: #edf5ff;
  gap: 16px;
  max-width: 460px;
  padding: 24px;
}

.connection-lost-dialog h2 {
  color: #ffd6a0;
  font-size: clamp(28px, 5vw, 44px);
  line-height: 1;
  margin: 0;
  text-shadow:
    0 2px 0 rgba(0, 0, 0, .38),
    0 0 24px rgba(255, 73, 96, .22);
  text-transform: uppercase;
}

.connection-lost-dialog p {
  color: #dfe8f5;
  font-size: 14px;
  font-weight: 800;
  margin: 0;
}

.connection-lost-actions {
  display: flex;
  justify-content: center;
}

.gate-shell:fullscreen {
  background: #070b12;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  padding: var(--shell-pad);
  width: 100vw;
}

.gate-shell:fullscreen .game-layout {
  height: 100%;
  min-height: 0;
}

.gate-shell:fullscreen .arena-panel {
  min-height: 0;
}

.gate-shell:fullscreen #gameCanvas {
  min-height: 0;
}

.start-dialog {
  background:
    linear-gradient(180deg, rgba(28, 38, 54, .96), rgba(8, 12, 20, .98)),
    radial-gradient(circle at 50% 0, rgba(84, 130, 202, .18), transparent 54%);
  border: 1px solid rgba(255, 214, 106, .34);
  border-radius: 10px;
  box-shadow:
    0 28px 90px rgba(0, 0, 0, .58),
    inset 0 1px 0 rgba(255, 255, 255, .1),
    inset 0 0 0 1px rgba(111, 145, 194, .16);
  gap: 16px;
  max-width: 660px;
  overflow: hidden;
  padding: 24px;
  position: relative;
  width: min(100%, 660px);
}

.start-dialog::before {
  background:
    repeating-linear-gradient(0deg, rgba(255, 255, 255, .025) 0 1px, transparent 1px 7px),
    linear-gradient(90deg, rgba(47, 109, 246, .18), transparent 30%, transparent 70%, rgba(224, 82, 100, .16));
  content: "";
  inset: 0;
  opacity: .75;
  pointer-events: none;
  position: absolute;
}

.start-dialog > * {
  position: relative;
  z-index: 1;
}

.lobby-dialog {
  align-self: stretch;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  max-height: calc(100vh - 36px);
  max-width: 1180px;
  overflow: hidden;
  padding: clamp(18px, 2.2vw, 28px);
  width: min(1180px, calc(100vw - 36px));
}

.lobby-main {
  align-items: center;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 300px);
}

.lobby-hero {
  justify-items: start;
  text-align: left;
}

.lobby-hero h1 {
  font-size: clamp(56px, 8vw, 96px);
}

.lobby-hero p {
  max-width: 520px;
}

.lobby-play-button {
  background:
    linear-gradient(180deg, #ffd66b, #f59f24 54%, #c97115),
    #f59f24;
  border-color: rgba(255, 247, 196, .82);
  border-radius: 14px;
  box-shadow:
    0 18px 44px rgba(245, 159, 36, .24),
    0 0 0 2px rgba(93, 49, 8, .3),
    inset 0 2px 0 rgba(255, 255, 255, .55),
    inset 0 -4px 0 rgba(92, 44, 5, .32);
  color: #301700;
  font-size: clamp(28px, 4vw, 44px);
  min-height: 82px;
  text-shadow: 0 1px 0 rgba(255, 244, 189, .58);
}

.lobby-play-button:hover {
  box-shadow:
    0 0 0 1px rgba(255, 247, 196, .42),
    0 0 38px rgba(255, 196, 73, .34),
    inset 0 2px 0 rgba(255, 255, 255, .58),
    inset 0 -4px 0 rgba(92, 44, 5, .32);
}

.lobby-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(260px, .9fr) minmax(360px, 1.25fr) minmax(260px, .85fr);
  min-height: 0;
}

.lobby-card {
  background:
    linear-gradient(180deg, rgba(13, 22, 36, .78), rgba(6, 11, 19, .82)),
    radial-gradient(circle at 50% 0, rgba(255, 214, 106, .08), transparent 60%);
  border: 1px solid rgba(143, 168, 200, .18);
  border-radius: 10px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .07),
    0 12px 30px rgba(0, 0, 0, .18);
}

.lobby-profile-card {
  align-content: start;
  display: grid;
  gap: 14px;
  padding: 16px;
  text-align: left;
}

.lobby-card-head {
  display: grid;
  gap: 6px;
}

.lobby-card-head span,
.lobby-feature-card span {
  color: #8fa8c8;
  font-size: 11px;
  font-weight: 1000;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.lobby-card-head strong {
  color: #f8fbff;
  font-size: clamp(22px, 2.6vw, 34px);
  line-height: 1;
}

.lobby-level-row {
  align-items: center;
  color: #dbe7f8;
  display: flex;
  font-size: 13px;
  font-weight: 900;
  gap: 10px;
  justify-content: space-between;
}

.lobby-level-row strong {
  color: #ffe18a;
  font-size: 20px;
}

.lobby-level-row small {
  color: #9fb0c9;
  font-size: 11px;
  font-weight: 900;
}

.lobby-xp-bar {
  background: rgba(2, 6, 12, .72);
  border: 1px solid rgba(143, 168, 200, .18);
  border-radius: 999px;
  height: 11px;
  overflow: hidden;
}

.lobby-xp-bar span {
  background: linear-gradient(90deg, #38bdf8, #62f1b5);
  box-shadow: 0 0 16px rgba(56, 189, 248, .28);
  display: block;
  height: 100%;
  width: 0;
}

.lobby-stat-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lobby-stat-grid span {
  background: rgba(255, 255, 255, .045);
  border: 1px solid rgba(143, 168, 200, .13);
  border-radius: 8px;
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 10px 8px;
  text-align: center;
}

.lobby-stat-grid strong {
  color: #fff7d6;
  font-size: 18px;
  line-height: 1;
}

.lobby-stat-grid small {
  color: #9fb0c9;
  font-size: 9px;
  font-weight: 900;
}

.lobby-stars-stat strong {
  color: #ffe18a;
  text-shadow: 0 0 16px rgba(255, 214, 106, .22);
}

.lobby-stars-daily {
  border-top: 1px solid rgba(143, 168, 200, .13);
  color: #9fb0c9;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
  margin-top: -2px;
  padding-top: 8px;
}

.lobby-feature-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr;
}

.lobby-feature-card {
  display: grid;
  gap: 5px;
  padding: 12px;
  text-align: left;
}

.lobby-feature-card strong {
  color: #fff7d6;
  font-size: 16px;
}

.lobby-feature-card small {
  color: #9fb0c9;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
}

.lobby-controls {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.is-lobby .game-layout {
  pointer-events: none;
  visibility: hidden;
}

body.is-lobby,
body.is-lobby .start-overlay {
  overflow-x: hidden;
}

.start-overlay {
  background:
    radial-gradient(circle at 50% 45%, rgba(255, 214, 106, .16), transparent 18%),
    radial-gradient(circle at 18% 22%, rgba(47, 109, 246, .22), transparent 30%),
    radial-gradient(circle at 84% 78%, rgba(224, 82, 100, .18), transparent 34%),
    linear-gradient(135deg, #08131f 0%, #101a2b 46%, #1b101e 100%);
  backdrop-filter: none;
  overflow: hidden;
  padding: 0;
}

.start-overlay::before {
  background:
    linear-gradient(115deg, transparent 0 25%, rgba(255, 214, 106, .07) 34%, transparent 43%),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, .025) 0 1px, transparent 1px 86px),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, .018) 0 1px, transparent 1px 62px);
  opacity: .56;
}

.lobby-dialog {
  align-self: stretch;
  background:
    radial-gradient(circle at 50% 48%, rgba(255, 214, 106, .13), transparent 25%),
    linear-gradient(180deg, rgba(17, 29, 48, .92), rgba(8, 12, 22, .96));
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: #edf5ff;
  display: grid;
  gap: clamp(10px, 1.2vw, 18px);
  grid-template-areas:
    "ranking title rewards"
    "ranking play rewards"
    "profile play friends";
  grid-template-columns: minmax(255px, 340px) minmax(300px, 1fr) minmax(255px, 340px);
  grid-template-rows: auto minmax(180px, 1fr) minmax(150px, .52fr);
  height: 100dvh;
  max-height: none;
  max-width: none;
  overflow: hidden;
  padding: clamp(16px, 2vw, 26px);
  position: relative;
  text-align: initial;
  width: 100vw;
}

.lobby-dialog::before {
  display: none;
}

.lobby-topbar {
  align-items: center;
  display: none;
  gap: 10px;
  grid-area: top;
  grid-template-columns: auto 1fr auto;
  min-width: 0;
}

.lobby-settings-button {
  align-items: center;
  background: rgba(255, 255, 255, .075);
  border: 1px solid rgba(143, 168, 200, .22);
  border-radius: 999px;
  color: #dfe9fb;
  cursor: pointer;
  display: inline-flex;
  font-size: 11px;
  font-weight: 950;
  gap: 6px;
  justify-self: end;
  padding: 7px 11px;
}

.lobby-settings-button-stage {
  position: absolute;
  right: clamp(8px, 1vw, 14px);
  top: clamp(6px, 1vw, 12px);
  z-index: 3;
}

.lobby-settings-button-title {
  justify-self: end;
  position: absolute;
  right: 0;
  top: clamp(3px, .7vw, 8px);
  z-index: 4;
}

.lobby-settings-button:hover,
.lobby-settings-button:focus-visible {
  background: rgba(255, 214, 106, .14);
  border-color: rgba(255, 214, 106, .42);
  outline: none;
}

.settings-gear-icon {
  color: #ffd66b;
  font-size: 13px;
  line-height: 1;
  text-shadow: 0 0 10px rgba(255, 214, 106, .28);
}

.lobby-settings-button-mobile {
  display: inline-flex;
}

.lobby-title {
  align-self: start;
  display: grid;
  gap: 6px;
  grid-area: title;
  justify-items: center;
  min-width: 0;
  padding-inline: 98px;
  padding-top: clamp(8px, 1.2vw, 16px);
  position: relative;
  text-align: center;
  z-index: 1;
}

.lobby-title h1 {
  color: #f8fbff;
  font-size: clamp(42px, 5.5vw, 76px);
  font-weight: 1000;
  letter-spacing: 0;
  line-height: .88;
  text-shadow: 0 4px 0 rgba(0, 0, 0, .28), 0 0 24px rgba(94, 154, 255, .22);
  text-transform: uppercase;
}

.lobby-title .eyebrow {
  background: rgba(4, 9, 18, .48);
  border: 1px solid rgba(255, 214, 106, .2);
  border-radius: 999px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .18);
  padding: 5px 12px;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .48);
}

.lobby-hero-art {
  align-self: stretch;
  background:
    linear-gradient(180deg, rgba(4, 8, 17, .18), rgba(4, 8, 17, .64)),
    radial-gradient(circle at 50% 43%, rgba(255, 228, 154, .12), transparent 36%),
    url("./assets/gate-war-lobby-hero.png?v=20260710-hero-01");
  background-position: center;
  background-size: cover;
  border: 1px solid rgba(143, 168, 200, .18);
  border-radius: 18px;
  box-shadow:
    0 24px 70px rgba(0, 0, 0, .36),
    inset 0 0 0 1px rgba(255, 255, 255, .04),
    inset 0 -86px 90px rgba(3, 8, 16, .7);
  grid-column: 2;
  grid-row: 1 / 4;
  justify-self: stretch;
  min-height: 0;
  overflow: hidden;
  pointer-events: none;
  position: relative;
  z-index: 0;
}

.lobby-hero-art::after {
  background:
    radial-gradient(ellipse at 50% 42%, transparent 0 33%, rgba(3, 8, 16, .5) 72%, rgba(3, 8, 16, .78) 100%),
    linear-gradient(90deg, rgba(28, 94, 180, .18), transparent 30% 70%, rgba(173, 31, 42, .2));
  content: "";
  inset: 0;
  position: absolute;
}

.lobby-play-stage {
  align-self: center;
  display: grid;
  gap: 12px;
  grid-area: play;
  justify-items: center;
  min-width: 0;
  padding: clamp(10px, 1.6vw, 22px);
  position: relative;
  text-align: center;
  z-index: 1;
}

.lobby-hero-stars,
.lobby-person-stars {
  align-items: center;
  color: #ffe18a;
  display: inline-flex;
  font-weight: 1000;
  gap: 7px;
  justify-content: center;
}

.lobby-hero-stars strong {
  font-size: clamp(24px, 3.4vw, 40px);
  line-height: 1;
}

.lobby-hero-stars {
  background: rgba(4, 9, 18, .62);
  border: 1px solid rgba(255, 214, 106, .26);
  border-radius: 999px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .26);
  padding: 9px 16px;
  text-shadow: 0 2px 10px rgba(0, 0, 0, .46);
}

.rank-info-trigger {
  appearance: none;
  cursor: pointer;
  font: inherit;
  margin: 0;
  transition:
    border-color .16s ease,
    box-shadow .16s ease,
    filter .16s ease,
    transform .16s ease;
}

.rank-info-trigger:hover,
.rank-info-trigger:focus-visible {
  border-color: rgba(255, 232, 139, .66);
  box-shadow:
    0 16px 38px rgba(0, 0, 0, .3),
    0 0 0 2px rgba(255, 214, 106, .16),
    0 0 26px rgba(255, 214, 106, .18);
  filter: brightness(1.06);
  outline: none;
  transform: translateY(-1px);
}

.lobby-profile-rank.rank-info-trigger:hover,
.lobby-profile-rank.rank-info-trigger:focus-visible {
  box-shadow:
    0 10px 22px rgba(0, 0, 0, .24),
    0 0 0 2px rgba(255, 214, 106, .14);
}

.lobby-rank {
  align-items: center;
  background: rgba(4, 9, 18, .62);
  border: 1px solid rgba(143, 168, 200, .2);
  border-radius: 16px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .24);
  color: #f8fbff;
  display: inline-flex;
  gap: 10px;
  justify-content: center;
  min-width: 0;
  padding: 7px 12px;
  text-shadow: 0 2px 10px rgba(0, 0, 0, .48);
}

.lobby-rank-copy,
.lobby-profile-rank span {
  display: grid;
  gap: 2px;
  justify-items: center;
  min-width: 0;
}

.lobby-rank-copy small,
.lobby-profile-rank small {
  color: #9fb0c9;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .1em;
  line-height: 1;
  text-transform: uppercase;
}

.lobby-rank-copy strong {
  color: #fff7d6;
  font-size: 15px;
  font-weight: 1000;
  line-height: 1.05;
}

.lobby-rank-hero {
  background:
    radial-gradient(circle at 50% 26%, rgba(255, 232, 139, .18), transparent 42%),
    linear-gradient(180deg, rgba(4, 9, 18, .66), rgba(4, 9, 18, .46));
  border-color: rgba(255, 214, 106, .34);
  border-radius: 24px;
  box-shadow:
    0 18px 44px rgba(0, 0, 0, .34),
    0 0 34px rgba(255, 214, 106, .11),
    inset 0 1px 0 rgba(255, 255, 255, .1);
  flex-direction: column;
  gap: 6px;
  min-width: clamp(140px, 14vw, 190px);
  padding: 12px 20px 10px;
}

.lobby-rank-hero .lobby-rank-copy strong {
  color: #fff3a8;
  font-size: clamp(25px, 2.7vw, 38px);
  letter-spacing: 0;
  line-height: .94;
  text-shadow:
    0 3px 0 rgba(0, 0, 0, .34),
    0 0 18px rgba(255, 214, 106, .28);
}

.lobby-profile-rank {
  align-items: center;
  background: rgba(255, 255, 255, .045);
  border: 1px solid rgba(143, 168, 200, .14);
  border-radius: 10px;
  display: inline-flex;
  gap: 8px;
  min-width: 0;
  padding: 6px 8px;
}

.lobby-profile-rank strong {
  color: #fff7d6;
  font-size: 12px;
  font-weight: 1000;
  line-height: 1.05;
}

.rank-badge {
  box-sizing: border-box;
  display: block;
  flex: 0 0 auto;
  height: 38px;
  overflow: hidden;
  position: relative;
  width: 34px;
}

.rank-badge--hero {
  height: 90px;
  width: 82px;
}

.rank-badge--profile {
  height: 32px;
  width: 30px;
}

.rank-badge--mini {
  height: 24px;
  width: 22px;
}

.rank-badge--bronze,
.rank-badge--silver,
.rank-badge--gold {
  border: 2px solid rgba(4, 9, 18, .74);
  border-radius: 12px 12px 14px 14px;
  clip-path: polygon(50% 0, 91% 14%, 86% 66%, 50% 100%, 14% 66%, 9% 14%);
  filter: drop-shadow(0 5px 8px rgba(0, 0, 0, .3));
}

.rank-badge--bronze {
  background: linear-gradient(135deg, #ffd198 0%, #b56c2b 46%, #633315 100%);
}

.rank-badge--silver {
  background: linear-gradient(135deg, #fbfdff 0%, #aebbc8 47%, #5f6f80 100%);
}

.rank-badge--gold {
  background: linear-gradient(135deg, #fff3a8 0%, #f0b431 49%, #9e5b09 100%);
}

.rank-badge--bronze::before,
.rank-badge--silver::before,
.rank-badge--gold::before {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .38), transparent 42%),
    radial-gradient(circle at 50% 34%, rgba(255, 255, 255, .2), transparent 30%);
  border: 1px solid rgba(255, 255, 255, .26);
  clip-path: polygon(50% 4%, 82% 16%, 78% 60%, 50% 88%, 22% 60%, 18% 16%);
  content: "";
  inset: 5px;
  position: absolute;
}

.rank-badge--bronze::after,
.rank-badge--silver::after,
.rank-badge--gold::after {
  background: rgba(4, 9, 18, .55);
  border-radius: 999px;
  box-shadow: 0 -7px 0 rgba(4, 9, 18, .32), 0 7px 0 rgba(255, 255, 255, .18);
  content: "";
  height: 3px;
  left: 30%;
  position: absolute;
  top: 48%;
  width: 40%;
}

.rank-badge--wood {
  background:
    radial-gradient(ellipse at 52% 50%, #f0c17a 0 12%, #a6672f 13% 28%, #6b3d1d 29% 52%, #3a2112 53% 100%);
  border: 2px solid #1f130b;
  border-radius: 48% 44% 46% 52%;
  box-shadow:
    inset 0 2px 0 rgba(255, 231, 179, .24),
    inset 0 -5px 0 rgba(29, 15, 7, .34),
    0 5px 9px rgba(0, 0, 0, .28);
  height: 28px;
  transform: rotate(-8deg);
  width: 42px;
}

.rank-badge--wood.rank-badge--hero {
  height: 62px;
  width: 96px;
}

.rank-badge--wood.rank-badge--profile {
  height: 24px;
  width: 34px;
}

.rank-badge--wood.rank-badge--mini {
  height: 19px;
  width: 26px;
}

.rank-badge--wood::before {
  border: 2px solid rgba(255, 226, 158, .3);
  border-radius: 50%;
  content: "";
  inset: 21% 27%;
  position: absolute;
}

.rank-badge--wood::after {
  background:
    linear-gradient(90deg, transparent, rgba(31, 18, 9, .45), transparent),
    linear-gradient(90deg, transparent, rgba(255, 223, 157, .18), transparent);
  content: "";
  height: 130%;
  left: 15%;
  position: absolute;
  top: -15%;
  transform: rotate(18deg);
  width: 7px;
}

.lobby-star-shape {
  background: linear-gradient(180deg, #fff2a8, #f8c43a 55%, #d78514);
  clip-path: polygon(50% 0, 62% 35%, 100% 35%, 69% 56%, 81% 92%, 50% 70%, 19% 92%, 31% 56%, 0 35%, 38% 35%);
  display: inline-block;
  filter: drop-shadow(0 3px 6px rgba(245, 159, 36, .32));
  flex: 0 0 auto;
  height: 28px;
  width: 28px;
}

.lobby-hero-stars .lobby-star-shape {
  height: 42px;
  width: 42px;
}

.lobby-play-button {
  border-radius: 18px;
  font-size: clamp(42px, 6.4vw, 76px);
  min-height: clamp(96px, 16vh, 150px);
  min-width: min(420px, 70vw);
  padding: 12px 34px;
}

.start-feedback {
  color: #c7d4e8;
  font-size: 12px;
  font-weight: 850;
  min-height: 16px;
}

.lobby-dashboard {
  display: contents;
}

.lobby-card {
  border-radius: 12px;
  min-height: 0;
  overflow: hidden;
}

.lobby-profile-card {
  align-content: start;
  display: grid;
  gap: 10px;
  grid-area: profile;
  padding: 14px;
}

.lobby-rewards-card {
  grid-area: rewards;
}

.lobby-ranking-card {
  grid-area: ranking;
}

.lobby-friends-card {
  grid-area: friends;
}

.lobby-card-head strong {
  font-size: clamp(19px, 2vw, 28px);
}

.lobby-character-row {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr);
}

.lobby-avatar-frame {
  align-items: center;
  aspect-ratio: 1;
  background:
    radial-gradient(circle at 50% 38%, rgba(255, 214, 106, .18), transparent 54%),
    linear-gradient(180deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .025));
  border: 1px solid rgba(255, 214, 106, .28);
  border-radius: 12px;
  display: grid;
  justify-items: center;
  overflow: hidden;
}

.lobby-profile-card .lobby-avatar-frame,
.lobby-profile-card .lobby-avatar-sprite,
.lobby-profile-card .lobby-profile-rank,
.lobby-profile-card .lobby-stars-daily,
.lobby-profile-card .lobby-stat-grid {
  display: none;
}

.lobby-avatar-sprite,
.lobby-mini-avatar {
  background-image: url("./assets/gate-war-warriors.png?v=20260709-battle-mage-5");
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: 400% 200%;
  display: block;
}

.lobby-avatar-sprite {
  height: 112px;
  width: 112px;
}

.lobby-character-meta {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.lobby-stat-grid {
  gap: 7px;
}

.lobby-stat-grid span {
  padding: 9px 6px;
}

.daily-missions {
  align-content: start;
  display: grid;
  gap: 12px;
  grid-template-rows: auto minmax(0, 1fr) auto;
  padding: 16px;
}

.daily-mission-list {
  align-content: start;
  display: grid;
  gap: 8px;
  grid-auto-rows: minmax(64px, auto);
  grid-template-columns: 1fr;
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 0;
  scrollbar-gutter: auto;
  scrollbar-width: none;
}

.daily-mission-list::-webkit-scrollbar {
  display: none;
  height: 0;
  width: 0;
}

@keyframes dailyRewardPulse {
  0%, 100% {
    box-shadow:
      0 0 0 0 rgba(255, 214, 106, .6),
      0 12px 26px rgba(245, 159, 36, .24),
      inset 0 2px 0 rgba(255, 255, 255, .55),
      inset 0 -4px 0 rgba(96, 45, 7, .28);
    transform: scale(1);
  }
  50% {
    box-shadow:
      0 0 0 7px rgba(255, 214, 106, .12),
      0 16px 34px rgba(245, 159, 36, .42),
      inset 0 2px 0 rgba(255, 255, 255, .68),
      inset 0 -4px 0 rgba(96, 45, 7, .22);
    transform: scale(1.04);
  }
}

@keyframes dailyRewardRing {
  0% {
    opacity: .75;
    transform: scale(.88);
  }
  100% {
    opacity: 0;
    transform: scale(1.22);
  }
}

@keyframes dailyStarMilestonePulse {
  0%, 100% {
    box-shadow: 0 0 0 1px rgba(255, 226, 132, .18), 0 0 12px rgba(245, 177, 47, .12);
  }
  50% {
    box-shadow: 0 0 0 3px rgba(255, 226, 132, .12), 0 0 18px rgba(245, 177, 47, .28);
  }
}

.daily-mission-card {
  align-items: center;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .028));
  border: 1px solid rgba(143, 168, 200, .14);
  border-radius: 10px;
  box-sizing: border-box;
  display: grid;
  gap: 9px;
  grid-template-columns: minmax(0, 1fr) 54px;
  min-height: 64px;
  overflow: visible;
  padding: 8px 9px;
  position: relative;
}

.daily-mission-card.is-complete {
  background:
    radial-gradient(circle at 88% 50%, rgba(255, 214, 106, .18), transparent 38%),
    linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(255, 214, 106, .035));
  border-color: rgba(255, 214, 106, .64);
  box-shadow:
    0 0 22px rgba(255, 214, 106, .1),
    inset 0 0 0 1px rgba(255, 214, 106, .18);
}

.daily-mission-card.is-claimed {
  background:
    radial-gradient(circle at 88% 50%, rgba(98, 241, 181, .13), transparent 35%),
    linear-gradient(180deg, rgba(255, 255, 255, .052), rgba(255, 255, 255, .026));
  border-color: rgba(98, 241, 181, .34);
}

.daily-mission-copy {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.daily-mission-title-row {
  align-items: center;
  display: flex;
  gap: 8px;
  min-width: 0;
}

.daily-mission-type-icon {
  background-color: rgba(8, 16, 30, .78);
  background-repeat: no-repeat;
  border: 1px solid rgba(143, 168, 200, .18);
  border-radius: 8px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .08),
    0 6px 12px rgba(0, 0, 0, .18);
  display: block;
  flex: 0 0 auto;
  height: 28px;
  overflow: hidden;
  position: relative;
  width: 28px;
}

.mission-icon-minions {
  background-image: url("./assets/gate-war-minions.png?v=20260708-01");
  background-position: 0 0;
  background-size: 112px 56px;
}

.mission-icon-tower {
  background-image: url("./assets/gate-war-towers.png?v=20260708-01");
  background-position: 0 -28px;
  background-size: 84px 56px;
}

.mission-icon-damage,
.mission-icon-enemy,
.mission-icon-heal {
  background-image: url("./assets/gate-war-warriors.png?v=20260709-battle-mage-5");
  background-size: 112px 56px;
}

.mission-icon-damage {
  background-position: -84px -28px;
}

.mission-icon-enemy {
  background-position: -56px -28px;
}

.mission-icon-heal {
  background-position: 0 0;
}

.mission-icon-heal::after {
  align-items: center;
  background: #62f1b5;
  border: 1px solid rgba(236, 255, 247, .86);
  border-radius: 999px;
  bottom: 1px;
  color: #053823;
  content: "+";
  display: grid;
  font-size: 14px;
  font-weight: 1000;
  height: 15px;
  line-height: 1;
  position: absolute;
  right: 1px;
  width: 15px;
}

.mission-icon-damage::after,
.mission-icon-enemy::after {
  background: linear-gradient(180deg, #ffcf69, #e33f31);
  border-radius: 999px;
  box-shadow: 0 0 8px rgba(255, 89, 56, .46);
  content: "";
  height: 8px;
  position: absolute;
  right: 3px;
  top: 3px;
  width: 8px;
}

.mission-icon-mountain-chest {
  background:
    radial-gradient(circle at 50% 18%, rgba(255, 214, 106, .2), transparent 36%),
    linear-gradient(180deg, rgba(20, 32, 52, .92), rgba(9, 16, 27, .96));
}

.mission-icon-mountain-chest::before,
.mission-icon-mountain-chest::after {
  border: 2px solid #26180b;
  content: "";
  left: 5px;
  position: absolute;
  width: 16px;
}

.mission-icon-mountain-chest::before {
  background: linear-gradient(180deg, #f2b84e, #8b4d17);
  border-radius: 3px 3px 4px 4px;
  bottom: 5px;
  height: 11px;
}

.mission-icon-mountain-chest::after {
  background: linear-gradient(180deg, #ffe28a, #b8681c);
  border-radius: 4px 4px 2px 2px;
  height: 8px;
  top: 6px;
}

.mission-icon-default::after {
  color: #ffe18a;
  content: "!";
  font-size: 18px;
  font-weight: 1000;
  inset: 0;
  line-height: 28px;
  position: absolute;
  text-align: center;
}

.daily-mission-title {
  color: #fff7d6;
  font-size: 13px;
  line-height: 1.15;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.daily-mission-progress {
  align-items: center;
  display: grid;
  gap: 7px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.daily-mission-claim {
  align-items: center;
  aspect-ratio: 1;
  align-self: center;
  background:
    radial-gradient(circle at 50% 20%, rgba(255, 255, 255, .08), transparent 42%),
    linear-gradient(180deg, #253143, #111a27);
  border: 1px solid rgba(143, 168, 200, .22);
  border-radius: 15px;
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, .08),
    inset 0 -3px 0 rgba(0, 0, 0, .24);
  cursor: pointer;
  display: grid;
  justify-items: center;
  height: 50px;
  justify-self: end;
  min-width: 50px;
  padding: 0;
  position: relative;
  transform-origin: center;
  width: 50px;
  will-change: transform, box-shadow;
}

.daily-mission-claim:disabled {
  cursor: default;
}

.daily-mission-claim.is-locked {
  filter: none;
  opacity: .9;
}

.daily-mission-claim.is-ready {
  background:
    radial-gradient(circle at 50% 27%, #fff2aa, #f5c553 45%, #dc7d14 100%);
  border-color: rgba(255, 247, 196, .9);
  box-shadow:
    0 12px 26px rgba(245, 159, 36, .24),
    inset 0 2px 0 rgba(255, 255, 255, .55),
    inset 0 -4px 0 rgba(96, 45, 7, .28);
  animation: dailyRewardPulse 1.18s ease-in-out infinite;
  z-index: 1;
}

.daily-mission-claim.is-ready::before,
.daily-mission-claim.is-ready::after {
  border: 2px solid rgba(255, 224, 118, .62);
  border-radius: 18px;
  content: "";
  inset: -6px;
  pointer-events: none;
  position: absolute;
}

.daily-mission-claim.is-ready::before {
  animation: dailyRewardRing 1.18s ease-out infinite;
}

.daily-mission-claim.is-ready::after {
  border-color: rgba(255, 255, 210, .32);
  inset: -2px;
}

.daily-mission-claim.is-claimed {
  background: linear-gradient(180deg, #62f1b5, #159466);
  border-color: rgba(176, 255, 220, .7);
  filter: none;
  opacity: 1;
}

.daily-mission-claim-icon {
  background-image: url("./assets/gate-war-reward-chests.svg?v=20260710-01");
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: 300% 100%;
  display: block;
  filter: drop-shadow(0 4px 5px rgba(0, 0, 0, .28));
  height: 42px;
  position: relative;
  width: 42px;
}

.daily-mission-claim-icon::before,
.daily-mission-claim-icon::after {
  content: none;
  display: none;
}

.daily-mission-claim.is-ready .daily-mission-claim-icon {
  background-position: 50% 0;
  filter:
    drop-shadow(0 0 8px rgba(255, 225, 109, .58))
    drop-shadow(0 5px 7px rgba(75, 35, 4, .34));
}

.daily-mission-claim.is-claimed .daily-mission-claim-icon {
  background-position: 100% 0;
  filter:
    drop-shadow(0 0 5px rgba(98, 241, 181, .3))
    drop-shadow(0 4px 5px rgba(0, 0, 0, .2));
}

.daily-star-panel {
  border-top: 1px solid rgba(143, 168, 200, .14);
  display: grid;
  gap: 6px;
  margin-top: 2px;
  padding-top: 8px;
}

.daily-star-head {
  align-items: center;
  color: #fff7d6;
  display: flex;
  font-size: 12px;
  font-weight: 950;
  gap: 10px;
  justify-content: space-between;
}

.daily-star-head span {
  color: #9fb0c9;
  font-size: 11px;
  font-weight: 900;
}

.daily-star-bar {
  background: rgba(2, 6, 12, .72);
  border: 1px solid rgba(143, 168, 200, .18);
  border-radius: 999px;
  height: 16px;
  margin: 2px 10px 0;
  overflow: visible;
  position: relative;
}

.daily-star-bar > span {
  background: linear-gradient(90deg, #f9c338, #fff2a8);
  border-radius: inherit;
  box-shadow: 0 0 16px rgba(255, 214, 106, .26);
  display: block;
  height: 100%;
  position: relative;
  width: 0;
  z-index: 1;
}

.daily-star-milestones {
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 2;
}

.daily-star-milestone {
  align-items: center;
  background:
    radial-gradient(circle at 50% 28%, rgba(255, 255, 255, .16), transparent 46%),
    linear-gradient(180deg, rgba(32, 42, 58, .98), rgba(13, 19, 30, .98));
  border: 1px solid rgba(143, 168, 200, .32);
  border-radius: 999px;
  box-shadow:
    0 4px 10px rgba(0, 0, 0, .24),
    inset 0 1px 0 rgba(255, 255, 255, .12);
  color: #7f91ad;
  display: inline-flex;
  font-size: 10px;
  font-weight: 950;
  gap: 4px;
  height: 24px;
  justify-content: center;
  left: 0;
  min-height: 0;
  padding: 0;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 24px;
}

.daily-star-milestone b {
  color: #66758d;
  font-size: 15px;
  line-height: 1;
}

.daily-star-milestone small {
  display: none;
}

.daily-star-milestone.is-ready,
.daily-star-milestone.is-claimed {
  background: linear-gradient(180deg, rgba(255, 221, 112, .18), rgba(210, 137, 25, .12));
  border-color: rgba(255, 216, 104, .46);
  color: #ffe38c;
}

.daily-star-milestone.is-ready b,
.daily-star-milestone.is-claimed b {
  color: #ffd04f;
  filter: drop-shadow(0 0 7px rgba(255, 197, 58, .3));
}

.daily-star-milestone.is-claimed {
  background: linear-gradient(180deg, rgba(89, 238, 178, .18), rgba(18, 139, 94, .14));
  border-color: rgba(155, 255, 219, .48);
  color: #bfffe6;
}

.daily-star-milestone.is-claimed b {
  color: #72f3bc;
  filter: drop-shadow(0 0 7px rgba(114, 243, 188, .28));
}

.daily-star-milestone.is-next {
  animation: dailyStarMilestonePulse 1.5s ease-in-out infinite;
  box-shadow: 0 0 0 1px rgba(255, 226, 132, .24), 0 0 18px rgba(245, 177, 47, .18);
}

.daily-star-claim {
  align-items: center;
  background: rgba(255, 255, 255, .055);
  border: 1px solid rgba(143, 168, 200, .18);
  border-radius: 10px;
  color: #9fb0c9;
  cursor: default;
  display: inline-flex;
  font-size: 12px;
  font-weight: 1000;
  gap: 0;
  justify-content: center;
  min-height: 32px;
  padding: 6px 10px;
}

.daily-star-claim .lobby-star-shape {
  display: none;
}

.daily-star-claim.is-ready {
  background: linear-gradient(180deg, #ffd66b, #d98318);
  border-color: rgba(255, 247, 196, .72);
  box-shadow:
    0 10px 24px rgba(245, 159, 36, .16),
    inset 0 2px 0 rgba(255, 255, 255, .42),
    inset 0 -3px 0 rgba(79, 38, 6, .24);
  color: #301700;
  cursor: pointer;
}

.daily-star-claim.is-ready .lobby-star-shape,
.daily-star-claim.is-claimed .lobby-star-shape {
  opacity: 1;
}

.daily-star-claim.is-claimed {
  background: linear-gradient(180deg, #62f1b5, #159466);
  border-color: rgba(176, 255, 220, .7);
  color: #ecfff7;
}

.lobby-ranking-card,
.lobby-friends-card {
  display: grid;
  gap: 12px;
  padding: 14px;
}

.lobby-ranking-list,
.lobby-friends-list {
  align-content: start;
  display: grid;
  gap: 8px;
  min-height: 0;
  overflow: auto;
}

.lobby-person-row {
  align-items: center;
  background: rgba(255, 255, 255, .045);
  border: 1px solid rgba(143, 168, 200, .14);
  border-radius: 10px;
  display: grid;
  gap: 9px;
  grid-template-columns: 34px minmax(0, 1fr) 24px auto;
  min-width: 0;
  padding: 7px 8px;
}

.daily-missions {
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.daily-missions-head #skinFragmentsStatus {
  display: none;
}

.lobby-ranking-card,
.lobby-friends-card {
  grid-template-rows: auto minmax(0, 1fr);
}

.daily-mission-list,
.lobby-ranking-list,
.lobby-friends-list {
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 0;
  scrollbar-gutter: auto;
  scrollbar-width: none;
}

.daily-mission-list::-webkit-scrollbar,
.lobby-ranking-list::-webkit-scrollbar,
.lobby-friends-list::-webkit-scrollbar {
  display: none;
  height: 0;
  width: 0;
}

.lobby-person-row.is-top {
  border-color: rgba(255, 214, 106, .28);
}

.lobby-mini-avatar {
  background-color: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 214, 106, .22);
  border-radius: 8px;
  height: 34px;
  width: 34px;
}

.lobby-person-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.lobby-person-copy strong,
.lobby-person-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lobby-person-copy strong {
  color: #f8fbff;
  font-size: 12px;
  font-weight: 950;
}

.lobby-person-copy small {
  color: #9fb0c9;
  font-size: 10px;
  font-weight: 850;
}

.lobby-person-stars strong {
  font-size: 13px;
}

.lobby-person-stars .lobby-star-shape {
  height: 16px;
  width: 16px;
}

.lobby-empty-state {
  align-self: center;
  color: #9fb0c9;
  font-size: 12px;
  font-weight: 850;
  line-height: 1.35;
  margin: 0;
}

.team-select-overlay {
  background:
    radial-gradient(circle at 50% 34%, rgba(255, 214, 106, .12), transparent 32%),
    linear-gradient(180deg, rgba(3, 6, 12, .52), rgba(3, 6, 12, .86));
  backdrop-filter: blur(3px) saturate(.82);
  z-index: 13;
}

.team-select-dialog {
  background:
    linear-gradient(180deg, rgba(28, 38, 54, .97), rgba(8, 12, 20, .98)),
    radial-gradient(circle at 50% 0, rgba(84, 130, 202, .2), transparent 54%);
  border-color: rgba(255, 214, 106, .34);
  color: #edf5ff;
  max-width: 680px;
  position: relative;
  width: min(680px, calc(100vw - 36px));
}

.team-select-dialog h2 {
  color: #f8fbff;
  font-size: clamp(32px, 5vw, 48px);
  line-height: .95;
  margin: 0;
  text-transform: uppercase;
}

.modal-close-button {
  align-items: center;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(143, 168, 200, .2);
  border-radius: 999px;
  color: #dfe9fb;
  cursor: pointer;
  display: grid;
  font-size: 22px;
  font-weight: 1000;
  height: 34px;
  justify-content: center;
  line-height: 1;
  position: absolute;
  right: 12px;
  top: 12px;
  width: 34px;
  z-index: 2;
}

.modal-close-button:hover {
  background: rgba(255, 214, 106, .16);
  border-color: rgba(255, 214, 106, .42);
}

.rank-info-overlay {
  background:
    radial-gradient(circle at 50% 26%, rgba(255, 214, 106, .16), transparent 34%),
    linear-gradient(180deg, rgba(3, 6, 12, .56), rgba(3, 6, 12, .88));
  backdrop-filter: blur(3px) saturate(.86);
  z-index: 15;
}

.rank-info-dialog {
  background:
    linear-gradient(180deg, rgba(29, 39, 56, .98), rgba(8, 12, 20, .99)),
    radial-gradient(circle at 50% 0, rgba(255, 214, 106, .18), transparent 52%);
  border-color: rgba(255, 214, 106, .36);
  box-shadow:
    0 24px 80px rgba(0, 0, 0, .62),
    0 0 0 1px rgba(255, 214, 106, .08),
    inset 0 1px 0 rgba(255, 255, 255, .08);
  color: #edf5ff;
  gap: 12px;
  max-height: calc(100dvh - 28px);
  max-width: 560px;
  overflow: auto;
  padding: 22px;
  position: relative;
  width: min(560px, calc(100vw - 28px));
}

.rank-info-dialog h2 {
  color: #fff7d6;
  font-size: clamp(28px, 4.6vw, 42px);
  line-height: .95;
  margin: 0;
  text-shadow:
    0 2px 0 rgba(0, 0, 0, .34),
    0 0 20px rgba(255, 214, 106, .2);
  text-transform: uppercase;
}

.rank-info-dialog > p {
  color: #b8c8df;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
  margin: 0;
}

.rank-info-current {
  align-items: center;
  background:
    radial-gradient(circle at 14% 50%, rgba(255, 214, 106, .18), transparent 34%),
    linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .028));
  border: 1px solid rgba(255, 214, 106, .28);
  border-radius: 12px;
  display: grid;
  gap: 10px;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  padding: 10px 12px;
  text-align: left;
}

.rank-info-current small {
  color: #9fb0c9;
  display: block;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
}

.rank-info-current strong {
  color: #fff3a8;
  display: block;
  font-size: 22px;
  font-weight: 1000;
  line-height: 1;
}

.rank-info-current b {
  align-items: center;
  background: rgba(4, 9, 18, .62);
  border: 1px solid rgba(255, 214, 106, .26);
  border-radius: 999px;
  color: #ffe18a;
  display: inline-flex;
  font-size: 20px;
  font-weight: 1000;
  justify-content: center;
  min-width: 64px;
  padding: 8px 10px;
}

.rank-info-grid {
  display: grid;
  gap: 8px;
}

.rank-info-row {
  align-items: center;
  background: rgba(255, 255, 255, .045);
  border: 1px solid rgba(143, 168, 200, .16);
  border-radius: 10px;
  display: grid;
  gap: 10px;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  padding: 8px 10px;
  text-align: left;
}

.rank-info-row.is-current {
  background:
    radial-gradient(circle at 92% 50%, rgba(255, 214, 106, .18), transparent 34%),
    linear-gradient(180deg, rgba(255, 214, 106, .12), rgba(255, 255, 255, .04));
  border-color: rgba(255, 214, 106, .58);
  box-shadow:
    0 0 22px rgba(255, 214, 106, .12),
    inset 0 0 0 1px rgba(255, 214, 106, .14);
}

.rank-info-row strong {
  color: #f8fbff;
  display: block;
  font-size: 15px;
  font-weight: 1000;
  line-height: 1.05;
}

.rank-info-row small {
  color: #9fb0c9;
  display: block;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.15;
  margin-top: 2px;
}

.rank-info-row b {
  color: #ffe18a;
  font-size: 15px;
  font-weight: 1000;
  white-space: nowrap;
}

.settings-overlay {
  background:
    radial-gradient(circle at 50% 22%, rgba(96, 165, 250, .16), transparent 34%),
    linear-gradient(180deg, rgba(3, 6, 12, .56), rgba(3, 6, 12, .9));
  backdrop-filter: blur(3px) saturate(.9);
  z-index: 16;
}

.settings-dialog {
  background:
    linear-gradient(180deg, rgba(29, 39, 56, .98), rgba(8, 12, 20, .99)),
    radial-gradient(circle at 50% 0, rgba(96, 165, 250, .16), transparent 54%);
  border-color: rgba(143, 168, 200, .34);
  box-shadow:
    0 24px 80px rgba(0, 0, 0, .62),
    0 0 0 1px rgba(143, 168, 200, .08),
    inset 0 1px 0 rgba(255, 255, 255, .08);
  color: #edf5ff;
  gap: 12px;
  max-height: calc(100dvh - 28px);
  max-width: 760px;
  overflow: hidden;
  padding: 22px;
  position: relative;
  width: min(760px, calc(100vw - 28px));
}

.settings-dialog h2 {
  color: #fff7d6;
  font-size: clamp(28px, 4vw, 40px);
  line-height: .95;
  margin: 0;
  text-transform: uppercase;
}

.settings-layout {
  display: grid;
  gap: 12px;
  grid-template-columns: 160px minmax(0, 1fr);
  min-height: 0;
}

.settings-tabs {
  align-content: start;
  display: grid;
  gap: 8px;
}

.settings-tab {
  align-items: center;
  background: rgba(255, 255, 255, .055);
  border: 1px solid rgba(143, 168, 200, .18);
  border-radius: 10px;
  color: #c9d7ea;
  cursor: pointer;
  display: flex;
  font-size: 12px;
  font-weight: 1000;
  justify-content: flex-start;
  min-height: 40px;
  padding: 9px 11px;
  text-align: left;
}

.settings-tab.is-active,
.settings-tab:hover,
.settings-tab:focus-visible {
  background: linear-gradient(180deg, rgba(255, 214, 106, .18), rgba(255, 255, 255, .06));
  border-color: rgba(255, 214, 106, .42);
  color: #fff7d6;
  outline: none;
}

.settings-panels {
  min-height: 0;
}

.settings-panel {
  background: rgba(255, 255, 255, .045);
  border: 1px solid rgba(143, 168, 200, .16);
  border-radius: 12px;
  display: grid;
  gap: 10px;
  max-height: min(68vh, 560px);
  overflow: auto;
  padding: 14px;
  scrollbar-width: none;
}

.settings-panel[hidden] {
  display: none;
}

.settings-panel::-webkit-scrollbar {
  display: none;
  height: 0;
  width: 0;
}

.settings-panel-head {
  display: grid;
  gap: 4px;
}

.settings-panel-head strong {
  color: #f8fbff;
  font-size: 18px;
  font-weight: 1000;
  line-height: 1.05;
}

.settings-panel-head small,
.settings-field small {
  color: #9fb0c9;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.3;
}

.settings-control-grid {
  background: rgba(3, 7, 14, .3);
  border: 1px solid rgba(143, 168, 200, .13);
  border-radius: 10px;
  display: grid;
  gap: 0;
  grid-template-columns: minmax(90px, .45fr) minmax(0, 1fr);
  overflow: hidden;
}

.settings-control-grid span,
.settings-control-grid strong {
  border-bottom: 1px solid rgba(143, 168, 200, .11);
  min-width: 0;
  padding: 10px 11px;
}

.settings-control-grid span:nth-last-child(-n + 2),
.settings-control-grid strong:nth-last-child(-n + 2) {
  border-bottom: 0;
}

.settings-control-grid span {
  color: #8fa8c8;
  font-size: 10px;
  font-weight: 1000;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.settings-control-grid strong {
  color: #fff7d6;
  font-size: 12px;
  font-weight: 950;
}

.settings-control-sections,
.settings-account-view {
  display: grid;
  gap: 10px;
}

.settings-account-view[hidden] {
  display: none;
}

.settings-control-section {
  background: rgba(3, 7, 14, .28);
  border: 1px solid rgba(143, 168, 200, .13);
  border-radius: 10px;
  display: grid;
  gap: 7px;
  padding: 8px;
}

.settings-section-head {
  display: grid;
  gap: 3px;
}

.settings-section-head strong {
  color: #fff7d6;
  font-size: 14px;
  font-weight: 1000;
}

.settings-section-head small {
  color: #9fb0c9;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.25;
}

.settings-keybind-list,
.settings-mobile-control-list,
.settings-action-list {
  display: grid;
  gap: 6px;
}

.settings-keybind-row {
  align-items: center;
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(143, 168, 200, .12);
  border-radius: 9px;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(96px, auto) minmax(0, 1fr) auto;
  min-width: 0;
  padding: 6px 7px;
}

.settings-keycap-group {
  align-items: center;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
}

.settings-keycap-group kbd,
.settings-keycap-group b {
  align-items: center;
  display: inline-flex;
  font-size: 11px;
  font-weight: 1000;
  justify-content: center;
  line-height: 1;
}

.settings-keycap-group kbd {
  background: linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, .055));
  border: 1px solid rgba(143, 168, 200, .24);
  border-radius: 7px;
  box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .18);
  color: #f8fbff;
  min-height: 26px;
  min-width: 26px;
  padding: 0 7px;
}

.settings-keycap-group b {
  color: #8fa8c8;
  min-width: 10px;
}

.settings-keybind-row span:nth-child(2),
.settings-mobile-control-list div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.settings-keybind-row strong,
.settings-mobile-control-list strong {
  color: #f8fbff;
  font-size: 12px;
  font-weight: 1000;
  line-height: 1.1;
}

.settings-keybind-row small,
.settings-mobile-control-list small {
  color: #9fb0c9;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.25;
}

.settings-keybind-row button {
  background: rgba(255, 255, 255, .055);
  border: 1px solid rgba(143, 168, 200, .18);
  border-radius: 8px;
  color: #c9d7ea;
  cursor: pointer;
  font-size: 10px;
  font-weight: 1000;
  min-height: 28px;
  padding: 5px 8px;
}

.settings-keybind-row button:hover,
.settings-keybind-row button:focus-visible,
.settings-action-list button:hover,
.settings-action-list button:focus-visible,
.settings-back-button:hover,
.settings-back-button:focus-visible {
  background: rgba(255, 214, 106, .13);
  border-color: rgba(255, 214, 106, .38);
  color: #fff7d6;
  outline: none;
}

.settings-mobile-control-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.settings-mobile-control-list div {
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(143, 168, 200, .12);
  border-radius: 9px;
  padding: 8px;
}

.settings-field {
  display: grid;
  gap: 6px;
}

.settings-field > span {
  color: #dbe7f8;
  font-size: 12px;
  font-weight: 1000;
}

.settings-field input,
.settings-field select {
  background: rgba(3, 7, 14, .56);
  border: 1px solid rgba(143, 168, 200, .24);
  border-radius: 9px;
  color: #edf5ff;
  font: inherit;
  font-size: 13px;
  font-weight: 850;
  min-height: 40px;
  outline: none;
  padding: 9px 10px;
}

.settings-field input:focus,
.settings-field select:focus {
  border-color: rgba(255, 214, 106, .52);
  box-shadow: 0 0 0 2px rgba(255, 214, 106, .12);
}

.settings-account-summary {
  align-items: center;
  background: rgba(255, 255, 255, .045);
  border: 1px solid rgba(143, 168, 200, .15);
  border-radius: 10px;
  display: grid;
  gap: 10px;
  grid-template-columns: 46px minmax(0, 1fr) repeat(2, minmax(58px, auto));
  padding: 9px 10px;
}

.settings-account-avatar {
  display: block;
  height: 46px;
  width: 46px;
}

.settings-account-summary > span:not(.settings-account-avatar) {
  min-width: 0;
}

.settings-account-summary small {
  color: #8fa8c8;
  display: block;
  font-size: 10px;
  font-weight: 1000;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.settings-account-summary strong {
  color: #fff7d6;
  display: block;
  font-size: 18px;
  font-weight: 1000;
  line-height: 1.05;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.settings-account-stat {
  background: rgba(3, 7, 14, .34);
  border: 1px solid rgba(143, 168, 200, .12);
  border-radius: 8px;
  display: grid;
  gap: 2px;
  justify-items: center;
  min-width: 58px;
  padding: 6px 8px;
}

.settings-account-stat strong {
  color: #ffe18a;
  font-size: 16px;
}

.settings-action-list button,
.settings-back-button {
  background: rgba(255, 255, 255, .045);
  border: 1px solid rgba(143, 168, 200, .16);
  border-radius: 10px;
  color: #edf5ff;
  cursor: pointer;
  font: inherit;
  min-width: 0;
}

.settings-action-list button {
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  text-align: left;
}

.settings-action-list button strong {
  color: #f8fbff;
  font-size: 13px;
  font-weight: 1000;
}

.settings-action-list button small {
  color: #9fb0c9;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.25;
}

.settings-back-button {
  justify-self: start;
  min-height: 30px;
  padding: 6px 10px;
}

.settings-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.settings-inline-status {
  color: #9fb0c9;
  font-size: 11px;
  font-weight: 850;
  line-height: 1.3;
  margin: 0;
  min-height: 15px;
}

.settings-field input[readonly] {
  color: #9fb0c9;
  cursor: default;
}

.settings-actions .secondary-action:disabled {
  cursor: default;
  filter: grayscale(.35);
  opacity: .56;
}

@media (max-width: 920px) {
  .lobby-main,
  .lobby-grid {
    grid-template-columns: 1fr;
  }

  .lobby-hero {
    justify-items: center;
    text-align: center;
  }

  .lobby-feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lobby-controls {
    grid-template-columns: 1fr;
  }
}

.start-status-row {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: space-between;
}

.server-pill,
.start-ready {
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  padding: 5px 9px;
}

.server-pill {
  background: rgba(25, 148, 102, .14);
  border: 1px solid rgba(52, 211, 153, .34);
  color: #62f1b5;
}

.server-pill.is-error {
  background: rgba(224, 82, 100, .16);
  border-color: rgba(255, 126, 145, .4);
  color: #ff9cac;
}

.server-pill.is-loading {
  background: rgba(47, 109, 246, .15);
  border-color: rgba(120, 170, 255, .4);
  color: #a9caff;
}

.start-ready {
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(143, 168, 200, .18);
  color: #c7d4e8;
}

.start-hero {
  display: grid;
  gap: 8px;
  justify-items: center;
  padding: 4px 0 2px;
}

.start-hero .eyebrow {
  color: #ffe1a0;
  letter-spacing: .14em;
}

.start-hero h1 {
  color: #f8fbff;
  font-size: 58px;
  font-weight: 1000;
  letter-spacing: 0;
  line-height: .92;
  text-shadow: 0 4px 0 rgba(0, 0, 0, .3), 0 0 24px rgba(94, 154, 255, .22);
  text-transform: uppercase;
}

.start-hero p,
.team-auto {
  color: #d7e0ef;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.35;
}

.team-banners {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.team-banner {
  background: linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .025));
  border: 1px solid rgba(143, 168, 200, .2);
  border-radius: 8px;
  color: inherit;
  cursor: pointer;
  display: grid;
  gap: 3px;
  min-height: 64px;
  padding: 12px;
  text-align: left;
  transition: border-color .18s ease, box-shadow .18s ease, filter .18s ease, transform .18s ease;
  width: 100%;
}

.team-banner:hover:not(:disabled),
.team-banner:focus-visible {
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.team-banner:focus-visible {
  outline: 2px solid rgba(255, 225, 160, .85);
  outline-offset: 2px;
}

.team-banner span {
  color: #f8fbff;
  font-size: 18px;
  font-weight: 1000;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.team-banner strong {
  color: #aebdd1;
  font-size: 12px;
  font-weight: 850;
}

.team-banner small {
  color: #dfe9fb;
  font-size: 11px;
  font-weight: 850;
  margin-top: 4px;
}

.team-banner-north {
  border-color: rgba(75, 139, 255, .42);
  box-shadow: inset 4px 0 0 rgba(47, 109, 246, .95);
}

.team-banner-north:hover:not(:disabled),
.team-banner-north:focus-visible {
  border-color: rgba(117, 169, 255, .82);
  box-shadow:
    inset 4px 0 0 rgba(47, 109, 246, .98),
    0 0 22px rgba(67, 130, 255, .26);
}

.team-banner-south {
  border-color: rgba(255, 111, 133, .38);
  box-shadow: inset 4px 0 0 rgba(224, 82, 100, .95);
}

.team-banner-south:hover:not(:disabled),
.team-banner-south:focus-visible {
  border-color: rgba(255, 139, 156, .82);
  box-shadow:
    inset 4px 0 0 rgba(224, 82, 100, .98),
    0 0 22px rgba(255, 86, 113, .24);
}

.team-banner:disabled {
  cursor: not-allowed;
  filter: grayscale(.7) brightness(.58);
  opacity: .72;
}

.team-banner.is-joining {
  filter: brightness(1.12);
  transform: translateY(-1px);
}

.team-auto {
  color: #aebdd1;
  font-size: 12px;
  margin-top: -6px;
}

.team-select-overlay {
  background:
    linear-gradient(90deg, rgba(16, 52, 112, .3), transparent 38% 62%, rgba(112, 24, 24, .32)),
    linear-gradient(180deg, rgba(3, 6, 12, .64), rgba(3, 6, 12, .9));
  backdrop-filter: blur(4px) saturate(.82);
}

.team-select-dialog {
  align-content: start;
  background:
    linear-gradient(180deg, rgba(26, 36, 54, .98), rgba(8, 12, 20, .99)),
    linear-gradient(90deg, rgba(67, 130, 255, .14), transparent 44% 56%, rgba(255, 86, 113, .14));
  border-color: rgba(255, 214, 106, .36);
  box-shadow:
    0 26px 86px rgba(0, 0, 0, .68),
    inset 0 1px 0 rgba(255, 255, 255, .08);
  color: #edf5ff;
  gap: 16px;
  max-height: calc(100dvh - 28px);
  max-width: 980px;
  overflow: hidden;
  padding: 22px;
  position: relative;
  text-align: center;
  width: min(980px, calc(100vw - 36px));
}

.team-select-header {
  display: grid;
  gap: 7px;
  justify-items: center;
  padding: 0 42px;
}

.team-select-dialog h2 {
  color: #fff7d6;
  font-size: clamp(34px, 5.4vw, 58px);
  line-height: .88;
  margin: 0;
  text-shadow:
    0 3px 0 rgba(0, 0, 0, .38),
    0 0 24px rgba(255, 214, 106, .18);
  text-transform: uppercase;
}

.team-select-dialog .team-auto {
  color: #c7d5e9;
  font-size: 13px;
  font-weight: 850;
  margin: 0;
}

.team-banners {
  align-items: stretch;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) 58px minmax(0, 1fr);
}

.team-versus {
  align-self: center;
  background:
    linear-gradient(180deg, rgba(255, 245, 185, .2), rgba(255, 214, 106, .08)),
    rgba(5, 10, 18, .74);
  border: 1px solid rgba(255, 214, 106, .36);
  border-radius: 999px;
  box-shadow: 0 0 24px rgba(255, 214, 106, .18);
  color: #fff1a6;
  display: grid;
  font-size: 17px;
  font-weight: 1000;
  height: 58px;
  line-height: 1;
  place-items: center;
  text-shadow: 0 2px 0 rgba(0, 0, 0, .34);
  width: 58px;
  z-index: 2;
}

.team-banner {
  align-content: stretch;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .075), rgba(255, 255, 255, .026)),
    rgba(7, 12, 22, .92);
  border: 1px solid rgba(143, 168, 200, .2);
  border-radius: 8px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .08),
    0 18px 42px rgba(0, 0, 0, .28);
  color: inherit;
  cursor: pointer;
  display: grid;
  gap: 10px;
  grid-template-rows: auto minmax(140px, 1fr) auto auto auto auto;
  min-height: 326px;
  overflow: hidden;
  padding: 15px;
  position: relative;
  text-align: left;
  transition: border-color .18s ease, box-shadow .18s ease, filter .18s ease, transform .18s ease;
  width: 100%;
}

.team-banner::before {
  background:
    linear-gradient(118deg, transparent 0 24%, rgba(255, 255, 255, .08) 24% 25%, transparent 25% 100%),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, .028) 0 1px, transparent 1px 22px);
  content: "";
  inset: 0;
  opacity: .7;
  pointer-events: none;
  position: absolute;
}

.team-banner-glow {
  inset: 0;
  opacity: .84;
  pointer-events: none;
  position: absolute;
}

.team-banner > *:not(.team-banner-glow) {
  position: relative;
  z-index: 1;
}

.team-banner-top {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  min-width: 0;
}

.team-banner-name {
  color: #f8fbff;
  font-size: clamp(18px, 2.4vw, 26px);
  font-weight: 1000;
  line-height: 1;
  min-width: 0;
  text-transform: uppercase;
}

.team-slot-badge {
  background: rgba(5, 10, 18, .6);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 999px;
  color: #f4f8ff;
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 1000;
  line-height: 1;
  padding: 7px 10px;
}

.team-banner-art {
  align-self: stretch;
  display: block;
  min-height: 148px;
  position: relative;
}

.team-banner-mage,
.team-banner-minions,
.team-banner-standard {
  background-repeat: no-repeat;
  display: block;
  position: absolute;
}

.team-banner-mage {
  background-image: url("./assets/gate-war-warriors.png?v=20260709-battle-mage-5");
  background-size: 600px 300px;
  bottom: 0;
  height: 150px;
  left: 50%;
  transform: translateX(-50%);
  width: 150px;
  z-index: 2;
}

.team-banner-minions {
  background-image: url("./assets/gate-war-minions.png?v=20260708-01");
  background-size: 360px 180px;
  bottom: 4px;
  height: 90px;
  opacity: .88;
  width: 90px;
  z-index: 1;
}

.team-banner-standard {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, .04));
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 2px;
  height: 74px;
  opacity: .82;
  top: 12px;
  width: 42px;
}

.team-banner-standard::before {
  background: rgba(3, 7, 14, .54);
  content: "";
  height: 88px;
  position: absolute;
  top: -7px;
  width: 5px;
}

.team-banner strong {
  color: #fff3bd;
  display: block;
  font-size: 17px;
  font-weight: 1000;
  line-height: 1.05;
  text-transform: uppercase;
}

.team-banner small {
  color: #dce8fa;
  display: block;
  font-size: 12px;
  font-weight: 850;
  line-height: 1.25;
  min-height: 15px;
}

.team-capacity-bar {
  background: rgba(4, 8, 15, .62);
  border: 1px solid rgba(143, 168, 200, .14);
  border-radius: 999px;
  height: 8px;
  overflow: hidden;
}

.team-capacity-bar span {
  display: block;
  height: 100%;
  width: 0;
}

.team-recommend {
  align-self: start;
  border: 1px solid rgba(255, 214, 106, .38);
  border-radius: 999px;
  color: #ffe996;
  display: inline-flex;
  font-size: 10px;
  font-weight: 1000;
  justify-self: start;
  letter-spacing: .06em;
  line-height: 1;
  padding: 5px 8px;
  text-transform: uppercase;
}

.team-recommend[hidden] {
  display: none;
}

.team-join-label {
  align-items: center;
  border-radius: 8px;
  display: grid;
  font-size: 15px;
  font-weight: 1000;
  justify-items: center;
  min-height: 40px;
  text-transform: uppercase;
}

.team-banner:hover:not(:disabled),
.team-banner:focus-visible {
  filter: brightness(1.08);
  transform: translateY(-2px);
}

.team-banner:focus-visible {
  outline: 2px solid rgba(255, 225, 160, .85);
  outline-offset: 2px;
}

.team-banner:disabled {
  cursor: not-allowed;
  filter: grayscale(.62) brightness(.62);
  opacity: .78;
}

.team-banner.is-selected {
  box-shadow:
    inset 0 0 0 1px rgba(255, 214, 106, .28),
    0 0 26px rgba(255, 214, 106, .14),
    0 18px 42px rgba(0, 0, 0, .3);
}

.team-banner.is-joining {
  filter: brightness(1.13);
  transform: translateY(-2px);
}

.team-banner.is-joining .team-join-label {
  animation: teamJoinPulse 1s ease-in-out infinite;
}

.team-banner-north {
  border-color: rgba(92, 170, 255, .46);
}

.team-banner-north .team-banner-glow {
  background:
    radial-gradient(ellipse at 36% 46%, rgba(79, 162, 255, .34), transparent 45%),
    linear-gradient(180deg, rgba(35, 82, 168, .36), rgba(8, 16, 30, .24));
}

.team-banner-north .team-banner-mage {
  background-position: 0 0;
}

.team-banner-north .team-banner-minions {
  background-position: 0 0;
  left: 22px;
}

.team-banner-north .team-banner-standard {
  background-color: rgba(45, 119, 255, .24);
  box-shadow: 0 0 24px rgba(67, 147, 255, .2);
  right: 32px;
}

.team-banner-north .team-banner-standard::before {
  left: -7px;
}

.team-banner-north .team-capacity-bar span,
.team-banner-north .team-join-label {
  background: linear-gradient(90deg, #4ac3ff, #3373ff);
}

.team-banner-north:hover:not(:disabled),
.team-banner-north:focus-visible,
.team-banner-north.is-recommended {
  border-color: rgba(117, 190, 255, .86);
  box-shadow:
    0 0 30px rgba(67, 147, 255, .28),
    inset 0 0 0 1px rgba(117, 190, 255, .18);
}

.team-banner-south {
  border-color: rgba(255, 111, 133, .46);
}

.team-banner-south .team-banner-glow {
  background:
    radial-gradient(ellipse at 62% 46%, rgba(255, 88, 70, .34), transparent 45%),
    linear-gradient(180deg, rgba(158, 40, 52, .36), rgba(25, 8, 12, .22));
}

.team-banner-south .team-banner-mage {
  background-position: 0 -150px;
}

.team-banner-south .team-banner-minions {
  background-position: 0 -90px;
  right: 22px;
}

.team-banner-south .team-banner-standard {
  background-color: rgba(255, 74, 70, .22);
  box-shadow: 0 0 24px rgba(255, 82, 82, .2);
  left: 32px;
}

.team-banner-south .team-banner-standard::before {
  right: -7px;
}

.team-banner-south .team-capacity-bar span,
.team-banner-south .team-join-label {
  background: linear-gradient(90deg, #ff6254, #c8213e);
}

.team-banner-south:hover:not(:disabled),
.team-banner-south:focus-visible,
.team-banner-south.is-recommended {
  border-color: rgba(255, 142, 142, .86);
  box-shadow:
    0 0 30px rgba(255, 86, 113, .26),
    inset 0 0 0 1px rgba(255, 142, 142, .18);
}

.team-banner.is-full .team-join-label {
  background: rgba(87, 98, 116, .58);
  color: #c3ccda;
}

@keyframes teamJoinPulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(255, 214, 106, .38);
  }
  50% {
    box-shadow: 0 0 0 6px rgba(255, 214, 106, .08);
  }
}

.daily-missions {
  background: linear-gradient(180deg, rgba(5, 10, 18, .58), rgba(12, 19, 31, .76));
  border: 1px solid rgba(143, 168, 200, .2);
  border-radius: 9px;
  display: grid;
  gap: 8px;
  padding: 10px;
  text-align: left;
}

.daily-missions-head {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.daily-missions-head strong {
  color: #fff7d6;
  font-size: 12px;
  font-weight: 1000;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.daily-missions-head span {
  color: #90f0bd;
  font-size: 11px;
  font-weight: 950;
}

.daily-mission-list {
  display: grid;
  gap: 6px;
  grid-auto-rows: minmax(70px, auto);
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: auto;
}

.daily-mission-card {
  align-items: center;
  background: rgba(255, 255, 255, .045);
  border: 1px solid rgba(143, 168, 200, .14);
  border-radius: 8px;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1fr) 54px;
  min-height: 70px;
  padding: 8px;
}

.daily-mission-card.is-complete {
  border-color: rgba(255, 214, 106, .64);
  box-shadow:
    0 0 22px rgba(255, 214, 106, .1),
    inset 3px 0 0 rgba(255, 214, 106, .72);
}

.daily-mission-card.is-claimed {
  opacity: .64;
}

.daily-mission-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.daily-mission-title {
  color: #f6fbff;
  font-size: 12px;
  font-weight: 950;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.daily-mission-progress {
  align-items: center;
  display: grid;
  column-gap: 6px;
  row-gap: 3px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.daily-mission-bar {
  background: rgba(5, 10, 18, .62);
  border: 1px solid rgba(143, 168, 200, .14);
  border-radius: 999px;
  height: 7px;
  overflow: hidden;
}

.daily-mission-bar span {
  background: linear-gradient(90deg, #3ca7ff, #62f1b5);
  display: block;
  height: 100%;
  width: 0;
}

.daily-mission-progress small {
  color: #c7d4e8;
  font-size: 10px;
  font-weight: 900;
  min-width: 56px;
  text-align: right;
}

.daily-mission-tiers {
  display: flex;
  gap: 4px;
  grid-column: 1 / -1;
  min-width: 0;
}

.daily-mission-tier {
  align-items: center;
  background: rgba(255, 255, 255, .045);
  border: 1px solid rgba(143, 168, 200, .16);
  border-radius: 999px;
  color: #7f91ad;
  display: inline-flex;
  font-size: 7px;
  font-weight: 1000;
  height: 11px;
  justify-content: center;
  line-height: 1;
  min-width: 16px;
  padding: 0 4px;
}

.daily-mission-tier.is-next {
  border-color: rgba(126, 241, 190, .34);
  box-shadow: 0 0 0 1px rgba(126, 241, 190, .08);
}

.daily-mission-tier.is-ready {
  animation: dailyChestGlow 1.25s ease-in-out infinite;
  background: linear-gradient(180deg, #ffd86d, #a76818);
  border-color: rgba(255, 239, 176, .9);
  box-shadow: 0 0 14px rgba(255, 205, 91, .4);
  color: #2b1703;
}

.daily-mission-tier.is-claimed {
  background: linear-gradient(180deg, #78f1b6, #247a5a);
  border-color: rgba(163, 255, 207, .76);
  box-shadow: 0 0 10px rgba(95, 240, 171, .22);
  color: #041a12;
}

.daily-mission-claim {
  align-self: center;
  background: linear-gradient(180deg, #ffe18a, #d99a30);
  border: 1px solid rgba(255, 245, 189, .86);
  border-radius: 15px;
  box-shadow: 0 0 16px rgba(255, 214, 106, .22);
  box-sizing: border-box;
  color: #2a1904;
  cursor: pointer;
  display: grid;
  font-size: 11px;
  font-weight: 1000;
  height: 50px;
  justify-items: center;
  justify-self: end;
  min-width: 50px;
  padding: 0;
  position: relative;
  transform-origin: center;
  width: 50px;
  will-change: transform, box-shadow;
}

.daily-mission-claim:disabled {
  background: rgba(143, 168, 200, .16);
  border-color: rgba(143, 168, 200, .18);
  box-shadow: none;
  color: #91a0b5;
  cursor: default;
}

.daily-mission-empty {
  color: #aebdd1;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
  text-align: center;
}

.start-action-hidden {
  display: none;
}

.start-action {
  background:
    linear-gradient(180deg, rgba(88, 148, 255, .96), rgba(33, 76, 159, .96)),
    #2f6df6;
  border: 1px solid rgba(255, 224, 153, .48);
  border-radius: 9px;
  box-shadow:
    0 14px 34px rgba(47, 109, 246, .24),
    inset 0 1px 0 rgba(255, 255, 255, .32),
    inset 0 -2px 0 rgba(0, 0, 0, .22);
  color: #fff;
  font-size: 18px;
  letter-spacing: .02em;
  min-height: 58px;
  text-transform: uppercase;
}

.start-action:hover {
  box-shadow:
    0 0 0 1px rgba(255, 224, 153, .32),
    0 0 34px rgba(76, 137, 255, .34),
    inset 0 1px 0 rgba(255, 255, 255, .36),
    inset 0 -2px 0 rgba(0, 0, 0, .22);
  filter: brightness(1.06);
}

.start-action:active {
  transform: translateY(1px);
}

.start-action:disabled {
  cursor: wait;
  filter: grayscale(.25) brightness(.88);
  opacity: .82;
}

.start-feedback {
  color: #ffb1bf;
  font-size: 13px;
  font-weight: 850;
  min-height: 18px;
}

.start-feedback:empty {
  display: none;
}

.start-rules {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.start-rules span {
  background: rgba(5, 10, 18, .42);
  border: 1px solid rgba(143, 168, 200, .17);
  border-radius: 7px;
  color: #c7d4e8;
  display: grid;
  font-size: 11px;
  font-weight: 800;
  gap: 2px;
  min-height: 52px;
  padding: 8px;
}

.start-rules strong {
  color: #ffe1a0;
  font-size: 13px;
  font-weight: 1000;
}

.start-controls {
  border-top: 1px solid rgba(143, 168, 200, .16);
  color: #93a5be;
  display: grid;
  font-size: 11px;
  font-weight: 800;
  gap: 4px;
  line-height: 1.35;
  padding-top: 12px;
}

.round-dialog h2 {
  font-size: 30px;
  line-height: 1.05;
}

.round-dialog p {
  color: var(--muted);
  font-size: 15px;
  font-weight: 750;
  line-height: 1.45;
}

.start-dialog .start-hero p,
.start-dialog .team-auto {
  color: #d7e0ef;
  font-weight: 850;
}

.match-result-overlay {
  background:
    radial-gradient(circle at 50% 10%, rgba(255, 214, 106, .13), transparent 34%),
    rgba(6, 9, 15, .78);
  overflow: auto;
}

.death-overlay {
  background:
    radial-gradient(circle at 50% 32%, rgba(206, 38, 52, .18), transparent 34%),
    linear-gradient(180deg, rgba(8, 6, 8, .42), rgba(8, 3, 4, .64));
  backdrop-filter: none;
}

.death-dialog {
  background:
    linear-gradient(180deg, rgba(32, 15, 18, .96), rgba(10, 8, 12, .96)),
    var(--panel);
  border-color: rgba(255, 76, 91, .48);
  box-shadow: 0 24px 80px rgba(0, 0, 0, .58), 0 0 42px rgba(255, 54, 72, .14);
  max-width: 560px;
  padding: 24px;
}

.death-dialog h2 {
  color: #ff4054;
  font-size: clamp(42px, 7vw, 76px);
  letter-spacing: 0;
  line-height: .92;
  text-shadow: 0 4px 0 rgba(0, 0, 0, .34), 0 0 28px rgba(255, 48, 70, .28);
  text-transform: uppercase;
}

.death-dialog p {
  color: #ffd2d8;
  font-size: 16px;
}

#deathKillerText {
  align-items: center;
  background:
    linear-gradient(180deg, rgba(78, 16, 28, .9), rgba(18, 8, 14, .9)),
    radial-gradient(circle at 18% 0, rgba(255, 116, 132, .18), transparent 54%);
  border: 1px solid rgba(255, 99, 119, .58);
  border-radius: 14px;
  box-shadow:
    0 14px 34px rgba(0, 0, 0, .34),
    0 0 26px rgba(255, 59, 86, .18),
    inset 0 1px 0 rgba(255, 255, 255, .09);
  color: #ffe3e7;
  display: inline-flex;
  font-size: 16px;
  font-weight: 950;
  gap: 10px;
  justify-self: center;
  max-width: min(100%, 420px);
  padding: 9px 16px 9px 11px;
}

#deathKillerText::before {
  background:
    radial-gradient(circle at 38% 40%, #ffe2e6 0 8%, transparent 9%),
    radial-gradient(circle at 62% 40%, #ffe2e6 0 8%, transparent 9%),
    linear-gradient(180deg, #8c2030, #3a0c16);
  border: 1px solid rgba(255, 155, 166, .52);
  border-radius: 50%;
  box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .2);
  content: "";
  flex: 0 0 auto;
  height: 24px;
  width: 24px;
}

.death-stats,
.summary-stat-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.death-stat,
.summary-stat-card {
  align-items: center;
  background: rgba(4, 8, 14, .58);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  grid-template-columns: 42px 1fr;
  min-height: 66px;
  padding: 10px;
}

.death-stat-icon,
.summary-stat-icon {
  align-items: center;
  background: linear-gradient(180deg, rgba(255, 255, 255, .11), rgba(255, 255, 255, .03));
  border: 1px solid rgba(255, 214, 106, .26);
  border-radius: 7px;
  color: #ffe7a3;
  display: flex;
  font-size: 11px;
  font-weight: 1000;
  height: 42px;
  justify-content: center;
  line-height: 1;
  text-transform: uppercase;
  width: 42px;
}

.death-stat-body,
.summary-stat-body {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.death-stat-body small,
.summary-stat-body small {
  color: #91a1b8;
  font-size: 10px;
  font-weight: 950;
  text-transform: uppercase;
}

.death-stat-body strong,
.summary-stat-body strong {
  color: #f9fbff;
  font-size: 20px;
  font-weight: 1000;
}

.death-action {
  background: linear-gradient(180deg, #ff4b5d, #a71927);
  border: 1px solid rgba(255, 222, 164, .42);
  box-shadow: 0 0 24px rgba(255, 44, 64, .18);
}

.match-result-dialog {
  background:
    linear-gradient(180deg, rgba(21, 30, 45, .98), rgba(8, 13, 22, .98)),
    var(--panel);
  border-color: rgba(255, 214, 106, .28);
  box-shadow: 0 24px 80px rgba(0, 0, 0, .48), inset 0 1px 0 rgba(255, 255, 255, .08);
  gap: 12px;
  max-height: calc(100vh - 36px);
  max-width: 1080px;
  overflow: auto;
  padding: 22px;
  width: min(100%, 1080px);
}

.match-result-title {
  font-size: clamp(46px, 7vw, 84px);
  letter-spacing: 0;
  line-height: .92;
  text-transform: uppercase;
}

.match-win {
  color: #55a7ff;
  text-shadow: 0 4px 0 rgba(0, 0, 0, .35), 0 0 34px rgba(68, 154, 255, .3);
}

.match-loss {
  color: #ff4054;
  text-shadow: 0 4px 0 rgba(0, 0, 0, .35), 0 0 34px rgba(255, 48, 70, .26);
}

.match-summary {
  display: grid;
  gap: 12px;
  text-align: left;
}

.summary-hero {
  background:
    radial-gradient(circle at 12% 0%, rgba(255, 214, 106, .12), transparent 34%),
    linear-gradient(180deg, rgba(20, 30, 45, .92), rgba(8, 13, 23, .96));
  border: 1px solid rgba(143, 168, 200, .24);
  border-radius: 9px;
  display: grid;
  gap: 12px;
  padding: 14px;
}

.summary-hero-win {
  border-color: rgba(85, 167, 255, .54);
  box-shadow: 0 0 0 1px rgba(85, 167, 255, .12), 0 0 30px rgba(85, 167, 255, .12);
}

.summary-hero-loss {
  border-color: rgba(255, 64, 84, .48);
  box-shadow: 0 0 0 1px rgba(255, 64, 84, .1), 0 0 30px rgba(255, 64, 84, .1);
}

.summary-hero-header {
  align-items: baseline;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.summary-hero-header strong {
  color: #f8fbff;
  font-size: 18px;
  font-weight: 1000;
}

.summary-hero-header span {
  color: #aebdd1;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.summary-details-toggle {
  justify-self: center;
  min-height: 42px;
  width: min(100%, 340px);
}

.summary-details {
  display: grid;
  gap: 12px;
}

.summary-teams {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.summary-team {
  background: linear-gradient(180deg, rgba(20, 30, 45, .92), rgba(8, 13, 23, .96));
  border: 1px solid rgba(143, 168, 200, .22);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  padding: 12px;
}

.summary-team-winner {
  border-color: rgba(255, 214, 106, .58);
  box-shadow: 0 0 0 1px rgba(255, 214, 106, .16), 0 0 28px rgba(255, 214, 106, .12);
}

.summary-team-header {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.summary-team-name {
  color: #edf5ff;
  font-size: 16px;
  font-weight: 950;
}

.summary-team-result {
  border: 1px solid rgba(255, 214, 106, .42);
  border-radius: 999px;
  color: #ffe7a3;
  font-size: 11px;
  padding: 4px 8px;
  text-transform: uppercase;
}

.summary-team-north .summary-team-name {
  color: var(--north);
}

.summary-team-south .summary-team-name {
  color: var(--south);
}

.summary-awards {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.summary-award {
  align-items: center;
  background: rgba(6, 11, 19, .62);
  border: 1px solid rgba(143, 168, 200, .18);
  border-radius: 7px;
  display: grid;
  gap: 8px;
  grid-template-columns: 34px 1fr;
  min-height: 54px;
  padding: 8px;
}

.summary-award-mvp {
  background:
    radial-gradient(circle at 16px 18px, rgba(255, 214, 106, .24), transparent 34px),
    rgba(30, 22, 9, .68);
  border-color: rgba(255, 214, 106, .42);
}

.summary-award-icon {
  align-items: center;
  background: rgba(10, 16, 26, .9);
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 6px;
  color: #ffe7a3;
  display: flex;
  font-size: 10px;
  font-weight: 950;
  height: 34px;
  justify-content: center;
  line-height: 1;
  width: 34px;
}

.summary-crown {
  background: linear-gradient(180deg, #fff1aa, #d79c2e);
  clip-path: polygon(5% 38%, 24% 38%, 30% 10%, 50% 34%, 70% 10%, 76% 38%, 95% 38%, 86% 88%, 14% 88%);
  display: block;
  height: 22px;
  width: 24px;
}

.summary-award-body {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.summary-award-body small {
  color: #8fa0b8;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.summary-award-body strong {
  color: #f8fbff;
  font-size: 13px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.summary-award-body em {
  color: #ffe7a3;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
}

.summary-player-list {
  display: grid;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.summary-player {
  align-items: center;
  background: rgba(255, 255, 255, .035);
  border: 1px solid rgba(255, 255, 255, .06);
  border-radius: 6px;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(90px, 1fr) minmax(0, 1.8fr);
  padding: 7px 8px;
}

.summary-player strong {
  color: #edf5ff;
  font-size: 12px;
}

.summary-player-stats {
  color: #aebdd1;
  font-size: 11px;
  font-weight: 800;
  overflow: hidden;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.summary-player-empty,
.summary-empty {
  color: #aebdd1;
  font-size: 13px;
  font-weight: 800;
  justify-content: center;
  text-align: center;
}

.match-actions {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.primary-action {
  background: var(--north);
  border: 0;
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
  font-weight: 900;
  min-height: 48px;
  padding: 12px 18px;
}

.primary-action:hover {
  filter: brightness(1.05);
}

.primary-action.lobby-play-button {
  background:
    linear-gradient(180deg, #ffd66b, #f59f24 54%, #c97115),
    #f59f24;
  border: 1px solid rgba(255, 247, 196, .82);
  border-radius: 14px;
  box-shadow:
    0 18px 44px rgba(245, 159, 36, .24),
    0 0 0 2px rgba(93, 49, 8, .3),
    inset 0 2px 0 rgba(255, 255, 255, .55),
    inset 0 -4px 0 rgba(92, 44, 5, .32);
  color: #301700;
  font-size: clamp(28px, 4vw, 44px);
  letter-spacing: .02em;
  min-height: 82px;
  text-shadow: 0 1px 0 rgba(255, 244, 189, .58);
  text-transform: uppercase;
}

.primary-action.lobby-play-button:hover {
  box-shadow:
    0 0 0 1px rgba(255, 247, 196, .42),
    0 0 38px rgba(255, 196, 73, .34),
    inset 0 2px 0 rgba(255, 255, 255, .58),
    inset 0 -4px 0 rgba(92, 44, 5, .32);
  filter: brightness(1.05);
}

.secondary-action {
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(143, 168, 200, .28);
  border-radius: 8px;
  color: #edf5ff;
  cursor: pointer;
  font-weight: 900;
  min-height: 48px;
  padding: 12px 18px;
}

.secondary-action:hover {
  border-color: rgba(255, 214, 106, .46);
}

.primary-action:disabled,
.secondary-action:disabled {
  cursor: not-allowed;
  filter: grayscale(.3) brightness(.78);
  opacity: .58;
}

.secondary-action.is-locked {
  border-color: rgba(255, 92, 111, .28);
  color: #b8c2d2;
}

@media (max-width: 900px) {
  .start-dialog {
    max-height: calc(100vh - 28px);
    overflow: auto;
    padding: 18px;
  }

  .start-hero h1 {
    font-size: 42px;
  }

  .team-banners,
  .start-rules,
  .summary-teams,
  .summary-awards,
  .match-actions {
    grid-template-columns: 1fr;
  }

  .summary-player {
    grid-template-columns: 1fr;
  }

  .summary-player-stats {
    text-align: left;
    white-space: normal;
  }
}

.arena-panel,
.side-panel,
.score-panel,
.kill-panel,
.objective-panel,
.level-panel,
.inventory {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.arena-panel {
  align-items: center;
  background:
    linear-gradient(180deg, rgba(31, 45, 61, .98), rgba(9, 14, 23, .98)),
    radial-gradient(circle at 50% 10%, rgba(85, 167, 255, .12), transparent 42%);
  border-color: #2c3a50;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 22px 46px rgba(8, 13, 22, .26);
  display: flex;
  height: 100%;
  justify-content: center;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  padding: clamp(6px, .65vw, 10px);
}

#gameCanvas {
  aspect-ratio: 23 / 17;
  background: #1d3f31;
  border-radius: 6px;
  display: block;
  height: auto;
  max-height: 100%;
  max-width: 100%;
  min-height: 0;
  object-fit: contain;
  width: 100%;
}

html.mobile-capable,
body.mobile-capable {
  overscroll-behavior: none;
  touch-action: none;
  user-select: none;
  -webkit-text-size-adjust: 100%;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
}

html.mobile-capable *,
body.mobile-capable * {
  -webkit-tap-highlight-color: transparent;
}

body.mobile-capable .start-overlay {
  overflow: hidden;
}

body.mobile-capable.is-lobby .start-overlay {
  overflow: auto;
  touch-action: pan-y;
}

body.mobile-capable.is-lobby .start-overlay * {
  touch-action: pan-y;
}

body.mobile-capable.is-lobby .start-overlay button {
  touch-action: manipulation;
}

body.mobile-portrait .mobile-orientation {
  align-items: center;
  background:
    radial-gradient(circle at 50% 32%, rgba(85, 167, 255, .18), transparent 35%),
    linear-gradient(180deg, rgba(6, 10, 18, .96), rgba(4, 7, 12, .98));
  color: #edf5ff;
  display: grid;
  inset: 0;
  justify-items: center;
  padding: 24px;
  position: fixed;
  z-index: 30;
}

body.mobile-portrait.is-lobby .mobile-orientation {
  display: none;
}

.mobile-orientation-card {
  background:
    linear-gradient(180deg, rgba(31, 44, 64, .96), rgba(10, 15, 24, .98)),
    radial-gradient(circle at 50% 0, rgba(255, 214, 106, .14), transparent 60%);
  border: 1px solid rgba(255, 214, 106, .34);
  border-radius: 18px;
  box-shadow:
    0 26px 80px rgba(0, 0, 0, .48),
    inset 0 1px 0 rgba(255, 255, 255, .1);
  display: grid;
  gap: 10px;
  max-width: 360px;
  padding: 24px;
  text-align: center;
}

.mobile-orientation-card::before {
  align-self: center;
  border: 3px solid rgba(255, 214, 106, .72);
  border-radius: 13px;
  box-shadow: 0 0 22px rgba(255, 214, 106, .18);
  content: "";
  height: 50px;
  justify-self: center;
  transform: rotate(90deg);
  width: 82px;
}

.mobile-orientation-card strong {
  color: #fff7d6;
  font-size: 24px;
  font-weight: 1000;
  line-height: 1.1;
  text-transform: uppercase;
}

.mobile-orientation-card span {
  color: #b9c7da;
  font-size: 14px;
  font-weight: 850;
  line-height: 1.35;
}

body.mobile-portrait .game-layout {
  filter: blur(2px) brightness(.58);
  pointer-events: none;
}

body.mobile-portrait.is-lobby .game-layout {
  filter: none;
}

body.mobile-portrait .start-dialog {
  overflow: hidden;
}

body.mobile-portrait.is-lobby .start-dialog {
  max-height: none;
  min-height: calc(100dvh - 24px);
  overflow: visible;
  padding: 16px;
  width: min(100%, calc(100vw - 24px));
}

body.mobile-portrait.is-lobby .lobby-dialog {
  gap: 12px;
}

body.mobile-portrait.is-lobby .lobby-main,
body.mobile-portrait.is-lobby .lobby-grid {
  grid-template-columns: 1fr;
}

body.mobile-portrait.is-lobby .lobby-main {
  gap: 14px;
}

body.mobile-portrait.is-lobby .lobby-hero {
  justify-items: center;
  text-align: center;
}

body.mobile-portrait.is-lobby .lobby-hero h1 {
  font-size: clamp(42px, 13vw, 58px);
}

body.mobile-portrait.is-lobby .lobby-play-button {
  min-height: 72px;
}

body.mobile-portrait.is-lobby .lobby-feature-grid {
  grid-template-columns: 1fr;
}

body.mobile-portrait.is-lobby .lobby-controls {
  display: none;
}

body.mobile-landscape {
  background: #07101c;
}

body.mobile-landscape .gate-shell {
  padding: 0;
}

body.mobile-landscape .game-layout {
  display: block;
  height: 100%;
  max-height: 100%;
  position: relative;
  touch-action: none;
  width: 100%;
}

body.mobile-landscape .arena-panel {
  border: 0;
  border-radius: 0;
  inset: 0;
  padding: 0;
  position: absolute;
}

body.mobile-landscape #gameCanvas {
  border-radius: 0;
  height: 100%;
  max-height: none;
  max-width: none;
  touch-action: none;
  width: 100%;
}

body.mobile-landscape .side-panel {
  display: none;
}

body.mobile-landscape .mobile-status-readout {
  color: #eff6ff;
  display: flex;
  flex-direction: column;
  font-size: 11px;
  font-weight: 950;
  gap: 2px;
  left: max(12px, env(safe-area-inset-left));
  letter-spacing: .01em;
  line-height: 1.12;
  pointer-events: none;
  position: absolute;
  text-shadow:
    0 1px 0 rgba(0, 0, 0, .9),
    0 0 4px rgba(0, 0, 0, .78),
    0 0 9px rgba(0, 0, 0, .5);
  top: calc(max(10px, env(safe-area-inset-top)) + 44px);
  z-index: 9;
}

body.mobile-landscape .mobile-menu-button {
  align-items: center;
  background:
    linear-gradient(180deg, rgba(31, 44, 65, .92), rgba(7, 11, 18, .92)),
    radial-gradient(circle at 50% 0, rgba(255, 214, 106, .2), transparent 62%);
  border: 1px solid rgba(255, 214, 106, .38);
  border-radius: 11px;
  box-shadow:
    0 10px 24px rgba(0, 0, 0, .34),
    inset 0 1px 0 rgba(255, 255, 255, .14);
  display: flex;
  height: 36px;
  justify-content: center;
  left: max(10px, env(safe-area-inset-left));
  padding: 0;
  position: absolute;
  top: max(8px, env(safe-area-inset-top));
  touch-action: manipulation;
  width: 36px;
  z-index: 9;
}

body.mobile-landscape .mobile-menu-button:active {
  transform: translateY(1px) scale(.98);
}

.mobile-menu-gear {
  border: 3px solid #f7d77a;
  border-radius: 50%;
  box-shadow:
    0 -10px 0 -6px #f7d77a,
    0 10px 0 -6px #f7d77a,
    10px 0 0 -6px #f7d77a,
    -10px 0 0 -6px #f7d77a,
    7px 7px 0 -6px #f7d77a,
    -7px -7px 0 -6px #f7d77a,
    7px -7px 0 -6px #f7d77a,
    -7px 7px 0 -6px #f7d77a,
    0 0 10px rgba(255, 214, 106, .34);
  display: block;
  height: 14px;
  position: relative;
  width: 14px;
}

.mobile-menu-gear::after {
  background: #f7d77a;
  border-radius: 50%;
  content: "";
  height: 4px;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 4px;
}

body.mobile-landscape .mobile-status-readout span,
body.mobile-landscape .mobile-status-readout .latency-meter,
body.mobile-landscape .mobile-status-readout .fps-meter {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  display: block;
  padding: 0;
}

body.mobile-landscape .mobile-status-readout .latency-good,
body.mobile-landscape .mobile-status-readout .fps-good {
  color: #76ff9b;
}

body.mobile-landscape .mobile-status-readout .latency-warn,
body.mobile-landscape .mobile-status-readout .fps-warn {
  color: #ffd76d;
}

body.mobile-landscape .mobile-status-readout .latency-bad,
body.mobile-landscape .mobile-status-readout .fps-bad {
  color: #ff7388;
}

body.mobile-landscape .mobile-status-readout .latency-unknown,
body.mobile-landscape .mobile-status-readout .fps-unknown {
  color: rgba(237, 245, 255, .78);
}

body.mobile-landscape .mobile-game-hud {
  background:
    linear-gradient(180deg, rgba(17, 25, 38, .58), rgba(8, 13, 21, .68)),
    radial-gradient(circle at 50% 0, rgba(255, 214, 106, .08), transparent 58%);
  border: 1px solid rgba(143, 168, 200, .18);
  border-radius: 10px;
  box-shadow:
    0 8px 20px rgba(0, 0, 0, .18),
    inset 0 1px 0 rgba(255, 255, 255, .08);
  color: #edf5ff;
  display: grid;
  gap: 3px;
  left: auto;
  max-width: 148px;
  padding: 5px 6px;
  pointer-events: none;
  position: absolute;
  right: max(10px, env(safe-area-inset-right));
  top: max(8px, env(safe-area-inset-top));
  transform: none;
  width: min(148px, calc(100vw - 24px));
  z-index: 7;
}

body.mobile-landscape .mobile-game-hud.mobile-game-hud-side {
  gap: 4px;
  padding: 5px;
}

.mobile-hud-row,
.mobile-base-row,
.mobile-level-row {
  align-items: center;
  display: flex;
  gap: 6px;
  justify-content: center;
  min-width: 0;
}

body.mobile-landscape .mobile-game-hud-side .mobile-hud-row,
body.mobile-landscape .mobile-game-hud-side .mobile-base-row,
body.mobile-landscape .mobile-game-hud-side .mobile-level-row {
  align-items: stretch;
  flex-direction: column;
  gap: 4px;
}

.mobile-hud-row span,
.mobile-base-row span,
.mobile-level-row > span {
  background: rgba(5, 10, 18, .32);
  border: 1px solid rgba(124, 151, 186, .14);
  border-radius: 999px;
  color: #dce8f7;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  padding: 4px 6px;
  white-space: nowrap;
}

body.mobile-landscape .mobile-game-hud-side .mobile-hud-row span,
body.mobile-landscape .mobile-game-hud-side .mobile-base-row span,
body.mobile-landscape .mobile-game-hud-side .mobile-level-row > span {
  display: flex;
  font-size: 9px;
  justify-content: center;
  padding: 4px 5px;
  white-space: normal;
}

body.mobile-landscape .mobile-game-hud-side .mobile-base-row span {
  flex-direction: column;
  gap: 2px;
  line-height: 1.12;
}

.mobile-hud-row .mobile-gold {
  color: #ffd66a;
}

.mobile-hud-row .mobile-gold::before {
  background:
    radial-gradient(circle at 35% 28%, rgba(255, 250, 196, .95) 0 16%, transparent 17%),
    radial-gradient(circle at 50% 50%, #f6d36a 0 54%, #b97819 55% 100%);
  border: 1px solid rgba(255, 236, 164, .76);
  border-radius: 50%;
  content: "";
  display: inline-block;
  height: 10px;
  margin-right: 3px;
  vertical-align: -1px;
  width: 10px;
}

.mobile-vital-bars {
  display: grid;
  gap: 3px;
  min-width: 100px;
  width: 100%;
}

.mobile-vital-bar {
  background: rgba(3, 8, 15, .38);
  border: 1px solid rgba(214, 229, 255, .12);
  border-radius: 999px;
  box-shadow:
    inset 0 1px 2px rgba(0, 0, 0, .38),
    0 0 0 1px rgba(255, 255, 255, .03);
  height: 14px;
  overflow: hidden;
  position: relative;
}

.mobile-vital-bar > span {
  border-radius: inherit;
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transition: width .16s ease;
  width: 100%;
}

.mobile-vital-bar > strong {
  align-items: center;
  color: #fff;
  display: flex;
  font-size: 9px;
  font-weight: 800;
  height: 100%;
  justify-content: center;
  letter-spacing: 0;
  line-height: 1;
  position: relative;
  text-shadow:
    0 1px 0 rgba(0, 0, 0, .78),
    0 0 4px rgba(0, 0, 0, .66);
  white-space: nowrap;
  z-index: 1;
}

.mobile-hp-bar > span {
  background: linear-gradient(90deg, #1fb763, #66ee8d);
  box-shadow: 0 0 10px rgba(67, 231, 122, .34);
}

.mobile-mana-bar > span {
  background: linear-gradient(90deg, #227eff, #7fd7ff);
  box-shadow: 0 0 10px rgba(64, 161, 255, .34);
}

.mobile-mana-bar.mana-low-warning > span,
.mana-resource.mana-low-warning > span {
  animation: mana-low-fill-flash .58s ease-out;
}

.mobile-mana-bar.mana-low-warning > strong,
.mana-resource.mana-low-warning > strong {
  animation: mana-low-text-flash .58s ease-out;
}

.mobile-base-row strong {
  color: #8df0a8;
}

.mobile-level-row {
  display: grid;
  gap: 0;
}

body.mobile-landscape .mobile-game-hud .mobile-level-row > span,
body.mobile-landscape .mobile-game-hud-side .mobile-level-row > span {
  display: none;
}

.mobile-level-bar {
  align-items: center;
  background: rgba(3, 8, 15, .38);
  border: 1px solid rgba(255, 220, 114, .18);
  border-radius: 999px;
  display: flex;
  height: 14px;
  justify-content: center;
  min-width: 0;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.mobile-level-bar > span {
  background: linear-gradient(90deg, #c78622, #f2c94c 58%, #fff0a8);
  box-shadow: 0 0 10px rgba(242, 201, 76, .28);
  inset: 0 auto 0 0;
  position: absolute;
  transition: width .18s ease;
  width: 0%;
}

.mobile-level-bar > strong {
  color: #fff8d8;
  font-size: 9px;
  font-weight: 850;
  line-height: 1;
  position: relative;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .68);
  z-index: 1;
}

body.mobile-landscape .mobile-mission-focus:not([hidden]) {
  align-items: center;
  background: rgba(7, 12, 20, .62);
  border: 1px solid rgba(255, 214, 106, .22);
  border-radius: 999px;
  box-shadow:
    0 8px 18px rgba(0, 0, 0, .17),
    inset 0 1px 0 rgba(255, 255, 255, .08);
  color: #fff8dc;
  display: grid;
  gap: 5px;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 24px;
  padding: 4px 5px;
  pointer-events: none;
  position: absolute;
  right: max(10px, env(safe-area-inset-right));
  top: max(104px, calc(env(safe-area-inset-top) + 104px));
  width: clamp(132px, 27vw, 184px);
  z-index: 7;
}

body.mobile-landscape .mobile-mission-focus[hidden] {
  display: none !important;
}

.mobile-mission-track {
  align-items: center;
  background: rgba(3, 8, 15, .42);
  border: 1px solid rgba(255, 236, 164, .18);
  border-radius: 999px;
  display: flex;
  height: 16px;
  min-width: 0;
  overflow: hidden;
  position: relative;
}

.mobile-mission-track > span {
  background: linear-gradient(90deg, #c78622, #f2c94c 62%, #fff0a8);
  box-shadow: 0 0 10px rgba(242, 201, 76, .3);
  inset: 0 auto 0 0;
  position: absolute;
  transition: width .22s ease;
  width: 0%;
}

.mobile-mission-focus.is-ready .mobile-mission-track > span {
  background: linear-gradient(90deg, #1fa968, #6df0a0 62%, #d7ffdf);
  box-shadow: 0 0 12px rgba(72, 236, 136, .34);
}

.mobile-mission-track > strong {
  color: #fff9df;
  display: block;
  font-size: 8.5px;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1;
  min-width: 0;
  overflow: hidden;
  padding: 0 7px;
  position: relative;
  text-overflow: ellipsis;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .75);
  white-space: nowrap;
  z-index: 1;
}

.mobile-mission-focus > span {
  color: #ffe58a;
  font-size: 9px;
  font-weight: 950;
  line-height: 1;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .72);
  white-space: nowrap;
}

.mission-toast[hidden] {
  display: none !important;
}

.mission-toast {
  align-items: center;
  background:
    radial-gradient(circle at 20% 0, rgba(255, 242, 168, .22), transparent 52%),
    linear-gradient(180deg, rgba(37, 35, 20, .94), rgba(10, 17, 18, .9));
  border: 1px solid rgba(255, 214, 106, .78);
  border-radius: 12px;
  box-shadow:
    0 14px 28px rgba(0, 0, 0, .28),
    0 0 18px rgba(242, 201, 76, .18),
    inset 0 1px 0 rgba(255, 255, 255, .12);
  color: #fff6c7;
  display: grid;
  gap: 2px;
  justify-items: center;
  left: 50%;
  max-width: min(360px, calc(100vw - 32px));
  min-width: 220px;
  padding: 9px 14px 10px;
  pointer-events: none;
  position: fixed;
  text-align: center;
  top: max(18px, calc(env(safe-area-inset-top) + 12px));
  transform: translateX(-50%);
  z-index: 18;
}

.mission-toast span {
  color: #8df0a8;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .06em;
  line-height: 1;
  text-transform: uppercase;
}

.mission-toast strong {
  color: #fffbe2;
  font-size: 15px;
  font-weight: 950;
  line-height: 1.12;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .68);
  white-space: nowrap;
}

.mission-toast small {
  color: #ffe58a;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
}

body.mobile-landscape .mission-toast {
  border-radius: 10px;
  gap: 1px;
  max-width: min(250px, calc(100vw - 220px));
  min-width: 160px;
  padding: 6px 10px 7px;
  top: max(18px, calc(env(safe-area-inset-top) + 12px));
}

body.mobile-landscape .mission-toast span {
  font-size: 8px;
}

body.mobile-landscape .mission-toast strong {
  font-size: 11px;
}

body.mobile-landscape .mission-toast small {
  font-size: 9px;
}

body.mobile-landscape .mobile-joystick {
  bottom: max(16px, env(safe-area-inset-bottom));
  display: block;
  height: 136px;
  left: max(16px, env(safe-area-inset-left));
  pointer-events: auto;
  position: absolute;
  touch-action: none;
  width: 136px;
  z-index: 8;
}

body.mobile-landscape .mobile-joystick.mobile-joystick-floating {
  bottom: auto;
  right: auto;
}

body.mobile-landscape .mobile-spells {
  --mobile-primary-spell: clamp(98px, 16.2vmin, 126px);
  --mobile-secondary-spell: clamp(62px, 10.1vmin, 80px);
  bottom: env(safe-area-inset-bottom);
  display: block;
  height: calc(var(--mobile-primary-spell) + (var(--mobile-secondary-spell) * 1.85));
  pointer-events: none;
  position: absolute;
  right: env(safe-area-inset-right);
  touch-action: none;
  user-select: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  width: calc(var(--mobile-primary-spell) + (var(--mobile-secondary-spell) * 1.65));
  z-index: 9;
}

body.mobile-landscape .mobile-spell {
  align-content: center;
  border-radius: 999px;
  box-shadow:
    0 10px 18px rgba(0, 0, 0, .32),
    inset 0 1px 0 rgba(255, 255, 255, .16);
  display: grid;
  gap: 0;
  grid-template-columns: 1fr;
  height: var(--mobile-secondary-spell);
  justify-items: center;
  min-height: var(--mobile-secondary-spell);
  min-width: var(--mobile-secondary-spell);
  padding: 5px;
  pointer-events: auto;
  position: absolute;
  touch-action: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  width: var(--mobile-secondary-spell);
}

body.mobile-landscape .mobile-spell.rune-bolt {
  background:
    radial-gradient(circle at 50% 18%, rgba(255, 255, 255, .16), transparent 34%),
    linear-gradient(180deg, rgba(48, 57, 70, .98), rgba(12, 16, 24, .98));
  border-color: rgba(255, 214, 106, .54);
  border-radius: 38% 10px 0 10px;
  bottom: 0;
  box-shadow:
    0 16px 28px rgba(0, 0, 0, .42),
    0 0 0 2px rgba(255, 214, 106, .16),
    0 0 26px rgba(255, 214, 106, .18),
    inset 0 2px 0 rgba(255, 255, 255, .18);
  height: var(--mobile-primary-spell);
  min-height: var(--mobile-primary-spell);
  min-width: var(--mobile-primary-spell);
  padding: 8px;
  right: 0;
  width: var(--mobile-primary-spell);
  z-index: 2;
}

body.mobile-landscape .mobile-spell.rune-heal {
  bottom: calc(var(--mobile-primary-spell) * .16);
  right: calc(var(--mobile-primary-spell) + 10px);
}

body.mobile-landscape .mobile-spell.rune-magic-wall {
  bottom: calc(var(--mobile-primary-spell) * .70);
  right: calc(var(--mobile-primary-spell) * .76);
}

body.mobile-landscape .mobile-spell.rune-haste {
  bottom: calc(var(--mobile-primary-spell) * .88);
  right: calc(var(--mobile-primary-spell) * .18);
}

body.mobile-landscape .mobile-spell * {
  touch-action: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
}

body.mobile-landscape .mobile-spell.active {
  box-shadow:
    0 0 0 2px rgba(255, 214, 106, .42),
    0 0 24px rgba(255, 214, 106, .22),
    inset 0 1px 0 rgba(255, 255, 255, .16);
}

body.mobile-landscape .mobile-spell .rune-icon {
  border-radius: 12px;
  height: calc(var(--mobile-secondary-spell) * .63);
  width: calc(var(--mobile-secondary-spell) * .63);
}

body.mobile-landscape .mobile-spell.rune-bolt .rune-icon {
  border-radius: 18px 8px 4px 8px;
  height: calc(var(--mobile-primary-spell) * .54);
  width: calc(var(--mobile-primary-spell) * .54);
}

body.mobile-landscape .mobile-spell > span:not(.rune-hotkey):not(.rune-icon):not(.rune-cooldown),
body.mobile-landscape .mobile-spell small {
  display: none !important;
}

body.mobile-landscape .mobile-spell.rune-bolt > span:not(.rune-hotkey):not(.rune-icon):not(.rune-cooldown) {
  color: #fff2bc;
  display: block !important;
  font-size: 13px;
  line-height: 1;
  margin-top: 3px;
  text-align: center;
  text-shadow: 0 2px 0 rgba(0, 0, 0, .48), 0 0 12px rgba(255, 214, 106, .28);
}

body.mobile-landscape .mobile-spell.rune-bolt strong {
  font-size: 13px;
  padding: 0;
}

body.mobile-landscape .mobile-spell .rune-hotkey {
  display: none;
}

body.mobile-landscape .mobile-spell .rune-cooldown {
  bottom: 5px;
  font-size: 8px;
  left: 50%;
  min-width: 30px;
  padding: 3px 5px;
  right: auto;
  transform: translateX(-50%);
}

body.mobile-landscape .mobile-spell.rune-bolt .rune-cooldown {
  bottom: 9px;
  font-size: 10px;
  min-width: 40px;
}

body.mobile-landscape .mobile-spell.cooldown::after {
  border-radius: inherit;
}

body.mobile-landscape .mobile-spell.can-buy::before {
  height: 20px;
  left: 5px;
  top: 5px;
  width: 20px;
}

body.mobile-landscape .mobile-halo-button {
  align-items: center;
  background:
    radial-gradient(circle at 50% 22%, rgba(255, 255, 255, .18), transparent 38%),
    linear-gradient(180deg, rgba(38, 32, 20, .96), rgba(12, 10, 8, .98));
  border: 1px solid rgba(255, 214, 106, .46);
  border-radius: 999px;
  bottom: max(12px, env(safe-area-inset-bottom));
  box-shadow:
    0 10px 18px rgba(0, 0, 0, .32),
    0 0 18px rgba(255, 214, 106, .16),
    inset 0 1px 0 rgba(255, 255, 255, .18);
  display: flex;
  height: clamp(58px, 9.8vmin, 72px);
  justify-content: center;
  left: 50%;
  padding: 0;
  pointer-events: auto;
  position: absolute;
  touch-action: none;
  transform: translateX(-50%);
  width: clamp(58px, 9.8vmin, 72px);
  z-index: 9;
}

body.mobile-landscape .mobile-halo-button::before {
  content: "";
  inset: -12px;
  position: absolute;
}

body.mobile-landscape .mobile-halo-button[hidden] {
  display: none !important;
}

body.mobile-landscape .mobile-halo-button:disabled {
  opacity: .64;
}

body.mobile-landscape .mobile-halo-button.can-buy {
  animation: runeBuyPulse 1.25s ease-in-out infinite;
  border-color: rgba(255, 239, 174, .86);
  box-shadow:
    0 12px 22px rgba(0, 0, 0, .36),
    0 0 26px rgba(255, 214, 106, .36),
    inset 0 1px 0 rgba(255, 255, 255, .22);
}

body.mobile-landscape .mobile-halo-button .halo-icon {
  height: 40px;
  pointer-events: none;
  width: 40px;
}

body.mobile-landscape .mobile-halo-button .halo-plus {
  align-items: center;
  background: radial-gradient(circle, #fff4bf 0 24%, #f1bd3b 25% 68%, #8a5616 69% 100%);
  border: 1px solid rgba(255, 247, 207, .9);
  border-radius: 50%;
  color: #251708;
  display: none;
  font-size: 13px;
  font-weight: 1000;
  height: 18px;
  justify-content: center;
  line-height: 1;
  pointer-events: none;
  position: absolute;
  right: -2px;
  top: -2px;
  width: 18px;
}

body.mobile-landscape .mobile-halo-button.can-buy .halo-plus {
  display: flex;
}

body.mobile-landscape .mobile-halo-button strong {
  align-items: center;
  background: rgba(5, 9, 15, .78);
  border: 1px solid rgba(255, 214, 106, .32);
  border-radius: 999px;
  bottom: -4px;
  color: #ffe8a4;
  display: inline-flex;
  font-size: 10px;
  font-weight: 950;
  justify-content: center;
  min-width: 22px;
  padding: 2px 5px;
  pointer-events: none;
  position: absolute;
  right: -5px;
}

@media (max-height: 430px) {
  body.mobile-landscape .mobile-spells {
    --mobile-primary-spell: clamp(90px, 15.2vmin, 112px);
    --mobile-secondary-spell: clamp(56px, 9.4vmin, 70px);
    bottom: env(safe-area-inset-bottom);
    right: env(safe-area-inset-right);
  }
}

@media (max-height: 390px) {
  body.mobile-landscape .mobile-game-hud {
    gap: 2px;
    max-width: 138px;
    padding: 4px 5px;
    width: min(138px, calc(100vw - 20px));
  }

  body.mobile-landscape .mobile-game-hud.mobile-game-hud-side {
    gap: 3px;
    padding: 4px;
  }

  body.mobile-landscape .mobile-mission-focus:not([hidden]) {
    min-height: 22px;
    padding: 3px 4px;
    top: max(90px, calc(env(safe-area-inset-top) + 90px));
    width: clamp(120px, 25vw, 156px);
  }

  body.mobile-landscape .mobile-mission-track {
    height: 14px;
  }

  body.mobile-landscape .mobile-mission-track > strong {
    font-size: 7.5px;
    padding: 0 6px;
  }

  body.mobile-landscape .mobile-mission-focus > span {
    font-size: 8px;
  }

  body.mobile-landscape .mobile-game-hud-side .mobile-hud-row span,
  body.mobile-landscape .mobile-game-hud-side .mobile-base-row span,
  body.mobile-landscape .mobile-game-hud-side .mobile-level-row > span {
    font-size: 8px;
    padding: 3px 4px;
  }

  body.mobile-landscape .mobile-vital-bars {
    gap: 2px;
    min-width: 94px;
  }

  body.mobile-landscape .mobile-vital-bar,
  body.mobile-landscape .mobile-level-bar {
    height: 12px;
  }

  body.mobile-landscape .mobile-vital-bar > strong,
  body.mobile-landscape .mobile-level-bar > strong {
    font-size: 8px;
  }
}

.mobile-joystick-base {
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .09) 0 32%, rgba(255, 255, 255, .04) 33% 58%, rgba(6, 10, 18, .32) 59% 100%);
  border: 2px solid rgba(211, 225, 245, .26);
  border-radius: 50%;
  box-shadow:
    0 16px 36px rgba(0, 0, 0, .22),
    inset 0 1px 0 rgba(255, 255, 255, .16),
    inset 0 -8px 20px rgba(0, 0, 0, .2);
  height: 100%;
  position: relative;
  width: 100%;
}

.mobile-joystick-knob {
  background:
    radial-gradient(circle at 38% 28%, rgba(255, 255, 255, .38) 0 13%, transparent 14%),
    linear-gradient(180deg, rgba(90, 151, 255, .92), rgba(34, 75, 152, .94));
  border: 2px solid rgba(255, 224, 153, .44);
  border-radius: 50%;
  box-shadow:
    0 10px 24px rgba(0, 0, 0, .28),
    inset 0 1px 0 rgba(255, 255, 255, .28),
    inset 0 -4px 0 rgba(0, 0, 0, .2);
  height: 56px;
  left: 50%;
  margin-left: -28px;
  margin-top: -28px;
  position: absolute;
  top: 50%;
  transform: translate3d(0, 0, 0);
  transition: transform .08s linear;
  width: 56px;
}

body.mobile-landscape .round-overlay {
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding:
    max(8px, env(safe-area-inset-top))
    max(10px, env(safe-area-inset-right))
    max(8px, env(safe-area-inset-bottom))
    max(10px, env(safe-area-inset-left));
}

body.mobile-landscape .round-dialog {
  border-radius: 14px;
  max-height: calc(100vh - 16px);
}

body.mobile-landscape .game-menu-dialog {
  gap: 8px;
  max-height: calc(100dvh - 16px);
  max-width: min(430px, calc(100vw - 20px));
  overflow: hidden;
  padding: 12px;
  width: min(430px, calc(100vw - 20px));
}

body.mobile-landscape .game-menu-dialog .eyebrow {
  font-size: 10px;
}

body.mobile-landscape .game-menu-dialog h2 {
  font-size: 22px;
}

body.mobile-landscape .game-menu-actions {
  gap: 7px;
}

body.mobile-landscape .game-menu-actions button {
  min-height: 34px;
  padding: 8px 12px;
}

body.mobile-landscape .game-menu-hint {
  display: none;
}

body.mobile-landscape .start-dialog {
  gap: 6px;
  max-height: calc(100vh - 16px);
  max-width: min(760px, calc(100vw - 20px));
  overflow: hidden;
  padding: 10px 14px;
  width: min(760px, calc(100vw - 20px));
}

body.mobile-landscape.is-lobby .start-overlay {
  overflow: hidden;
  padding: 6px;
}

body.mobile-landscape .lobby-dialog {
  grid-template-rows: auto auto minmax(0, 1fr);
  max-height: calc(100dvh - 12px);
  max-width: calc(100vw - 12px);
  padding: 7px 10px;
  width: calc(100vw - 12px);
}

body.mobile-landscape .lobby-main {
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) minmax(160px, 210px);
}

body.mobile-landscape .lobby-hero {
  gap: 2px;
}

body.mobile-landscape .lobby-hero h1 {
  font-size: clamp(30px, 9vh, 42px);
}

body.mobile-landscape .lobby-play-button {
  border-radius: 11px;
  font-size: clamp(22px, 7vh, 34px);
  min-height: 48px;
}

body.mobile-landscape .lobby-grid {
  gap: 7px;
  grid-template-columns: minmax(180px, .72fr) minmax(0, 1fr);
}

body.mobile-landscape .lobby-profile-card {
  gap: 5px;
  max-height: 150px;
  overflow: hidden;
  padding: 7px;
}

body.mobile-landscape .lobby-card-head strong {
  font-size: 16px;
}

body.mobile-landscape .lobby-card-head span,
body.mobile-landscape .lobby-feature-card span {
  font-size: 9px;
}

body.mobile-landscape .lobby-level-row {
  font-size: 10px;
}

body.mobile-landscape .lobby-level-row strong,
body.mobile-landscape .lobby-stat-grid strong {
  font-size: 15px;
}

body.mobile-landscape .lobby-xp-bar {
  height: 7px;
}

body.mobile-landscape .lobby-stat-grid {
  gap: 4px;
}

body.mobile-landscape .lobby-stat-grid span {
  padding: 4px 3px;
}

body.mobile-landscape .lobby-stat-grid small {
  font-size: 7px;
}

body.mobile-landscape .lobby-stars-daily {
  font-size: 8px;
  line-height: 1.15;
  margin-top: 0;
  overflow: hidden;
  padding-top: 4px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.mobile-landscape .lobby-feature-grid,
body.mobile-landscape .lobby-controls {
  display: none;
}

body.mobile-landscape .lobby-grid .daily-missions {
  max-height: 116px;
  overflow: hidden;
}

body.mobile-landscape .team-select-dialog {
  max-width: min(620px, calc(100vw - 20px));
  padding: 12px;
  width: min(620px, calc(100vw - 20px));
}

body.mobile-landscape .start-status-row {
  gap: 6px;
}

body.mobile-landscape .server-pill,
body.mobile-landscape .start-ready {
  font-size: 10px;
  padding: 3px 7px;
}

body.mobile-landscape .start-hero {
  gap: 3px;
  padding: 0;
}

body.mobile-landscape .start-hero .eyebrow {
  font-size: 10px;
  letter-spacing: .1em;
}

body.mobile-landscape .start-hero h1 {
  font-size: clamp(30px, 8.6vh, 42px);
  line-height: .86;
}

body.mobile-landscape .start-hero p,
body.mobile-landscape .team-auto {
  font-size: 11px;
  line-height: 1.15;
}

body.mobile-landscape .team-banners {
  gap: 6px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.mobile-landscape .team-banner {
  border-radius: 9px;
  min-height: 0;
  padding: 7px 9px;
}

body.mobile-landscape .team-banner span {
  font-size: 14px;
}

body.mobile-landscape .team-banner strong {
  font-size: 10px;
}

body.mobile-landscape .daily-missions {
  gap: 5px;
  padding: 6px 7px;
}

body.mobile-landscape .daily-missions-head strong,
body.mobile-landscape .daily-missions-head span {
  font-size: 10px;
}

body.mobile-landscape .daily-mission-list {
  gap: 4px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.mobile-landscape .daily-mission-card {
  gap: 5px;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 0;
  padding: 5px 6px;
}

body.mobile-landscape .daily-mission-title {
  font-size: 10px;
}

body.mobile-landscape .daily-mission-progress {
  gap: 4px;
}

body.mobile-landscape .daily-mission-bar {
  height: 5px;
}

body.mobile-landscape .daily-mission-progress small,
body.mobile-landscape .daily-mission-empty {
  font-size: 9px;
}

body.mobile-landscape .daily-mission-claim {
  font-size: 9px;
  padding: 5px 7px;
}

body.mobile-portrait.is-lobby .start-overlay,
body.mobile-landscape.is-lobby .start-overlay {
  overflow: auto;
  padding: 0;
}

body.mobile-portrait.is-lobby .lobby-dialog {
  grid-template-areas:
    "top"
    "title"
    "play"
    "profile"
    "rewards"
    "ranking"
    "friends";
  grid-template-columns: 1fr;
  grid-template-rows: auto;
  height: auto;
  min-height: 100dvh;
  overflow: visible;
  padding: 14px;
  width: 100%;
}

body.mobile-portrait.is-lobby .lobby-hero-art {
  border-radius: 15px;
  grid-column: 1;
  grid-row: 2 / 4;
  min-height: 280px;
}

body.mobile-portrait.is-lobby .lobby-title {
  align-self: end;
  padding-top: 18px;
}

body.mobile-portrait.is-lobby .lobby-play-stage {
  align-self: start;
  min-height: 176px;
}

body.mobile-landscape .lobby-dialog {
  grid-template-areas:
    "top top"
    "title play"
    "profile rewards"
    "ranking friends";
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: auto auto auto auto;
  height: auto;
  max-height: none;
  max-width: none;
  min-height: 100dvh;
  overflow: visible;
  padding: 8px;
  width: 100%;
}

body.mobile-landscape .lobby-hero-art {
  border-radius: 12px;
  grid-column: 1 / -1;
  grid-row: 2;
  min-height: 150px;
}

body.mobile-landscape .lobby-title {
  align-self: center;
  padding-top: 0;
}

body.mobile-landscape .lobby-title h1 {
  font-size: clamp(32px, 12vh, 48px);
}

body.mobile-landscape .lobby-play-stage {
  align-self: center;
  gap: 6px;
}

body.mobile-landscape .lobby-rank {
  border-radius: 12px;
  gap: 6px;
  padding: 5px 8px;
}

body.mobile-landscape .lobby-rank-copy small,
body.mobile-landscape .lobby-profile-rank small {
  font-size: 7px;
}

body.mobile-landscape .lobby-rank-copy strong,
body.mobile-landscape .lobby-profile-rank strong {
  font-size: 10px;
}

body.mobile-landscape .rank-badge--hero {
  height: 48px;
  width: 44px;
}

body.mobile-landscape .rank-badge--wood.rank-badge--hero {
  height: 36px;
  width: 56px;
}

body.mobile-landscape .lobby-hero-stars strong {
  font-size: 20px;
}

body.mobile-landscape .lobby-hero-stars .lobby-star-shape {
  height: 26px;
  width: 26px;
}

body.mobile-landscape .lobby-play-button {
  font-size: clamp(25px, 9vh, 38px);
  min-height: 54px;
  min-width: min(260px, 82vw);
  padding: 8px 18px;
}

body.mobile-landscape .lobby-profile-card,
body.mobile-landscape .daily-missions,
body.mobile-landscape .lobby-ranking-card,
body.mobile-landscape .lobby-friends-card {
  max-height: none;
  min-height: 132px;
  overflow: hidden;
  padding: 8px;
}

body.mobile-landscape .lobby-profile-card {
  gap: 4px;
  min-height: 168px;
}

body.mobile-landscape .daily-missions {
  min-height: 246px;
}

body.mobile-landscape .lobby-character-row {
  gap: 8px;
  grid-template-columns: 58px minmax(0, 1fr);
}

body.mobile-landscape .lobby-avatar-frame,
body.mobile-landscape .lobby-avatar-sprite {
  height: 58px;
  width: 58px;
}

body.mobile-landscape .lobby-profile-rank {
  border-radius: 8px;
  gap: 5px;
  padding: 3px 5px;
}

body.mobile-landscape .rank-badge--profile {
  height: 24px;
  width: 22px;
}

body.mobile-landscape .rank-badge--wood.rank-badge--profile {
  height: 18px;
  width: 26px;
}

body.mobile-landscape .lobby-stars-daily {
  border-top: 0;
  font-size: 8px;
  padding-top: 0;
}

body.mobile-landscape .lobby-profile-card .lobby-stat-grid span {
  padding: 3px 2px;
}

body.mobile-landscape .daily-mission-list,
body.mobile-landscape .lobby-ranking-list,
body.mobile-landscape .lobby-friends-list {
  max-height: 116px;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

body.mobile-landscape .lobby-person-row {
  gap: 6px;
  grid-template-columns: 30px minmax(0, 1fr) 20px auto;
  padding: 6px;
}

body.mobile-landscape .lobby-mini-avatar {
  height: 30px;
  width: 30px;
}

body.mobile-landscape .rank-badge--mini {
  height: 21px;
  width: 19px;
}

body.mobile-landscape .rank-badge--wood.rank-badge--mini {
  height: 16px;
  width: 22px;
}

body.mobile-landscape .daily-mission-list {
  gap: 5px;
  grid-auto-rows: minmax(46px, auto);
  grid-template-columns: 1fr;
  max-height: 128px;
}

body.mobile-landscape .daily-mission-claim {
  height: 38px;
  padding: 0;
  width: 38px;
}

body.mobile-landscape .daily-mission-claim-icon {
  transform: scale(.72);
}

body.mobile-landscape .daily-mission-card {
  gap: 6px;
  grid-template-columns: minmax(0, 1fr) 38px;
  min-height: 46px;
  padding: 5px 6px;
}

body.mobile-landscape .daily-mission-title-row {
  gap: 6px;
}

body.mobile-landscape .daily-mission-type-icon {
  border-radius: 7px;
  height: 24px;
  width: 24px;
}

body.mobile-landscape .mission-icon-minions,
body.mobile-landscape .mission-icon-damage,
body.mobile-landscape .mission-icon-enemy,
body.mobile-landscape .mission-icon-heal {
  background-size: 96px 48px;
}

body.mobile-landscape .mission-icon-tower {
  background-size: 72px 48px;
}

body.mobile-landscape .mission-icon-tower {
  background-position: 0 -24px;
}

body.mobile-landscape .mission-icon-damage {
  background-position: -72px -24px;
}

body.mobile-landscape .mission-icon-enemy {
  background-position: -48px -24px;
}

body.mobile-landscape .mission-icon-heal::after {
  font-size: 12px;
  height: 13px;
  width: 13px;
}

body.mobile-landscape .daily-star-panel {
  gap: 3px;
  padding-top: 5px;
}

body.mobile-landscape .daily-star-head {
  font-size: 9px;
}

body.mobile-landscape .daily-star-head span {
  font-size: 8px;
}

body.mobile-landscape .daily-star-bar {
  height: 12px;
  margin-inline: 7px;
}

body.mobile-landscape .daily-star-milestone {
  border-radius: 999px;
  font-size: 8px;
  gap: 2px;
  height: 18px;
  min-height: 0;
  padding: 0;
  width: 18px;
}

body.mobile-landscape .daily-star-milestone b {
  font-size: 11px;
}

body.mobile-landscape .daily-star-milestone small {
  display: none;
}

body.mobile-landscape .daily-star-claim {
  font-size: 9px;
  min-height: 24px;
  padding: 3px 7px;
}

body.mobile-landscape .daily-star-claim .lobby-star-shape {
  height: 14px;
  width: 14px;
}

body.mobile-landscape .team-auto {
  margin: -2px 0 0;
}

body.mobile-landscape .team-select-overlay {
  padding: 6px;
}

body.mobile-landscape .team-select-dialog {
  gap: 8px;
  max-height: calc(100dvh - 12px);
  max-width: calc(100vw - 12px);
  overflow: hidden;
  padding: 10px;
  width: calc(100vw - 12px);
}

body.mobile-landscape .team-select-header {
  gap: 3px;
  padding: 0 34px;
}

body.mobile-landscape .team-select-dialog h2 {
  font-size: clamp(24px, 8vh, 38px);
}

body.mobile-landscape .team-select-dialog .team-auto {
  font-size: 10px;
  line-height: 1.15;
}

body.mobile-landscape .team-banners {
  gap: 7px;
  grid-template-columns: minmax(0, 1fr) 38px minmax(0, 1fr);
}

body.mobile-landscape .team-versus {
  font-size: 12px;
  height: 38px;
  width: 38px;
}

body.mobile-landscape .team-banner {
  gap: 5px;
  grid-template-rows: auto minmax(72px, 1fr) auto auto auto;
  min-height: 232px;
  padding: 9px;
}

body.mobile-landscape .team-banner-top {
  gap: 6px;
}

body.mobile-landscape .team-banner-name {
  font-size: clamp(13px, 3.4vw, 18px);
}

body.mobile-landscape .team-slot-badge {
  font-size: 9px;
  padding: 5px 7px;
}

body.mobile-landscape .team-banner-art {
  min-height: 86px;
}

body.mobile-landscape .team-banner-mage {
  background-size: 360px 180px;
  height: 90px;
  width: 90px;
}

body.mobile-landscape .team-banner-south .team-banner-mage {
  background-position: 0 -90px;
}

body.mobile-landscape .team-banner-minions {
  background-size: 232px 116px;
  height: 58px;
  width: 58px;
}

body.mobile-landscape .team-banner-north .team-banner-minions {
  left: 8px;
}

body.mobile-landscape .team-banner-south .team-banner-minions {
  background-position: 0 -58px;
  right: 8px;
}

body.mobile-landscape .team-banner-standard {
  height: 48px;
  top: 5px;
  width: 28px;
}

body.mobile-landscape .team-banner-standard::before {
  height: 60px;
}

body.mobile-landscape .team-banner-north .team-banner-standard {
  right: 12px;
}

body.mobile-landscape .team-banner-south .team-banner-standard {
  left: 12px;
}

body.mobile-landscape .team-banner strong {
  font-size: 12px;
}

body.mobile-landscape .team-banner small {
  font-size: 9px;
  min-height: 12px;
}

body.mobile-landscape .team-capacity-bar {
  height: 6px;
}

body.mobile-landscape .team-recommend {
  display: none;
}

body.mobile-landscape .team-join-label {
  border-radius: 7px;
  font-size: 11px;
  min-height: 30px;
}

body.mobile-landscape .start-action {
  border-radius: 10px;
  font-size: 13px;
  min-height: 34px;
  padding: 8px 14px;
}

body.mobile-landscape .start-feedback {
  font-size: 10px;
  min-height: 0;
}

body.mobile-portrait.is-lobby .mobile-orientation {
  display: grid;
}

body.mobile-portrait.is-lobby .lobby-topbar,
body.mobile-portrait.is-lobby #skinFragmentsStatus,
body.mobile-portrait.is-lobby .lobby-friends-card .lobby-card-head strong,
body.mobile-portrait.is-lobby .lobby-friends-list .lobby-empty-state {
  display: none;
}

body.mobile-landscape.is-lobby .start-overlay {
  overflow: hidden;
}

body.mobile-landscape.is-lobby .lobby-dialog {
  gap: 6px;
  grid-template-areas:
    "ranking title rewards"
    "ranking play rewards"
    "profile play friends";
  grid-template-columns: minmax(178px, 26%) minmax(280px, 48%) minmax(178px, 26%);
  grid-template-rows: auto minmax(0, 1fr) minmax(104px, .52fr);
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
  padding: 6px;
  width: 100vw;
}

body.mobile-landscape.is-lobby .lobby-topbar {
  display: none;
}

body.mobile-landscape.is-lobby .server-pill,
body.mobile-landscape.is-lobby .start-ready,
body.mobile-landscape.is-lobby .lobby-settings-button {
  font-size: 9px;
  min-height: 0;
  padding: 4px 8px;
}

body.mobile-landscape.is-lobby .lobby-hero-art {
  border-radius: 10px;
  grid-column: 2;
  grid-row: 1 / 4;
  min-height: 0;
}

body.mobile-landscape.is-lobby .lobby-title {
  align-self: start;
  gap: 2px;
  justify-self: stretch;
  padding-inline: 68px;
  padding-top: 3px;
}

body.mobile-landscape.is-lobby .lobby-title .eyebrow {
  font-size: 8px;
  letter-spacing: .12em;
  padding: 3px 8px;
}

body.mobile-landscape.is-lobby .lobby-title h1 {
  font-size: clamp(25px, 8.5vh, 42px);
  line-height: .86;
}

body.mobile-landscape.is-lobby .lobby-play-stage {
  align-self: center;
  gap: 5px;
  justify-self: stretch;
  padding: 4px 12px;
}

body.mobile-landscape.is-lobby .lobby-settings-button-title {
  border-radius: 999px;
  font-size: 9px;
  min-height: 24px;
  padding: 4px 8px;
  right: 8px;
  top: 4px;
}

body.mobile-landscape.is-lobby .lobby-rank {
  border-radius: 15px;
  gap: 3px;
  padding: 6px 12px 5px;
}

body.mobile-landscape.is-lobby .lobby-rank-copy small,
body.mobile-landscape.is-lobby .lobby-profile-rank small {
  font-size: 7px;
}

body.mobile-landscape.is-lobby .lobby-rank-copy strong {
  font-size: clamp(16px, 5.2vh, 23px);
}

body.mobile-landscape.is-lobby .rank-badge--hero {
  height: 53px;
  width: 48px;
}

body.mobile-landscape.is-lobby .rank-badge--wood.rank-badge--hero {
  height: 38px;
  width: 60px;
}

body.mobile-landscape.is-lobby .lobby-hero-stars {
  padding: 5px 11px;
}

body.mobile-landscape.is-lobby .lobby-hero-stars strong {
  font-size: clamp(20px, 7.2vh, 30px);
}

body.mobile-landscape.is-lobby .lobby-hero-stars .lobby-star-shape {
  height: 26px;
  width: 26px;
}

body.mobile-landscape.is-lobby .lobby-play-button {
  border-radius: 13px;
  font-size: clamp(26px, 8.4vh, 42px);
  min-height: clamp(50px, 13vh, 66px);
  min-width: min(310px, 86%);
  padding: 6px 18px;
}

body.mobile-landscape.is-lobby .lobby-ranking-card,
body.mobile-landscape.is-lobby .lobby-profile-card,
body.mobile-landscape.is-lobby .daily-missions,
body.mobile-landscape.is-lobby .lobby-friends-card {
  gap: 5px;
  max-height: none;
  min-height: 0;
  overflow: hidden;
  padding: 6px;
}

body.mobile-landscape.is-lobby .lobby-ranking-card {
  grid-area: ranking;
}

body.mobile-landscape.is-lobby .lobby-profile-card {
  grid-area: profile;
}

body.mobile-landscape.is-lobby .daily-missions {
  grid-area: rewards;
}

body.mobile-landscape.is-lobby .lobby-friends-card {
  grid-area: friends;
}

body.mobile-landscape.is-lobby .lobby-card-head {
  gap: 4px;
}

body.mobile-landscape.is-lobby .daily-missions {
  grid-template-rows: auto minmax(0, 1fr) auto;
}

body.mobile-landscape.is-lobby .daily-missions-head {
  gap: 6px;
}

body.mobile-landscape.is-lobby #skinFragmentsStatus {
  display: none;
}

body.mobile-landscape.is-lobby .lobby-settings-button-mobile {
  align-items: center;
  display: inline-flex;
  font-size: 9px;
  justify-self: end;
  margin-left: auto;
  min-height: 24px;
  padding: 4px 8px;
}

body.mobile-landscape.is-lobby .lobby-card-head span,
body.mobile-landscape.is-lobby .daily-missions-head strong,
body.mobile-landscape.is-lobby .daily-missions-head span {
  font-size: 9px;
}

body.mobile-landscape.is-lobby .lobby-card-head strong {
  font-size: 15px;
  line-height: 1.05;
}

body.mobile-landscape.is-lobby .lobby-ranking-list,
body.mobile-landscape.is-lobby .lobby-friends-list {
  gap: 5px;
  max-height: none;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
}

body.mobile-landscape.is-lobby .lobby-ranking-list,
body.mobile-landscape.is-lobby .daily-mission-list {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding-right: 0;
  scrollbar-gutter: auto;
  scrollbar-width: none;
  touch-action: pan-y;
}

body.mobile-landscape.is-lobby .lobby-ranking-list::-webkit-scrollbar,
body.mobile-landscape.is-lobby .daily-mission-list::-webkit-scrollbar {
  display: none;
  height: 0;
  width: 0;
}

body.mobile-landscape.is-lobby .lobby-ranking-list *,
body.mobile-landscape.is-lobby .daily-mission-list * {
  touch-action: pan-y;
}

body.mobile-landscape.is-lobby .lobby-friends-card .lobby-card-head strong,
body.mobile-landscape.is-lobby .lobby-friends-list .lobby-empty-state {
  display: none;
}

body.mobile-landscape.is-lobby .lobby-person-row {
  border-radius: 8px;
  gap: 5px;
  grid-template-columns: 28px minmax(0, 1fr) 19px auto;
  padding: 5px;
}

body.mobile-landscape.is-lobby .lobby-mini-avatar {
  border-radius: 7px;
  height: 28px;
  width: 28px;
}

body.mobile-landscape.is-lobby .lobby-person-copy strong {
  font-size: 10px;
}

body.mobile-landscape.is-lobby .lobby-person-copy small {
  font-size: 8px;
}

body.mobile-landscape.is-lobby .rank-badge--mini {
  height: 19px;
  width: 17px;
}

body.mobile-landscape.is-lobby .rank-badge--wood.rank-badge--mini {
  height: 14px;
  width: 21px;
}

body.mobile-landscape.is-lobby .lobby-person-stars {
  gap: 4px;
}

body.mobile-landscape.is-lobby .lobby-person-stars strong {
  font-size: 11px;
}

body.mobile-landscape.is-lobby .lobby-person-stars .lobby-star-shape {
  height: 14px;
  width: 14px;
}

body.mobile-landscape.is-lobby .lobby-character-row {
  gap: 6px;
  grid-template-columns: minmax(0, 1fr);
}

body.mobile-landscape.is-lobby .lobby-avatar-frame,
body.mobile-landscape.is-lobby .lobby-avatar-sprite {
  display: none;
}

body.mobile-landscape.is-lobby .lobby-character-meta {
  gap: 3px;
}

body.mobile-landscape.is-lobby .lobby-level-row {
  font-size: 9px;
}

body.mobile-landscape.is-lobby .lobby-xp-bar {
  display: none;
}

body.mobile-landscape.is-lobby .lobby-profile-rank {
  display: none;
}

body.mobile-landscape.is-lobby .lobby-stars-daily {
  display: none;
}

body.mobile-landscape.is-lobby .lobby-stat-grid {
  display: none;
  gap: 4px;
  grid-template-columns: minmax(0, 1fr);
}

body.mobile-landscape.is-lobby .lobby-stat-grid span {
  border-radius: 7px;
  padding: 4px 2px;
}

body.mobile-landscape.is-lobby .lobby-stars-stat,
body.mobile-landscape.is-lobby .lobby-gold-stat,
body.mobile-landscape.is-lobby .lobby-halos-stat {
  display: none;
}

body.mobile-landscape.is-lobby .lobby-stat-grid strong {
  font-size: 14px;
}

body.mobile-landscape.is-lobby .lobby-stat-grid small {
  font-size: 7px;
}

body.mobile-landscape.is-lobby .daily-mission-list {
  gap: 5px;
  grid-auto-rows: minmax(54px, auto);
  grid-template-columns: 1fr;
  max-height: none;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 0;
  scrollbar-gutter: auto;
}

body.mobile-landscape.is-lobby .daily-mission-card {
  border-radius: 8px;
  gap: 5px;
  grid-template-columns: minmax(0, 1fr) 36px;
  min-height: 54px;
  padding: 5px;
}

body.mobile-landscape.is-lobby .daily-mission-title-row {
  gap: 5px;
}

body.mobile-landscape.is-lobby .daily-mission-type-icon {
  border-radius: 6px;
  height: 22px;
  width: 22px;
}

body.mobile-landscape.is-lobby .mission-icon-minions,
body.mobile-landscape.is-lobby .mission-icon-damage,
body.mobile-landscape.is-lobby .mission-icon-enemy,
body.mobile-landscape.is-lobby .mission-icon-heal {
  background-size: 88px 44px;
}

body.mobile-landscape.is-lobby .mission-icon-tower {
  background-size: 66px 44px;
}

body.mobile-landscape.is-lobby .mission-icon-tower {
  background-position: 0 -22px;
}

body.mobile-landscape.is-lobby .mission-icon-damage {
  background-position: -66px -22px;
}

body.mobile-landscape.is-lobby .mission-icon-enemy {
  background-position: -44px -22px;
}

body.mobile-landscape.is-lobby .daily-mission-title {
  font-size: 10px;
}

body.mobile-landscape.is-lobby .daily-mission-progress {
  gap: 4px;
}

body.mobile-landscape.is-lobby .daily-mission-bar {
  height: 5px;
}

body.mobile-landscape.is-lobby .daily-mission-progress small {
  font-size: 8px;
  min-width: 42px;
}

body.mobile-landscape.is-lobby .daily-mission-tiers {
  gap: 2px;
}

body.mobile-landscape.is-lobby .daily-mission-tier {
  font-size: 6px;
  height: 9px;
  min-width: 12px;
  padding: 0 2px;
}

body.mobile-landscape.is-lobby .daily-mission-claim {
  border-radius: 11px;
  height: 36px;
  min-width: 36px;
  width: 36px;
}

body.mobile-landscape.is-lobby .daily-mission-claim-icon {
  transform: scale(.68);
}

body.mobile-landscape.is-lobby .daily-star-panel {
  gap: 3px;
  padding-top: 5px;
}

body.mobile-landscape.is-lobby .daily-star-head {
  font-size: 9px;
}

body.mobile-landscape.is-lobby .daily-star-head span {
  font-size: 8px;
}

body.mobile-landscape.is-lobby .daily-star-bar {
  height: 12px;
  margin-inline: 7px;
}

body.mobile-landscape.is-lobby .daily-star-milestone {
  height: 18px;
  min-height: 0;
  width: 18px;
}

body.mobile-landscape.is-lobby .daily-star-claim {
  border-radius: 9px;
  font-size: 9px;
  min-height: 24px;
  padding: 3px 6px;
}

body.mobile-landscape .start-rules,
body.mobile-landscape .start-controls {
  display: none;
}

body.mobile-landscape .death-dialog {
  gap: 7px;
  max-height: calc(100vh - 16px);
  max-width: min(760px, calc(100vw - 20px));
  overflow: hidden;
  padding: 10px 14px;
  width: min(760px, calc(100vw - 20px));
}

body.mobile-landscape .death-dialog .eyebrow {
  font-size: 10px;
  letter-spacing: .1em;
}

body.mobile-landscape .death-dialog h2 {
  font-size: clamp(30px, 11vh, 46px);
  line-height: .86;
}

body.mobile-landscape .death-dialog p {
  font-size: 12px;
  line-height: 1.1;
}

body.mobile-landscape #deathKillerText {
  border-radius: 10px;
  font-size: 12px;
  gap: 7px;
  max-width: min(100%, 440px);
  padding: 5px 10px 5px 7px;
}

body.mobile-landscape #deathKillerText::before {
  height: 18px;
  width: 18px;
}

body.mobile-landscape .death-stats {
  gap: 6px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.mobile-landscape .death-stat {
  border-radius: 8px;
  gap: 6px;
  grid-template-columns: 26px 1fr;
  min-height: 42px;
  padding: 6px;
}

body.mobile-landscape .death-stat-icon {
  border-radius: 6px;
  font-size: 8px;
  height: 26px;
  width: 26px;
}

body.mobile-landscape .death-stat-body {
  gap: 1px;
}

body.mobile-landscape .death-stat-body small {
  font-size: 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.mobile-landscape .death-stat-body strong {
  font-size: 15px;
}

body.mobile-landscape .death-action {
  border-radius: 10px;
  font-size: 13px;
  min-height: 34px;
  padding: 8px 14px;
}

body.mobile-landscape .match-result-dialog {
  gap: 7px;
  max-height: calc(100vh - 16px);
  max-width: min(900px, calc(100vw - 20px));
  padding: 10px;
  width: min(900px, calc(100vw - 20px));
}

body.mobile-landscape .match-result-title {
  font-size: clamp(32px, 11vh, 52px);
}

body.mobile-landscape .match-result-dialog > .eyebrow,
body.mobile-landscape .match-result-dialog > p {
  font-size: 10px;
  line-height: 1.15;
}

body.mobile-landscape .match-summary,
body.mobile-landscape .summary-hero,
body.mobile-landscape .summary-details,
body.mobile-landscape .summary-team {
  gap: 6px;
}

body.mobile-landscape .summary-hero,
body.mobile-landscape .summary-team {
  padding: 8px;
}

body.mobile-landscape .summary-hero-header strong {
  font-size: 14px;
}

body.mobile-landscape .summary-hero-header span {
  font-size: 9px;
}

body.mobile-landscape .summary-stat-grid {
  gap: 6px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.mobile-landscape .summary-stat-card {
  gap: 6px;
  grid-template-columns: 26px 1fr;
  min-height: 42px;
  padding: 6px;
}

body.mobile-landscape .summary-stat-icon {
  font-size: 8px;
  height: 26px;
  width: 26px;
}

body.mobile-landscape .summary-stat-body small {
  font-size: 8px;
}

body.mobile-landscape .summary-stat-body strong {
  font-size: 15px;
}

body.mobile-landscape .summary-details-toggle,
body.mobile-landscape .match-actions button {
  font-size: 12px;
  min-height: 32px;
  padding: 7px 10px;
}

body.mobile-landscape .match-actions {
  gap: 6px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.side-panel {
  align-content: start;
  background:
    linear-gradient(180deg, rgba(34, 47, 66, .94), rgba(12, 17, 27, .96)),
    radial-gradient(circle at 50% 0, rgba(83, 119, 162, .2), transparent 45%);
  border-color: #2c3a50;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 22px 46px rgba(8, 13, 22, .26);
  color: #edf5ff;
  display: grid;
  gap: clamp(5px, .7vh, 8px);
  grid-template-rows: auto minmax(78px, .62fr) auto auto minmax(0, 1.24fr);
  height: 100%;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  padding: clamp(7px, .72vw, 10px);
}

.score-panel {
  background: rgba(5, 10, 18, .38);
  border-color: rgba(143, 168, 200, .22);
  box-shadow: none;
  display: grid;
  gap: 6px;
  grid-template-columns: 1fr 1fr;
  padding: 7px;
}

.kill-panel {
  background: rgba(5, 10, 18, .38);
  border-color: rgba(143, 168, 200, .22);
  box-shadow: none;
  display: grid;
  gap: 6px;
  min-height: 0;
  overflow: hidden;
  padding: 8px;
}

.kill-panel-label {
  color: #aebdd1;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.kill-list {
  display: grid;
  gap: 4px;
  min-height: 0;
  overflow: hidden;
}

.kill-row {
  align-items: center;
  background: linear-gradient(180deg, rgba(24, 35, 51, .9), rgba(10, 15, 25, .94));
  border: 1px solid rgba(124, 151, 186, .18);
  border-radius: 5px;
  display: grid;
  gap: 6px;
  grid-template-columns: 18px 14px minmax(0, 1fr) auto;
  min-height: clamp(22px, 3vh, 26px);
  padding: 4px 6px;
}

.kill-row.mvp {
  border-color: rgba(246, 192, 62, .48);
  box-shadow: inset 0 0 0 1px rgba(246, 192, 62, .12);
}

.kill-rank {
  color: #90a4bf;
  font-size: 10px;
  font-weight: 900;
  text-align: center;
}

.mvp-crown {
  background: linear-gradient(180deg, #fff2a2, #f0bd38 58%, #af7018);
  clip-path: polygon(0 100%, 0 35%, 24% 57%, 39% 6%, 50% 52%, 61% 6%, 76% 57%, 100% 35%, 100% 100%);
  display: inline-block;
  height: 11px;
  justify-self: center;
  width: 14px;
}

.mvp-crown.empty {
  opacity: 0;
}

.kill-name {
  color: #edf5ff;
  font-size: 11px;
  font-weight: 850;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.kill-row.north .kill-name {
  color: #8db9ff;
}

.kill-row.south .kill-name {
  color: #ff9dad;
}

.kill-score {
  color: #fff7d6;
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
}

.kill-empty {
  color: #8fa0b8;
  font-size: 11px;
  font-weight: 750;
  padding: 2px 1px;
}

.player-hud {
  background: rgba(5, 10, 18, .38);
  border: 1px solid rgba(143, 168, 200, .22);
  border-radius: 8px;
  box-shadow: none;
  display: grid;
  gap: 6px;
  min-height: 0;
  overflow: hidden;
  padding: 8px;
}

.player-strip {
  background: linear-gradient(180deg, rgba(28, 39, 56, .92), rgba(12, 18, 29, .96));
  border: 1px solid rgba(124, 151, 186, .24);
  border-radius: 6px;
  display: grid;
  gap: 5px;
  min-height: 0;
  min-width: 0;
  padding: 6px;
}

.player-strip-row {
  align-items: center;
  display: flex;
  gap: 7px;
  justify-content: space-between;
  min-height: 22px;
  min-width: 0;
}

.player-strip-row-status {
  border-top: 1px solid rgba(124, 151, 186, .14);
  padding-top: 5px;
}

.hud-menu-button {
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 214, 106, .34);
  border-radius: 5px;
  color: #ffe6a6;
  cursor: pointer;
  flex: 0 0 auto;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  min-height: 22px;
  padding: 5px 7px;
  text-transform: uppercase;
}

.hud-menu-button:hover {
  background: rgba(255, 214, 106, .15);
  border-color: rgba(255, 214, 106, .58);
}

.player-strip strong,
.player-strip span {
  font-size: 11px;
  font-weight: 900;
  line-height: 1.1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.player-strip .player-gold {
  align-items: center;
  color: #ffd66a;
  display: inline-flex;
  flex: 1 1 auto;
  gap: 4px;
  justify-content: flex-end;
  text-align: right;
}

.player-strip .player-gold::before {
  background:
    radial-gradient(circle at 35% 28%, rgba(255, 250, 196, .95) 0 16%, transparent 17%),
    radial-gradient(circle at 50% 50%, #f6d36a 0 54%, #b97819 55% 100%);
  border: 1px solid rgba(255, 236, 164, .76);
  border-radius: 50%;
  box-shadow: inset 0 -2px 0 rgba(107, 67, 12, .35), 0 1px 0 rgba(0, 0, 0, .32);
  content: "";
  display: inline-block;
  height: 13px;
  width: 13px;
}

.player-strip .player-hp {
  color: #f6fff8;
  text-shadow:
    0 1px 0 rgba(0, 0, 0, .72),
    0 0 7px rgba(28, 189, 92, .34);
}

.resource-bar {
  align-items: center;
  background: rgba(4, 9, 18, .46);
  border: 1px solid rgba(124, 151, 186, .2);
  border-radius: 999px;
  display: flex;
  height: 16px;
  justify-content: center;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.resource-bar > span {
  inset: 0 auto 0 0;
  position: absolute;
  transition: width .16s ease;
  width: 100%;
}

.resource-bar > strong {
  color: #e8f5ff;
  font-size: 10px;
  font-weight: 950;
  line-height: 1;
  position: relative;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .62);
  z-index: 1;
}

.hp-resource > span {
  background: linear-gradient(90deg, #1f9f55, #41db76 62%, #9af7b0);
  box-shadow: 0 0 13px rgba(66, 227, 118, .28);
}

.mana-resource > span {
  background: linear-gradient(90deg, #226edb, #4aa8ff 62%, #9ce3ff);
  box-shadow: 0 0 13px rgba(76, 171, 255, .3);
}

.xp-resource {
  border-color: rgba(255, 214, 106, .28);
}

.xp-resource > span {
  background: linear-gradient(90deg, #b97920, #f2c94c 62%, #fff0a8);
  box-shadow: 0 0 13px rgba(242, 201, 76, .26);
}

.xp-resource > strong {
  align-items: center;
  display: inline-flex;
  gap: 5px;
  justify-content: center;
  max-width: calc(100% - 10px);
}

.xp-resource-detail {
  border-left: 1px solid rgba(255, 249, 222, .38);
  color: rgba(255, 249, 222, .86);
  font-size: 9px;
  font-weight: 850;
  padding-left: 5px;
}

@keyframes mana-low-fill-flash {
  0% {
    background: linear-gradient(90deg, #226edb, #4aa8ff 62%, #9ce3ff);
    box-shadow: 0 0 13px rgba(76, 171, 255, .3);
  }
  32%, 68% {
    background: linear-gradient(90deg, #ff243d, #ff6674 62%, #ffc4ca);
    box-shadow:
      0 0 12px rgba(255, 53, 73, .62),
      0 0 24px rgba(255, 53, 73, .35);
  }
  100% {
    background: linear-gradient(90deg, #226edb, #4aa8ff 62%, #9ce3ff);
    box-shadow: 0 0 13px rgba(76, 171, 255, .3);
  }
}

@keyframes mana-low-text-flash {
  0%, 100% {
    color: #e8f5ff;
    text-shadow:
      0 1px 0 rgba(0, 0, 0, .8),
      0 0 7px rgba(76, 171, 255, .35);
  }
  32%, 68% {
    color: #ffeff1;
    text-shadow:
      0 1px 0 rgba(0, 0, 0, .95),
      0 0 8px rgba(255, 38, 58, .78),
      0 0 16px rgba(255, 38, 58, .42);
  }
}

.player-strip .latency-meter,
.player-strip .fps-meter {
  flex: 0 0 auto;
  max-width: 100%;
  min-width: 58px;
  overflow: visible;
  padding-left: 5px;
  padding-right: 5px;
  text-align: left;
  text-overflow: clip;
}

.hud-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: 1fr 1fr;
}

.hud-grid div {
  background: linear-gradient(180deg, rgba(28, 39, 56, .92), rgba(12, 18, 29, .96));
  border: 1px solid rgba(124, 151, 186, .28);
  border-radius: 6px;
  display: grid;
  gap: 5px;
  min-height: 58px;
  padding: 10px;
}

.hud-grid span {
  color: #aebdd1;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.hud-grid strong {
  color: #fff7d6;
  font-size: 15px;
  line-height: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.player-hud .latency-good {
  color: #31be7e;
}

.score-panel div {
  background: linear-gradient(180deg, rgba(28, 39, 56, .92), rgba(12, 18, 29, .96));
  border: 1px solid rgba(124, 151, 186, .22);
  border-radius: 6px;
  align-items: center;
  display: flex;
  gap: 6px;
  justify-content: space-between;
  min-height: 34px;
  padding: 7px 8px;
}

.score-panel span,
.player-hud h2,
.objective-panel h2,
.inventory h2 {
  color: #aebdd1;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.score-panel strong {
  font-size: 17px;
  line-height: 1;
}

.objective-panel,
.level-panel {
  background: rgba(5, 10, 18, .38);
  border-color: rgba(143, 168, 200, .22);
  box-shadow: none;
  display: grid;
  gap: 7px;
  min-height: 0;
  overflow: hidden;
  padding: 8px;
}

.level-status {
  background:
    radial-gradient(circle at 100% 0, rgba(255, 214, 106, .16), transparent 46%),
    linear-gradient(180deg, rgba(23, 32, 47, .92), rgba(11, 16, 26, .95));
  border: 1px solid rgba(255, 214, 106, .26);
  border-radius: 6px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07);
  display: grid;
  gap: 6px;
  padding: clamp(6px, .75vh, 8px);
}

.level-row {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: space-between;
}

.level-row span,
.level-panel small {
  color: #aebdd1;
  font-size: 11px;
  font-weight: 850;
}

.level-row span {
  letter-spacing: .05em;
  text-transform: uppercase;
}

.level-row strong {
  color: #ffe37e;
  font-size: 16px;
  font-weight: 1000;
  line-height: 1;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .62), 0 0 12px rgba(255, 214, 106, .26);
}

.level-bar {
  background:
    linear-gradient(180deg, rgba(0, 0, 0, .42), rgba(255, 255, 255, .05)),
    #162131;
  border: 1px solid rgba(255, 214, 106, .4);
  border-radius: 5px;
  box-shadow: inset 0 2px 3px rgba(0, 0, 0, .55), 0 1px 0 rgba(255, 255, 255, .08), 0 0 10px rgba(242, 201, 76, .12);
  height: clamp(8px, 1.15vh, 11px);
  overflow: hidden;
  padding: 1px;
  position: relative;
}

.level-bar::after {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .42), transparent);
  content: "";
  height: 2px;
  left: 5px;
  opacity: .62;
  position: absolute;
  right: 5px;
  top: 3px;
}

.level-bar span {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .34), transparent 45%, rgba(0, 0, 0, .22) 100%),
    linear-gradient(90deg, #b97920, #f2c94c 58%, #fff0a8);
  border-radius: 3px;
  box-shadow: 0 0 12px rgba(242, 201, 76, .24);
  display: block;
  height: 100%;
  transition: width .22s ease;
  width: 0%;
}

.mission-focus-panel[hidden] {
  display: none !important;
}

.mission-focus-status {
  background:
    radial-gradient(circle at 100% 0, rgba(141, 240, 168, .13), transparent 46%),
    linear-gradient(180deg, rgba(23, 32, 47, .92), rgba(11, 16, 26, .95));
  border-color: rgba(141, 240, 168, .22);
}

.mission-focus-panel.is-ready .mission-focus-status {
  border-color: rgba(141, 240, 168, .55);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .08),
    0 0 14px rgba(72, 236, 136, .14);
}

.mission-focus-panel .level-row strong {
  color: #8df0a8;
  font-size: 11px;
  max-width: 72px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mission-focus-bar {
  border-color: rgba(141, 240, 168, .32);
  height: clamp(8px, 1vh, 10px);
}

.mission-focus-bar span {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .3), transparent 45%, rgba(0, 0, 0, .18) 100%),
    linear-gradient(90deg, #1f9f55, #41db76 62%, #9af7b0);
  box-shadow: 0 0 12px rgba(66, 227, 118, .22);
}

.mission-focus-panel.is-ready .mission-focus-bar span {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .34), transparent 45%, rgba(0, 0, 0, .18) 100%),
    linear-gradient(90deg, #b97920, #f2c94c 58%, #fff0a8);
  box-shadow: 0 0 14px rgba(242, 201, 76, .34);
}

#missionFocusTitle {
  color: #dce8f7;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gate-status {
  background: linear-gradient(180deg, rgba(23, 32, 47, .92), rgba(11, 16, 26, .95));
  border: 1px solid rgba(94, 190, 123, .28);
  border-radius: 6px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07);
  display: grid;
  gap: 5px;
  padding: clamp(5px, .65vh, 7px);
  transition: border-color .18s ease, box-shadow .18s ease;
}

.gate-row {
  align-items: center;
  display: grid;
  gap: 6px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.gate-status span,
.objective-panel small {
  color: #aebdd1;
  font-size: 11px;
  font-weight: 850;
}

.gate-status strong {
  color: #8df0a8;
  font-size: 13px;
  line-height: 1;
  white-space: nowrap;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .55), 0 0 10px rgba(74, 214, 111, .2);
  transition: color .18s ease, text-shadow .18s ease;
}

.gate-bar {
  background:
    linear-gradient(180deg, rgba(0, 0, 0, .42), rgba(255, 255, 255, .05)),
    #162131;
  border: 1px solid rgba(101, 218, 132, .45);
  border-radius: 5px;
  box-shadow: inset 0 2px 3px rgba(0, 0, 0, .55), 0 1px 0 rgba(255, 255, 255, .08), 0 0 10px rgba(67, 205, 103, .12);
  height: clamp(7px, 1.1vh, 10px);
  overflow: hidden;
  padding: 1px;
  position: relative;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.gate-bar::after {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .42), transparent);
  content: "";
  height: 2px;
  left: 5px;
  opacity: .65;
  position: absolute;
  right: 5px;
  top: 3px;
}

.gate-bar span {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .32), transparent 45%, rgba(0, 0, 0, .22) 100%),
    linear-gradient(90deg, #2dbd63, #55dd82 58%, #a9f7a7);
  border-radius: 3px;
  box-shadow: 0 0 12px rgba(74, 214, 111, .24);
  display: block;
  height: 100%;
  transition: background .18s ease, box-shadow .18s ease, width .22s ease;
  width: 100%;
}

.gate-bar.ally span {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .32), transparent 45%, rgba(0, 0, 0, .22) 100%),
    linear-gradient(90deg, #2dbd63, #55dd82 58%, #a9f7a7);
  box-shadow: 0 0 12px rgba(74, 214, 111, .24);
}

.gate-status.base-damaged {
  border-color: rgba(255, 74, 96, .72);
  box-shadow: 0 0 0 1px rgba(255, 74, 96, .18), 0 0 18px rgba(255, 74, 96, .18), inset 0 1px 0 rgba(255, 255, 255, .08);
}

.gate-status.base-damaged strong {
  color: #ff7184;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .55), 0 0 12px rgba(255, 74, 96, .35);
}

.gate-status.base-damaged .gate-bar {
  border-color: rgba(255, 74, 96, .74);
  box-shadow: inset 0 2px 3px rgba(0, 0, 0, .55), 0 0 14px rgba(255, 74, 96, .24);
}

.gate-status.base-damaged .gate-bar span,
.gate-status.base-damaged .gate-bar.ally span {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .32), transparent 45%, rgba(0, 0, 0, .22) 100%),
    linear-gradient(90deg, #d9364d, #ff5f72 58%, #ff9ca9);
  box-shadow: 0 0 12px rgba(255, 74, 96, .34);
}

.item-shop {
  background: rgba(5, 10, 18, .38);
  border: 1px solid rgba(143, 168, 200, .22);
  border-radius: 8px;
  box-shadow: none;
  display: grid;
  min-height: 0;
  overflow: hidden;
  padding: 6px;
}

.item-card {
  align-items: center;
  background: linear-gradient(180deg, rgba(29, 39, 54, .96), rgba(12, 18, 29, .98));
  border: 1px solid rgba(135, 160, 194, .22);
  border-radius: 7px;
  color: #edf5ff;
  cursor: pointer;
  display: grid;
  gap: 8px;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  min-height: 44px;
  overflow: hidden;
  padding: 6px;
  position: relative;
  text-align: left;
}

.item-card:disabled {
  cursor: not-allowed;
  opacity: .58;
}

.item-card.can-buy {
  border-color: rgba(255, 214, 106, .64);
  box-shadow: 0 0 0 1px rgba(255, 214, 106, .2), 0 0 18px rgba(255, 214, 106, .16);
  opacity: 1;
}

.item-card.can-buy::after {
  align-items: center;
  animation: runeBuyPulse 1.25s ease-in-out infinite;
  background: radial-gradient(circle, #fff4bf 0 24%, #f1bd3b 25% 68%, #8a5616 69% 100%);
  border: 1px solid rgba(255, 247, 207, .9);
  border-radius: 50%;
  box-shadow: 0 0 14px rgba(255, 214, 106, .34);
  color: #251708;
  content: "+";
  display: flex;
  font-size: 14px;
  font-weight: 1000;
  height: 20px;
  justify-content: center;
  left: 24px;
  line-height: 1;
  pointer-events: none;
  position: absolute;
  top: 4px;
  width: 20px;
}

.item-card.maxed {
  border-color: rgba(255, 214, 106, .38);
}

.item-copy {
  min-width: 0;
}

.item-copy strong {
  display: block;
  font-size: 12px;
  font-weight: 950;
  line-height: 1.1;
}

.item-copy small {
  color: #aebdd1;
  display: block;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.15;
}

.item-count {
  align-items: center;
  background: rgba(5, 9, 15, .72);
  border: 1px solid rgba(255, 214, 106, .28);
  border-radius: 999px;
  color: #ffe8a4;
  display: inline-flex;
  font-size: 10px;
  font-weight: 950;
  justify-content: center;
  min-width: 38px;
  padding: 4px 7px;
  white-space: nowrap;
}

.halo-icon {
  border-radius: 50%;
  display: inline-block;
  height: 30px;
  position: relative;
  width: 30px;
}

.halo-icon::before {
  background:
    radial-gradient(ellipse at 50% 42%, transparent 34%, #fff7b6 35% 46%, #f2bc38 47% 60%, transparent 61%),
    radial-gradient(circle at 50% 50%, rgba(255, 226, 92, .22), transparent 65%);
  border-radius: 50%;
  content: "";
  inset: 0;
  position: absolute;
}

.halo-icon::after {
  background: radial-gradient(circle, #fffbe1, #f0bd38 56%, #895715 57%);
  border-radius: 50%;
  box-shadow:
    -9px -1px 0 -3px #fff2a2,
    9px -1px 0 -3px #fff2a2,
    0 0 12px rgba(255, 214, 106, .48);
  content: "";
  height: 8px;
  left: 11px;
  position: absolute;
  top: 11px;
  width: 8px;
}

.inventory {
  background: rgba(5, 10, 18, .38);
  border-color: rgba(143, 168, 200, .22);
  box-shadow: none;
  display: grid;
  gap: 6px;
  grid-template-rows: repeat(4, minmax(0, 1fr));
  min-height: 0;
  overflow: hidden;
  padding: 8px;
}

.rune {
  align-items: center;
  background: linear-gradient(180deg, rgba(27, 38, 55, .96), rgba(12, 18, 29, .98));
  border: 1px solid rgba(135, 160, 194, .22);
  border-radius: 6px;
  color: #edf5ff;
  cursor: pointer;
  display: grid;
  gap: clamp(6px, .65vw, 8px);
  grid-template-columns: clamp(28px, 3.9vh, 34px) minmax(0, 1fr);
  height: 100%;
  min-height: 0;
  padding: clamp(4px, .72vh, 6px);
  position: relative;
  overflow: hidden;
  text-align: left;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.rune:hover,
.rune.active {
  border-color: #ffd66a;
}

.rune:disabled {
  cursor: not-allowed;
  opacity: .58;
}

.rune.locked {
  background: linear-gradient(180deg, rgba(19, 25, 35, .96), rgba(8, 12, 19, .98));
  border-color: rgba(103, 121, 148, .16);
  color: rgba(237, 245, 255, .66);
  filter: saturate(.62);
}

.rune.locked .rune-icon {
  filter: grayscale(.7) brightness(.62);
}

.rune.no-mana {
  border-color: rgba(85, 144, 220, .2);
  filter: saturate(.58) brightness(.78);
}

.rune.no-mana .rune-icon {
  filter: grayscale(.45) brightness(.66) sepia(.18) hue-rotate(170deg);
}

.rune.can-buy {
  border-color: rgba(255, 214, 106, .58);
  box-shadow: 0 0 0 1px rgba(255, 214, 106, .22), 0 0 18px rgba(255, 214, 106, .15);
  filter: none;
  opacity: 1;
}

.rune.can-buy::before {
  align-items: center;
  animation: runeBuyPulse 1.25s ease-in-out infinite;
  background: radial-gradient(circle, #fff4bf 0 24%, #f1bd3b 25% 68%, #8a5616 69% 100%);
  border: 1px solid rgba(255, 247, 207, .9);
  border-radius: 50%;
  box-shadow: 0 0 14px rgba(255, 214, 106, .34);
  color: #251708;
  content: "+";
  display: flex;
  font-size: 15px;
  font-weight: 1000;
  height: 22px;
  justify-content: center;
  left: 4px;
  line-height: 1;
  pointer-events: none;
  position: absolute;
  top: 4px;
  width: 22px;
  z-index: 3;
}

@keyframes runeBuyPulse {
  0%, 100% {
    transform: scale(.94);
  }
  50% {
    transform: scale(1.08);
  }
}

.rune.cooldown {
  border-color: rgba(143, 168, 200, .18);
  box-shadow: inset 0 0 0 1px rgba(6, 10, 16, .5);
  filter: saturate(.68);
  transform: none;
}

.rune.cooldown::after {
  content: "";
  background: repeating-linear-gradient(
    -45deg,
    rgba(255, 255, 255, .08) 0 8px,
    rgba(255, 255, 255, .02) 8px 16px
  );
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}

.rune.cooldown .rune-icon {
  filter: grayscale(.4) brightness(.72);
}

.rune-icon,
.rune > span:not(.rune-hotkey):not(.rune-cooldown) {
  min-width: 0;
  position: relative;
  z-index: 1;
}

.rune-hotkey {
  align-items: center;
  background: rgba(5, 9, 15, .72);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 4px;
  color: #ffe8a4;
  display: flex;
  font-size: 10px;
  font-weight: 900;
  height: 17px;
  justify-content: center;
  line-height: 1;
  position: absolute;
  right: 6px;
  top: 5px;
  width: 17px;
  z-index: 1;
}

.rune-cooldown {
  align-items: center;
  background: linear-gradient(180deg, rgba(44, 28, 12, .92), rgba(12, 8, 4, .92));
  border: 1px solid rgba(255, 214, 106, .58);
  border-radius: 999px;
  bottom: 5px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .12);
  color: #ffe7a3;
  display: inline-flex;
  font-size: 11px;
  font-weight: 900;
  justify-content: center;
  letter-spacing: 0;
  line-height: 1;
  min-width: 42px;
  padding: 4px 7px;
  pointer-events: none;
  position: absolute;
  right: 6px;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .6);
  z-index: 2;
}

.rune-cooldown[hidden] {
  display: none !important;
}

.rune.active {
  background:
    linear-gradient(180deg, rgba(44, 61, 86, .98), rgba(15, 23, 37, .98)),
    radial-gradient(circle at 20% 50%, rgba(255, 214, 106, .24), transparent 52%);
  box-shadow: 0 0 0 1px rgba(255, 214, 106, .34), 0 0 18px rgba(255, 214, 106, .16), inset 0 1px 0 rgba(255, 255, 255, .12);
  transform: translateY(-1px);
}

.rune-icon {
  border: 2px solid rgba(255, 255, 255, .16);
  border-radius: 5px;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .22), 0 5px 0 rgba(0, 0, 0, .16);
  display: block;
  height: clamp(28px, 3.9vh, 34px);
  image-rendering: pixelated;
  position: relative;
  width: clamp(28px, 3.9vh, 34px);
}

.rune-icon::before,
.rune-icon::after {
  content: "";
  position: absolute;
}

.rune-heal .rune-icon {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .28) 0 14%, transparent 15%),
    linear-gradient(180deg, #55bdff 0 48%, #257bc9 49% 100%);
}

.rune-heal .rune-icon::before {
  background: #f4fbff;
  box-shadow: 0 0 0 2px rgba(13, 57, 108, .28);
  height: 22px;
  left: 14px;
  top: 5px;
  width: 7px;
}

.rune-heal .rune-icon::after {
  background: #f4fbff;
  box-shadow: 0 0 0 2px rgba(13, 57, 108, .28);
  height: 7px;
  left: 7px;
  top: 13px;
  width: 22px;
}

.rune-bolt .rune-icon {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .26) 0 14%, transparent 15%),
    linear-gradient(180deg, #8c97a6 0 48%, #424b57 49% 100%);
}

.rune-bolt .rune-icon::before {
  background: #202631;
  box-shadow: 3px 0 0 rgba(255, 255, 255, .16);
  clip-path: polygon(42% 0, 76% 0, 60% 36%, 84% 36%, 34% 100%, 47% 54%, 20% 54%);
  height: 26px;
  left: 9px;
  top: 5px;
  width: 19px;
}

.rune-magic-wall .rune-icon {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .34) 0 16%, transparent 17%),
    linear-gradient(180deg, #b9f3ff 0 48%, #36a9d7 49% 100%);
}

.rune-magic-wall .rune-icon::before {
  background: #effcff;
  clip-path: polygon(50% 0, 78% 72%, 50% 100%, 22% 72%);
  filter: drop-shadow(4px 0 0 rgba(31, 143, 190, .72));
  height: 26px;
  left: 10px;
  top: 5px;
  width: 16px;
}

.rune-magic-wall .rune-icon::after {
  background: rgba(255, 255, 255, .76);
  height: 14px;
  left: 17px;
  top: 9px;
  width: 2px;
}

.rune-haste .rune-icon {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .26) 0 14%, transparent 15%),
    linear-gradient(180deg, #e8c56a 0 48%, #8d5a24 49% 100%);
}

.rune-haste .rune-icon::before {
  background: #28313d;
  border-radius: 5px 8px 6px 4px;
  box-shadow:
    -6px 11px 0 -2px #1b222c,
    3px 11px 0 -2px #1b222c,
    0 0 0 2px rgba(255, 236, 164, .2);
  height: 14px;
  left: 8px;
  top: 14px;
  transform: skewX(-9deg);
  width: 22px;
}

.rune-haste .rune-icon::after {
  background: #fff4bf;
  clip-path: polygon(0 46%, 34% 30%, 20% 0, 58% 24%, 100% 6%, 72% 44%, 100% 76%, 55% 64%, 20% 100%, 34% 66%);
  filter: drop-shadow(0 2px 0 rgba(95, 69, 18, .34));
  height: 19px;
  left: 17px;
  top: 5px;
  transform: rotate(-10deg);
  width: 15px;
}

.rune strong {
  display: block;
  font-size: clamp(12px, 1.65vh, 14px);
  line-height: 1.1;
  overflow: hidden;
  padding-right: 18px;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .45);
}

.rune small {
  color: #aebdd1;
  display: block;
  font-size: clamp(9px, 1.35vh, 11px);
  font-weight: 800;
  margin-top: 2px;
  overflow: hidden;
  padding-right: 44px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.objective-panel small {
  display: none;
}

@media (max-width: 900px) {
  :root {
    --shell-pad: 6px;
    --layout-gap: 6px;
    --hud-width: clamp(174px, 30vw, 220px);
  }

  .gate-shell {
    padding: var(--shell-pad);
  }

  .game-layout {
    grid-template-columns: minmax(0, 1fr) var(--hud-width);
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }

  .arena-panel {
    min-height: 0;
  }

  #gameCanvas {
    min-height: 0;
  }

  .side-panel {
    height: 100%;
    overflow: hidden;
  }
}

@media (max-height: 760px) {
  :root {
    --shell-pad: 6px;
    --layout-gap: 6px;
  }

  .side-panel {
    gap: 5px;
    grid-template-rows: auto minmax(72px, .58fr) auto minmax(0, 1.15fr);
    padding: 6px;
  }

  .player-hud,
  .kill-panel,
  .objective-panel,
  .level-panel,
  .inventory {
    padding: 6px;
  }

  .player-strip {
    gap: 5px;
    padding: 5px;
  }

  .hud-menu-button {
    padding: 4px 6px;
  }

  .kill-panel-label {
    font-size: 9px;
  }

  .kill-row {
    gap: 5px;
    grid-template-columns: 15px 12px minmax(0, 1fr) auto;
    padding: 2px 5px;
  }

  .gate-status span,
  .objective-panel small,
  .level-panel small,
  .kill-name {
    font-size: 10px;
  }

  .gate-status strong,
  .kill-score {
    font-size: 11px;
  }

  .inventory {
    gap: 5px;
  }
}

@media (max-height: 640px) {
  .side-panel {
    grid-template-rows: auto minmax(58px, .42fr) auto minmax(0, 1fr);
  }

  .rune {
    grid-template-columns: 26px minmax(0, 1fr);
    padding: 3px 5px;
  }

  .rune-icon {
    height: 26px;
    width: 26px;
  }

  .rune strong {
    font-size: 11px;
  }

  .rune small {
    font-size: 9px;
  }

  .rune-cooldown {
    bottom: 3px;
    font-size: 9px;
    min-width: 34px;
    padding: 3px 5px;
    right: 4px;
  }

  .rune-hotkey {
    height: 15px;
    right: 4px;
    top: 4px;
    width: 15px;
  }
}

body.mobile-landscape .rank-info-dialog {
  gap: 7px;
  max-height: calc(100dvh - 12px);
  max-width: 520px;
  padding: 13px;
  width: min(520px, calc(100vw - 16px));
}

body.mobile-landscape .rank-info-dialog h2 {
  font-size: clamp(22px, 7vh, 30px);
}

body.mobile-landscape .rank-info-dialog .eyebrow {
  font-size: 8px;
  padding: 3px 8px;
}

body.mobile-landscape .rank-info-current {
  border-radius: 10px;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  padding: 7px 9px;
}

body.mobile-landscape .rank-info-current .rank-badge--profile,
body.mobile-landscape .rank-info-row .rank-badge--profile {
  height: 28px;
  width: 26px;
}

body.mobile-landscape .rank-info-current .rank-badge--wood.rank-badge--profile,
body.mobile-landscape .rank-info-row .rank-badge--wood.rank-badge--profile {
  height: 21px;
  width: 32px;
}

body.mobile-landscape .rank-info-current small {
  font-size: 8px;
}

body.mobile-landscape .rank-info-current strong {
  font-size: 18px;
}

body.mobile-landscape .rank-info-current b {
  font-size: 16px;
  min-width: 50px;
  padding: 6px 8px;
}

body.mobile-landscape .rank-info-grid {
  gap: 5px;
}

body.mobile-landscape .rank-info-row {
  border-radius: 8px;
  gap: 8px;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  padding: 6px 8px;
}

body.mobile-landscape .rank-info-row strong,
body.mobile-landscape .rank-info-row b {
  font-size: 12px;
}

body.mobile-landscape .rank-info-row small,
body.mobile-landscape .rank-info-dialog > p {
  font-size: 9px;
}

body.mobile-landscape .settings-overlay {
  padding: 6px;
}

body.mobile-landscape .settings-dialog {
  gap: 7px;
  max-height: calc(100dvh - 12px);
  max-width: calc(100vw - 12px);
  overflow: hidden;
  padding: 12px;
  width: calc(100vw - 12px);
}

body.mobile-landscape .settings-dialog h2 {
  font-size: clamp(22px, 7vh, 30px);
}

body.mobile-landscape .settings-dialog .eyebrow {
  font-size: 8px;
  padding: 3px 8px;
}

body.mobile-landscape .settings-layout {
  gap: 7px;
  grid-template-columns: 1fr;
}

body.mobile-landscape .settings-tabs {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: none;
}

body.mobile-landscape .settings-tabs::-webkit-scrollbar {
  display: none;
}

body.mobile-landscape .settings-tab {
  border-radius: 8px;
  flex: 1 0 auto;
  font-size: 10px;
  justify-content: center;
  min-height: 30px;
  padding: 6px 9px;
  text-align: center;
}

body.mobile-landscape .settings-panel {
  border-radius: 9px;
  gap: 8px;
  max-height: calc(100dvh - 128px);
  padding: 9px;
}

body.mobile-landscape .settings-panel-head strong {
  font-size: 14px;
}

body.mobile-landscape .settings-panel-head small,
body.mobile-landscape .settings-field small {
  font-size: 9px;
}

body.mobile-landscape .settings-control-grid {
  grid-template-columns: minmax(74px, .42fr) minmax(0, 1fr);
}

body.mobile-landscape .settings-control-grid span,
body.mobile-landscape .settings-control-grid strong {
  font-size: 9px;
  padding: 7px 8px;
}

body.mobile-landscape .settings-control-sections,
body.mobile-landscape .settings-account-view {
  gap: 7px;
}

body.mobile-landscape .settings-control-section {
  gap: 6px;
  padding: 7px;
}

body.mobile-landscape .settings-section-head strong {
  font-size: 11px;
}

body.mobile-landscape .settings-section-head small {
  font-size: 8px;
}

body.mobile-landscape .settings-keybind-list,
body.mobile-landscape .settings-mobile-control-list,
body.mobile-landscape .settings-action-list {
  gap: 5px;
}

body.mobile-landscape .settings-keybind-row {
  gap: 6px;
  grid-template-columns: minmax(74px, auto) minmax(0, 1fr) auto;
  padding: 5px 6px;
}

body.mobile-landscape .settings-keycap-group {
  gap: 3px;
}

body.mobile-landscape .settings-keycap-group kbd {
  border-radius: 6px;
  font-size: 9px;
  min-height: 22px;
  min-width: 22px;
  padding: 0 5px;
}

body.mobile-landscape .settings-keybind-row strong,
body.mobile-landscape .settings-mobile-control-list strong {
  font-size: 10px;
}

body.mobile-landscape .settings-keybind-row small,
body.mobile-landscape .settings-mobile-control-list small {
  font-size: 8px;
}

body.mobile-landscape .settings-keybind-row button {
  font-size: 8px;
  min-height: 24px;
  padding: 4px 6px;
}

body.mobile-landscape .settings-mobile-control-list {
  grid-template-columns: 1fr;
}

body.mobile-landscape .settings-mobile-control-list div {
  padding: 6px;
}

body.mobile-landscape .settings-field > span {
  font-size: 10px;
}

body.mobile-landscape .settings-field input,
body.mobile-landscape .settings-field select {
  font-size: 11px;
  min-height: 34px;
  padding: 7px 8px;
}

body.mobile-landscape .settings-account-summary {
  gap: 6px;
  grid-template-columns: 36px minmax(0, 1fr) repeat(2, 50px);
  padding: 7px 8px;
}

body.mobile-landscape .settings-account-avatar {
  display: block;
  height: 36px;
  width: 36px;
}

body.mobile-landscape.is-lobby .settings-account-avatar {
  display: block;
}

body.mobile-landscape .settings-account-summary strong {
  font-size: 14px;
}

body.mobile-landscape .settings-account-stat {
  min-width: 0;
  padding: 5px 4px;
}

body.mobile-landscape .settings-account-stat small {
  font-size: 7px;
}

body.mobile-landscape .settings-account-stat strong {
  font-size: 12px;
}

body.mobile-landscape .settings-action-list button {
  border-radius: 8px;
  gap: 2px;
  padding: 7px 8px;
}

body.mobile-landscape .settings-action-list button strong {
  font-size: 11px;
}

body.mobile-landscape .settings-action-list button small,
body.mobile-landscape .settings-inline-status {
  font-size: 8px;
}

body.mobile-landscape .settings-back-button {
  font-size: 9px;
  min-height: 26px;
  padding: 4px 8px;
}
