.multiplayer-mode-select,
.multiplayer-card-lobby,
.multiplayer-card-table {
  height: 100%;
  min-height: 0;
  border: 1px solid rgba(46, 229, 212, 0.28);
  background: rgba(2, 8, 8, 0.92);
  box-shadow: 0 20px 56px rgba(0, 0, 0, 0.48);
}

.multiplayer-mode-select {
  position: relative;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  padding: 16px 76px 22px;
  overflow: hidden;
  border: 0;
  box-shadow: none;
}

.multiplayer-mode-select__intro {
  position: absolute;
  z-index: 5;
  top: 50%;
  right: 22px;
  left: 22px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  pointer-events: none;
  transform: translateY(-50%);
}

.multiplayer-card-lobby__intro h2 {
  margin: 0;
  color: #f2dfb0;
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 400;
  letter-spacing: 0.035em;
}

.multiplayer-card-lobby__intro p {
  margin: 0;
  color: rgba(242, 223, 176, 0.78);
  font-family: var(--font-ui);
  font-size: 10px;
  line-height: 1.4;
}

.multiplayer-mode-select__controls {
  display: contents;
}

.multiplayer-host-lobby .multiplayer-lobby-intro {
  position: relative;
  padding-right: 112px;
}

.multiplayer-lobby-change-mode {
  position: absolute;
  top: 0;
  right: 0;
  min-height: 32px;
  padding: 0 11px;
  border: 1px solid rgba(46, 229, 212, 0.42);
  color: #5ce1d4;
  background: rgba(4, 14, 14, 0.76);
  font-family: var(--font-ui);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.multiplayer-lobby-change-mode:hover,
.multiplayer-lobby-change-mode:focus-visible {
  border-color: #2ee5d4;
  color: #071112;
  background: #2ee5d4;
}

.multiplayer-mode-select__grid {
  display: flex;
  gap: 18px;
  min-height: 0;
  padding: 2px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
}

.multiplayer-mode-select__grid::-webkit-scrollbar {
  display: none;
}

.multiplayer-mode-select__grid:focus-visible {
  outline: 2px solid rgba(46, 229, 212, 0.8);
  outline-offset: 3px;
}

.multiplayer-mode-card {
  position: relative;
  flex: 0 0 calc(33.333% - 12px);
  height: 100%;
  min-width: 0;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(242, 223, 176, 0.42);
  color: #f2dfb0;
  background: #071111;
  text-align: left;
  cursor: pointer;
  scroll-snap-align: start;
  isolation: isolate;
}

.multiplayer-mode-card::before,
.multiplayer-mode-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid transparent;
  pointer-events: none;
}

.multiplayer-mode-card::before {
  z-index: 1;
  border: 0;
  background: linear-gradient(180deg, transparent 42%, rgba(1, 5, 5, 0.2) 58%, rgba(1, 5, 5, 0.96) 100%);
}

.multiplayer-mode-card > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 260ms ease, filter 260ms ease;
}

.multiplayer-mode-card:hover,
.multiplayer-mode-card:focus-visible {
  border-color: #2ee5d4;
  outline: 0;
}

.multiplayer-mode-card:hover::after,
.multiplayer-mode-card:focus-visible::after {
  border-color: rgba(46, 229, 212, 0.28);
  box-shadow: inset 0 0 32px rgba(46, 229, 212, 0.08);
}

.multiplayer-mode-card:hover > img,
.multiplayer-mode-card:focus-visible > img {
  transform: scale(1.025);
  filter: saturate(1.1) contrast(1.03);
}

.multiplayer-mode-card__copy {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  gap: 6px;
  padding: 24px 22px 20px;
}

.multiplayer-mode-card__copy > small {
  color: #2ee5d4;
  font-family: var(--font-ui);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.multiplayer-mode-card__copy > strong {
  max-width: 92%;
  font-family: var(--font-display);
  font-size: clamp(20px, 1.8vw, 29px);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: 0.035em;
}

.multiplayer-card-lobby {
  position: relative;
  display: grid;
  grid-template-rows: 76px minmax(0, 1fr);
  padding: 0;
  overflow: hidden;
  border-color: rgba(224, 183, 88, 0.68);
  background:
    linear-gradient(rgba(1, 8, 9, 0.88), rgba(1, 8, 9, 0.98)),
    repeating-linear-gradient(90deg, transparent 0 88px, rgba(46, 229, 212, 0.025) 89px 90px),
    #02090a;
  isolation: isolate;
}

.multiplayer-card-lobby::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(224, 183, 88, 0.08) 1px, transparent 1px) 0 0 / 25% 100%,
    repeating-linear-gradient(0deg, transparent 0 3px, rgba(255, 255, 255, 0.008) 4px 5px);
  content: "";
  pointer-events: none;
}

.multiplayer-card-lobby__intro {
  position: relative;
  z-index: 4;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-content: center;
  gap: 3px 18px;
  padding: 12px 22px 10px;
  border-bottom: 1px solid rgba(224, 183, 88, 0.46);
  background: linear-gradient(90deg, rgba(4, 16, 17, 0.94), rgba(1, 7, 8, 0.98));
  text-align: left;
}

.multiplayer-card-lobby__intro::after {
  display: none;
}

.multiplayer-card-lobby__intro h2 {
  grid-column: 1;
  margin: 0;
  font-size: clamp(17px, 1.45vw, 23px);
  letter-spacing: 0.055em;
}

.multiplayer-card-lobby__intro p {
  grid-column: 1;
  max-width: 940px;
  font-size: 7px;
}

.multiplayer-card-lobby__intro > button {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  min-width: 116px;
  min-height: 42px;
  padding: 0 17px;
  border: 1px solid rgba(242, 223, 176, 0.36);
  color: #f2dfb0;
  background: rgba(3, 12, 12, 0.92);
  font-family: var(--font-ui);
  font-size: 8px;
  font-weight: 800;
}

.multiplayer-card-lobby__body {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: 58px minmax(0, 1fr) 62px;
  gap: 12px;
  min-height: 0;
  padding: 12px 16px 14px;
  overflow: hidden;
}

.multiplayer-card-lobby__body::before,
.multiplayer-card-lobby__body::after {
  display: none;
}

.multiplayer-card-lobby__invite {
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr) auto;
  align-content: start;
  justify-items: center;
  gap: 4px;
  min-width: 0;
  min-height: 0;
  padding: 2px 22px 6px;
  border-right: 1px solid rgba(224, 183, 88, 0.28);
  background:
    linear-gradient(90deg, rgba(224, 183, 88, 0.06), transparent 34%),
    rgba(1, 9, 10, 0.55);
  text-align: center;
}

.multiplayer-card-lobby__qr-expand {
  display: grid;
  justify-items: center;
  gap: 5px;
  width: min(100%, 264px);
  min-height: 0;
  padding: 9px;
  border: 0;
  color: #2ee5d4;
  background:
    linear-gradient(90deg, #2ee5d4 20px, transparent 20px) 0 0 / 100% 2px no-repeat,
    linear-gradient(#2ee5d4 20px, transparent 20px) 0 0 / 2px 100% no-repeat,
    linear-gradient(-90deg, #2ee5d4 20px, transparent 20px) 100% 100% / 100% 2px no-repeat,
    linear-gradient(0deg, #2ee5d4 20px, transparent 20px) 100% 100% / 2px 100% no-repeat,
    rgba(2, 27, 29, 0.72);
  box-shadow: 0 0 32px rgba(46, 229, 212, 0.18), inset 0 0 28px rgba(46, 229, 212, 0.08);
  font-family: var(--font-ui);
  font-size: 7px;
  font-weight: 800;
  cursor: zoom-in;
}

.multiplayer-card-lobby__qr-expand:hover,
.multiplayer-card-lobby__qr-expand:focus-visible {
  color: #f2dfb0;
  outline: 1px solid #2ee5d4;
  outline-offset: 5px;
}

.multiplayer-card-lobby__invite .multiplayer-qr-grid {
  width: min(142px, 100%);
  max-height: 100%;
  justify-self: center;
  border-color: rgba(46, 229, 212, 0.72);
  box-shadow: 0 0 24px rgba(46, 229, 212, 0.22);
}

.multiplayer-card-lobby__invite > strong {
  order: -1;
  margin-top: -1px;
  color: #f2dfb0;
  font-family: var(--font-display);
  font-size: clamp(18px, 1.55vw, 26px);
  font-weight: 400;
  letter-spacing: 0.12em;
}

.multiplayer-card-lobby__invite > .multiplayer-kicker {
  order: -2;
  color: #2ee5d4;
  font-family: var(--font-ui);
  font-size: 9px;
  letter-spacing: 0.08em;
}

.multiplayer-card-lobby__invite > .multiplayer-kicker::after {
  display: block;
  margin-top: 4px;
  color: #2ee5d4;
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.08em;
  content: "SCAN TO ENLIST";
}

.multiplayer-card-lobby__invite .multiplayer-invite-url {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  font-size: 5px !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.multiplayer-card-lobby__setup {
  display: grid;
  grid-template-columns: minmax(280px, 31%) minmax(0, 1fr);
  gap: 20px;
  min-width: 0;
  min-height: 0;
}

.multiplayer-card-lobby__settings {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(18px, 4vw, 68px);
  min-width: 0;
  padding: 6px 18px;
  border: 1px solid rgba(224, 183, 88, 0.34);
  background:
    linear-gradient(90deg, rgba(224, 183, 88, 0.055), transparent 22%, transparent 78%, rgba(224, 183, 88, 0.055)),
    rgba(2, 9, 10, 0.96);
  box-shadow: inset 0 -1px rgba(46, 229, 212, 0.08);
}

.multiplayer-card-lobby__settings > div {
  display: grid;
  grid-template-columns: auto repeat(3, minmax(38px, 1fr));
  align-items: center;
  gap: 5px;
}

.multiplayer-card-lobby__settings span {
  padding-right: 4px;
  color: #2ee5d4;
  font-family: var(--font-ui);
  font-size: 7px;
  font-weight: 800;
}

.multiplayer-card-lobby__settings button {
  min-height: 32px;
  border: 1px solid rgba(242, 223, 176, 0.28);
  color: #f2dfb0;
  background: rgba(2, 8, 8, 0.9);
  font-family: var(--font-ui);
  font-size: 9px;
  font-weight: 800;
}

.multiplayer-card-lobby__settings button[aria-pressed="true"] {
  border-color: #e0b758;
  color: #09100f;
  background: linear-gradient(180deg, #f2d37d, #d9a83f);
  box-shadow: 0 0 12px rgba(224, 183, 88, 0.2);
}

.multiplayer-card-lobby__seats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  min-height: 0;
}

.multiplayer-card-lobby__seats[data-players="3"] {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.multiplayer-card-lobby__seats[data-players="2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.multiplayer-card-lobby__seats:focus-visible {
  outline: 2px solid #2ee5d4;
  outline-offset: 4px;
}

.multiplayer-card-lobby__seat {
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto auto;
  gap: 5px;
  min-width: 0;
  min-height: 0;
  padding: 14px 13px 13px;
  overflow: hidden;
  border: 1px solid rgba(224, 183, 88, 0.54);
  background:
    linear-gradient(180deg, rgba(46, 229, 212, 0.055), transparent 34%),
    repeating-linear-gradient(0deg, transparent 0 2px, rgba(255, 255, 255, 0.012) 3px 4px),
    rgba(2, 12, 13, 0.96);
  box-shadow:
    0 12px 24px rgba(0, 0, 0, 0.48),
    inset 0 0 0 5px rgba(224, 183, 88, 0.025),
    inset 0 0 28px rgba(0, 0, 0, 0.5);
}

.multiplayer-card-lobby__seat:nth-child(even) {
  text-align: left;
}

.multiplayer-card-lobby__seat::before {
  position: absolute;
  z-index: 0;
  top: 50%;
  left: 50%;
  display: grid;
  width: min(72%, 128px);
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgba(224, 183, 88, 0.16);
  border-radius: 50%;
  color: rgba(224, 183, 88, 0.18);
  box-shadow: inset 0 0 0 9px rgba(224, 183, 88, 0.018), 0 0 0 9px rgba(224, 183, 88, 0.018);
  font-size: clamp(34px, 4vw, 66px);
  content: "★";
  transform: translate(-50%, -52%);
}

.multiplayer-card-lobby__seat.is-claimed {
  border-color: rgba(224, 183, 88, 0.84);
  box-shadow: 0 15px 32px rgba(0, 0, 0, 0.62), inset 0 0 28px rgba(224, 183, 88, 0.08);
}

.multiplayer-card-lobby__seat.is-cpu {
  border-color: rgba(46, 229, 212, 0.84);
  background: rgba(4, 28, 29, 0.92);
}

.multiplayer-card-lobby__seat-cpu-toggle {
  position: absolute;
  z-index: 3;
  top: 9px;
  right: 10px;
  display: grid;
  grid-template-columns: auto auto;
  align-items: center;
  gap: 6px;
  min-height: 29px;
  padding: 0 9px;
  border: 1px solid rgba(46, 229, 212, 0.48);
  color: #2ee5d4;
  background: rgba(2, 8, 8, 0.92);
  font-family: var(--font-ui);
  font-size: 7px;
  font-weight: 800;
}

.multiplayer-card-lobby__seat .multiplayer-card-lobby__seat-cpu-toggle span,
.multiplayer-card-lobby__seat .multiplayer-card-lobby__seat-cpu-toggle strong { color: inherit; font: inherit; }
.multiplayer-card-lobby__seat-cpu-toggle[aria-pressed="true"] { color: #071112; background: #2ee5d4; }
.multiplayer-card-lobby__seat-cpu-toggle:hover,
.multiplayer-card-lobby__seat-cpu-toggle:focus-visible { border-color: #e0b758; outline: 1px solid #e0b758; outline-offset: 2px; }
.multiplayer-card-lobby__seat-cpu-toggle:disabled { opacity: 0.42; }

.multiplayer-card-lobby__seat img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.58;
  filter: saturate(0.82) contrast(1.08);
}

.multiplayer-card-lobby__seat::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(2, 8, 8, 0.18), rgba(2, 8, 8, 0.52) 48%, rgba(2, 8, 8, 0.98));
  content: "";
}

.multiplayer-card-lobby__seat span,
.multiplayer-card-lobby__seat strong,
.multiplayer-card-lobby__seat small { position: relative; z-index: 2; }

.multiplayer-card-lobby__seat span,
.multiplayer-card-lobby__seat small {
  color: #2ee5d4;
  font-family: var(--font-ui);
  font-size: 7px;
  font-weight: 800;
}

.multiplayer-card-lobby__seat > span::after {
  display: inline-block;
  width: calc(100% - 54px);
  height: 1px;
  margin: 0 0 3px 8px;
  background: linear-gradient(90deg, rgba(46, 229, 212, 0.5), transparent);
  content: "";
}

.multiplayer-card-lobby__seat > small::after {
  display: block;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid rgba(224, 183, 88, 0.18);
  color: rgba(46, 229, 212, 0.68);
  content: "BUREAU DOSSIER // STANDBY";
}

.multiplayer-card-lobby__seat.is-claimed > small::after {
  content: "BUREAU DOSSIER // VERIFIED";
}

.multiplayer-card-lobby__seat strong {
  grid-row: 3;
  color: #f2dfb0;
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 400;
}

.multiplayer-card-lobby__start {
  position: relative;
  width: 100%;
  min-height: 62px;
  border: 1px solid #e0b758;
  color: #f2dfb0;
  background:
    linear-gradient(90deg, rgba(224, 183, 88, 0.12), transparent 28%, transparent 72%, rgba(224, 183, 88, 0.12)),
    rgba(4, 13, 13, 0.98);
  font-family: var(--font-display);
  box-shadow: inset 0 0 0 6px rgba(224, 183, 88, 0.035), 0 0 20px rgba(224, 183, 88, 0.12);
  font-size: clamp(15px, 1.8vw, 25px);
  letter-spacing: 0.065em;
}

.multiplayer-card-lobby__start:not(:disabled):hover,
.multiplayer-card-lobby__start:not(:disabled):focus-visible {
  color: #071112;
  background: linear-gradient(180deg, #f2d37d, #d9a83f);
  outline: 2px solid #2ee5d4;
  outline-offset: 2px;
}

.multiplayer-card-lobby__start:disabled {
  border-color: rgba(242, 223, 176, 0.28);
  color: rgba(242, 223, 176, 0.78);
  background:
    repeating-linear-gradient(135deg, rgba(224, 183, 88, 0.09) 0 3px, transparent 3px 9px) 24px center / 23% 18px no-repeat,
    repeating-linear-gradient(-135deg, rgba(224, 183, 88, 0.09) 0 3px, transparent 3px 9px) calc(100% - 24px) center / 23% 18px no-repeat,
    rgba(2, 8, 8, 0.96);
}

.multiplayer-card-qr-fullscreen {
  position: fixed;
  z-index: 100;
  inset: 0;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  justify-items: center;
  gap: 10px;
  padding: 24px 30px 18px;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 54%, rgba(46, 229, 212, 0.14), transparent 40%),
    repeating-radial-gradient(circle at 50% 58%, transparent 0 105px, rgba(46, 229, 212, 0.055) 106px 107px),
    rgba(1, 7, 8, 0.99);
}

.multiplayer-card-qr-fullscreen[hidden] { display: none; }

.multiplayer-card-qr-fullscreen__return {
  position: relative;
  justify-self: start;
  align-self: start;
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid rgba(242, 223, 176, 0.52);
  color: #f2dfb0;
  background: #061011;
  font-family: var(--font-ui);
  font-size: 9px;
  font-weight: 800;
}

.multiplayer-card-qr-fullscreen__return:hover,
.multiplayer-card-qr-fullscreen__return:focus-visible { border-color: #2ee5d4; outline: 2px solid #2ee5d4; outline-offset: 3px; }

.multiplayer-card-qr-fullscreen__title {
  position: relative;
  z-index: 2;
  display: grid;
  justify-items: center;
  gap: 3px;
  max-width: 680px;
  padding-bottom: 6px;
  text-align: center;
}

.multiplayer-card-qr-fullscreen__title h2 {
  margin: 0;
  color: #f2dfb0;
  font-family: var(--font-display);
  font-size: clamp(22px, 2vw, 32px);
  font-weight: 400;
  letter-spacing: 0.08em;
}

.multiplayer-card-qr-fullscreen__title p {
  margin: 0;
  color: rgba(242, 223, 176, 0.76);
  font-family: var(--font-ui);
  font-size: 9px;
  font-weight: 700;
}

.multiplayer-card-qr-fullscreen__stage {
  display: grid;
  align-self: center;
  justify-items: center;
  gap: 4px;
  padding: 10px 14px 8px;
  border: 1px solid rgba(224, 183, 88, 0.76);
  background: rgba(2, 12, 13, 0.94);
  box-shadow: 0 0 60px rgba(46, 229, 212, 0.18), 0 24px 60px rgba(0, 0, 0, 0.74);
}

.multiplayer-card-qr-fullscreen__stage .multiplayer-qr-grid {
  width: min(50vh, 42vw, 540px);
  border-color: #e0b758;
}

.multiplayer-card-qr-fullscreen__stage > span,
.multiplayer-card-qr-fullscreen > small {
  color: #2ee5d4;
  font-family: var(--font-ui);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.multiplayer-card-qr-fullscreen__stage > strong {
  color: #f2dfb0;
  font-family: var(--font-display);
  font-size: clamp(30px, 4vw, 62px);
  font-weight: 400;
  letter-spacing: 0.18em;
}

.multiplayer-card-table {
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border-color: rgba(224, 183, 88, 0.64);
  background:
    linear-gradient(rgba(0, 10, 13, 0.52), rgba(0, 10, 13, 0.72)),
    url("../assets/generated-art/ui/dossier-duel/card-table-render-v1.jpg") center / cover no-repeat;
}

/* A live shared table is the room, not a panel inside the multiplayer shell. */
#multiplayer-screen.bureau-shell-screen[data-multiplayer-view="table"] {
  grid-template-rows: minmax(0, 1fr);
  width: max(var(--game-width), calc(100vw / var(--game-scale)));
  height: max(var(--game-height), calc(100dvh / var(--game-scale)));
  background: #02090b !important;
}

#multiplayer-screen[data-multiplayer-view="table"] .multiplayer-command-header {
  position: absolute;
  z-index: 10;
  top: 12px !important;
  left: 12px !important;
  display: block !important;
  width: auto;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  pointer-events: none;
}

#multiplayer-screen[data-multiplayer-view="table"] .multiplayer-command-header::after,
#multiplayer-screen[data-multiplayer-view="table"] .bureau-shell-brand,
#multiplayer-screen[data-multiplayer-view="table"] .multiplayer-command-header__title,
#multiplayer-screen[data-multiplayer-view="table"] .multiplayer-command-header__status,
#multiplayer-screen[data-multiplayer-view="table"] .multiplayer-wire {
  display: none !important;
}

#multiplayer-screen[data-multiplayer-view="table"] .multiplayer-command-header__back {
  position: static !important;
  width: 94px;
  min-width: 94px !important;
  height: 44px;
  min-height: 44px !important;
  pointer-events: auto;
}

#multiplayer-screen[data-multiplayer-view="table"] .multiplayer-stage {
  grid-row: 1;
  min-height: 0;
  padding: 0;
}

#multiplayer-screen[data-multiplayer-view="table"] .multiplayer-card-table {
  width: 100%;
  height: 100%;
  border: 0;
  box-shadow: none;
}

#multiplayer-screen[data-multiplayer-view="table"] .multiplayer-card-table__header > div:first-child {
  padding-left: 126px;
}

.multiplayer-card-table__header {
  position: relative;
  z-index: 4;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 130px 110px;
  min-height: 54px;
  border-bottom: 1px solid rgba(224, 183, 88, 0.64);
  background: rgba(2, 8, 8, 0.88);
}

.multiplayer-card-table__header > div {
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 0 18px;
  border-right: 1px solid rgba(224, 183, 88, 0.24);
}

.multiplayer-card-table__header span,
.multiplayer-card-table__seat span,
.multiplayer-card-table__seat small,
.multiplayer-card-table__centre span {
  color: #2ee5d4;
  font-family: var(--font-ui);
  font-size: 7px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.multiplayer-card-table__header strong {
  color: #f2dfb0;
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 400;
}

.multiplayer-card-table__surface {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 240px minmax(0, 1fr);
  gap: 22px;
  align-items: center;
  min-height: 0;
  padding: 38px 80px;
  overflow: hidden;
}

.multiplayer-card-table__seat {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 174px;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.multiplayer-card-table__seat--1,
.multiplayer-card-table__seat--3 {
  grid-column: 1;
  grid-template-areas: "logo identity card";
}

.multiplayer-card-table__seat--2,
.multiplayer-card-table__seat--4 {
  grid-column: 3;
  grid-template-columns: 174px minmax(0, 1fr) 42px;
  grid-template-areas: "card identity logo";
  text-align: right;
}

.multiplayer-card-table__seat > img { grid-area: logo; }
.multiplayer-card-table__seat > div { grid-area: identity; }
.multiplayer-card-table__seat > .multiplayer-card-table-card { grid-area: card; }

.multiplayer-card-table__surface[data-players="3"],
.multiplayer-card-table__surface[data-players="4"] {
  grid-template-rows: repeat(2, minmax(0, 1fr));
  padding-block: 18px;
}

.multiplayer-card-table__surface[data-players="3"] .multiplayer-card-table__seat,
.multiplayer-card-table__surface[data-players="4"] .multiplayer-card-table__seat {
  grid-template-columns: 34px minmax(0, 1fr) 112px;
}

.multiplayer-card-table__surface[data-players="3"] .multiplayer-card-table__seat--2,
.multiplayer-card-table__surface[data-players="3"] .multiplayer-card-table__seat--4,
.multiplayer-card-table__surface[data-players="4"] .multiplayer-card-table__seat--2,
.multiplayer-card-table__surface[data-players="4"] .multiplayer-card-table__seat--4 {
  grid-template-columns: 112px minmax(0, 1fr) 34px;
}

.multiplayer-card-table__surface[data-players="3"] .multiplayer-card-table-card,
.multiplayer-card-table__surface[data-players="4"] .multiplayer-card-table-card {
  width: 112px;
}

.multiplayer-card-table__seat > img {
  width: 38px;
  height: 38px;
  object-fit: contain;
  filter: drop-shadow(0 0 9px rgba(46, 229, 212, 0.28));
}

.multiplayer-card-table__seat > div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.multiplayer-card-table__seat > div strong {
  overflow: visible;
  color: #f2dfb0;
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 400;
  line-height: 1.08;
  overflow-wrap: normal;
  word-break: normal;
  white-space: normal;
}

.multiplayer-card-table__seat.is-attacker > div {
  padding: 8px;
  border: 1px solid rgba(224, 183, 88, 0.7);
  background: rgba(224, 183, 88, 0.08);
}

.multiplayer-card-table-card {
  display: grid;
  place-items: center;
  width: 174px;
  aspect-ratio: 0.68;
  padding: 12px;
  overflow: hidden;
  border: 3px double rgba(224, 183, 88, 0.74);
  border-radius: 9px;
  color: #f2dfb0;
  background:
    radial-gradient(circle, rgba(224, 183, 88, 0.12), transparent 52%),
    repeating-linear-gradient(45deg, #07191b 0 7px, #041012 7px 14px);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.48);
  text-align: center;
}

.multiplayer-card-table-card > span,
.multiplayer-card-table-card > small {
  font-family: var(--font-ui);
  font-size: 6px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.multiplayer-card-table-card > strong {
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 400;
}

.multiplayer-card-table-card.is-concealed {
  position: relative;
  display: block;
  padding: 6px;
  background: #06110f;
}

.multiplayer-card-table-card > img.multiplayer-card-table-card__back-poster {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border: 1px solid rgba(224, 183, 88, 0.54);
  filter: saturate(0.88) contrast(1.04);
}

.multiplayer-card-table-card > .multiplayer-card-table-card__back-name {
  position: absolute;
  right: 6px;
  bottom: 6px;
  left: 6px;
  padding: 8px 5px 7px;
  color: #f1dfaa;
  background: rgba(2, 10, 9, 0.94);
  font-family: var(--font-ui);
  font-size: 8px;
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: 0.05em;
  text-align: center;
  text-transform: uppercase;
}

.multiplayer-card-table-card.is-revealed {
  grid-template-rows: minmax(0, 1fr) auto auto;
  place-items: stretch;
  padding: 7px;
  border-color: #e0b758;
  background: #e8ddbc;
  color: #132023;
  animation: multiplayer-card-table-reveal 520ms cubic-bezier(0.2, 0.78, 0.2, 1) both;
}

.multiplayer-card-table-card.is-winner {
  box-shadow: 0 0 0 2px #2ee5d4, 0 0 34px rgba(46, 229, 212, 0.62);
}

.multiplayer-card-table-card.is-loser {
  filter: saturate(0.56) brightness(0.74);
}

.multiplayer-card-table-card > img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  border: 1px solid rgba(20, 32, 35, 0.55);
}

.multiplayer-card-table-card > dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2px;
  margin: 5px 0 0;
}

.multiplayer-card-table-card > dl div {
  display: flex;
  justify-content: space-between;
  gap: 4px;
  padding: 2px 3px;
  border: 1px solid rgba(20, 32, 35, 0.22);
  font-family: var(--font-ui);
  font-size: 5px;
  font-weight: 800;
}

.multiplayer-card-table-card dt,
.multiplayer-card-table-card dd {
  margin: 0;
}

.multiplayer-card-table__centre {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  display: grid;
  justify-items: center;
  gap: 7px;
  width: 220px;
  padding: 16px;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(224, 183, 88, 0.58);
  color: #f2dfb0;
  background: rgba(2, 8, 8, 0.9);
  text-align: center;
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.52);
}

.multiplayer-card-table__centre.is-victory {
  isolation: isolate;
  width: min(48vw, 520px);
  min-height: 190px;
  align-content: center;
  gap: 9px;
  padding: 26px 58px;
  overflow: visible;
  border-color: rgba(255, 218, 105, 0.82);
  clip-path: polygon(4% 0, 96% 0, 100% 50%, 96% 100%, 4% 100%, 0 50%);
  background:
    linear-gradient(90deg, rgba(2, 13, 17, 0.94), rgba(14, 68, 75, 0.98) 23%, rgba(2, 17, 24, 0.99) 50%, rgba(14, 68, 75, 0.98) 77%, rgba(2, 13, 17, 0.94)),
    #031219;
  box-shadow: 0 28px 76px rgba(0, 0, 0, 0.76), 0 0 42px rgba(65, 232, 215, 0.18);
  animation: card-protocol-victory-banner 720ms cubic-bezier(0.08, 0.78, 0.16, 1) 160ms both;
}

.multiplayer-card-table__centre.is-victory > :not(.card-protocol-victory-impact) {
  position: relative;
  z-index: 2;
}

.multiplayer-card-table__centre.is-victory > span {
  color: #7ffff0;
  font-size: 9px;
  letter-spacing: 0.16em;
}

.multiplayer-card-table__centre.is-victory > strong {
  color: #fff1b0;
  font-size: clamp(38px, 4.4vw, 64px);
  line-height: 0.9;
  letter-spacing: 0.045em;
  text-shadow: 0 0 22px rgba(255, 218, 102, 0.34), 0 12px 30px rgba(0, 0, 0, 0.72);
  animation: card-protocol-outcome-strike 620ms cubic-bezier(0.08, 0.78, 0.16, 1) 220ms both;
}

.multiplayer-card-table__centre.is-victory > b {
  max-width: 100%;
  overflow: hidden;
  color: #f4d16d;
  font-size: clamp(18px, 2vw, 28px);
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.multiplayer-card-table__centre.is-total {
  width: min(62vw, 720px);
  min-height: 280px;
  border-width: 2px;
  background:
    radial-gradient(circle at 50% 50%, rgba(237, 193, 76, 0.24), transparent 52%),
    linear-gradient(90deg, rgba(2, 13, 17, 0.97), rgba(14, 73, 78, 0.99) 23%, rgba(3, 18, 25, 1) 50%, rgba(14, 73, 78, 0.99) 77%, rgba(2, 13, 17, 0.97));
  box-shadow: 0 36px 100px rgba(0, 0, 0, 0.86), 0 0 70px rgba(241, 198, 80, 0.22);
}

.multiplayer-card-table__centre.is-total > strong {
  font-size: clamp(52px, 6.4vw, 92px);
  animation-name: card-protocol-total-victory-title;
  animation-duration: 920ms;
}

.multiplayer-card-table__centre strong {
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 400;
}

.multiplayer-card-table__centre b {
  color: #e0b758;
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 400;
}

.multiplayer-card-table__centre p {
  margin: 0;
  color: rgba(242, 223, 176, 0.72);
  font-family: var(--font-ui);
  font-size: 7px;
  line-height: 1.4;
}

.multiplayer-card-table__centre button,
.multiplayer-card-table__exit {
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid #e0b758;
  color: #08100e;
  background: #e0b758;
  font-family: var(--font-ui);
  font-size: 8px;
  font-weight: 800;
}

.multiplayer-card-table__exit {
  position: absolute;
  z-index: 5;
  right: 12px;
  bottom: 12px;
  border-color: rgba(242, 223, 176, 0.28);
  color: #f2dfb0;
  background: rgba(2, 8, 8, 0.84);
}

@keyframes multiplayer-card-table-reveal {
  from { opacity: 0; transform: rotateY(82deg) scale(0.9); }
  to { opacity: 1; transform: rotateY(0) scale(1); }
}

.card-protocol-hosted-session {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  min-height: 100dvh;
  color: #f7e6b7;
  background:
    radial-gradient(circle at 50% 30%, rgba(46, 229, 212, 0.12), transparent 38%),
    #02090b;
}

.card-protocol-hosted-session.is-syncing {
  place-content: center;
  justify-items: center;
  gap: 14px;
  padding: 30px;
  text-align: center;
}

.card-protocol-hosted-session.is-syncing > span,
.card-protocol-hosted-session__instruction span,
.card-protocol-hosted-result > span {
  color: #5ce1d4;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.card-protocol-hosted-session.is-syncing > strong {
  font-family: var(--font-display);
  font-size: 24px;
}

.card-protocol-hosted-session.is-syncing > p,
.card-protocol-hosted-result > p {
  max-width: 34em;
  margin: 0;
  color: rgba(247, 230, 183, 0.74);
  font-family: var(--font-ui);
  font-size: 13px;
  line-height: 1.45;
}

.card-protocol-hosted-session.is-syncing > button {
  min-height: 48px;
  padding: 0 20px;
  border: 1px solid #e8b94b;
  color: #071112;
  background: #e8b94b;
  font-family: var(--font-ui);
  font-weight: 800;
}

.card-protocol-hosted-session__header {
  position: sticky;
  z-index: 5;
  top: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 76px;
  padding: max(14px, env(safe-area-inset-top)) 16px 12px 68px;
  border-bottom: 1px solid rgba(46, 229, 212, 0.32);
  background: rgba(2, 9, 11, 0.96);
}

.card-protocol-hosted-session__header > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.card-protocol-hosted-session__header span {
  overflow: hidden;
  color: #5ce1d4;
  font-family: var(--font-ui);
  font-size: 9px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.card-protocol-hosted-session__header strong {
  color: #f7e6b7;
  font-family: var(--font-display);
  font-size: clamp(20px, 6vw, 29px);
  font-weight: 400;
  letter-spacing: 0.035em;
}

.card-protocol-hosted-session__header dl {
  display: flex;
  gap: 12px;
  margin: 0;
}

.card-protocol-hosted-session__header dl div {
  display: grid;
  justify-items: end;
}

.card-protocol-hosted-session__header dt {
  color: #5ce1d4;
  font-family: var(--font-ui);
  font-size: 8px;
  font-weight: 800;
}

.card-protocol-hosted-session__header dd {
  margin: 0;
  color: #e8b94b;
  font-family: var(--font-display);
  font-size: 23px;
}

.card-protocol-hosted-session__instruction {
  display: grid;
  gap: 4px;
  padding: 15px 16px;
  border-bottom: 1px solid rgba(232, 185, 75, 0.22);
}

.card-protocol-hosted-session__instruction strong {
  color: #f7e6b7;
  font-family: var(--font-ui);
  font-size: 13px;
}

.card-protocol-hosted-hand {
  display: flex;
  gap: 18px;
  align-items: center;
  min-height: 0;
  padding: 24px max(18px, calc((100vw - min(84vw, 390px)) / 2));
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  touch-action: pan-x;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
}

.card-protocol-hosted-hand::-webkit-scrollbar { display: none; }

.card-protocol-hosted-hand > .card-protocol-card-wrap {
  scroll-snap-align: center;
}

.card-protocol-hosted-hand > .card-protocol-card-wrap.is-selected {
  filter: drop-shadow(0 0 18px rgba(232, 185, 75, 0.58));
}

.card-protocol-hosted-session__action {
  position: sticky;
  z-index: 5;
  bottom: 0;
  display: grid;
  gap: 7px;
  padding: 12px 16px max(14px, env(safe-area-inset-bottom));
  border-top: 1px solid rgba(46, 229, 212, 0.32);
  background: rgba(2, 9, 11, 0.96);
}

.card-protocol-hosted-session__action p {
  margin: 0;
  color: #ff8b78;
  font-family: var(--font-ui);
  font-size: 11px;
}

.card-protocol-hosted-session__action button {
  min-height: 54px;
  border: 1px solid #e8b94b;
  color: #071112;
  background: linear-gradient(180deg, #ffe49a, #e8b94b);
  font-family: var(--font-display);
  font-size: 16px;
  letter-spacing: 0.035em;
}

.card-protocol-hosted-session__action button:disabled {
  border-color: rgba(247, 230, 183, 0.4);
  color: rgba(247, 230, 183, 0.7);
  background: rgba(232, 185, 75, 0.06);
}

.card-protocol-hosted-result {
  position: relative;
  isolation: isolate;
  display: grid;
  align-content: start;
  justify-items: center;
  gap: 12px;
  min-height: 0;
  padding: 22px 14px max(24px, env(safe-area-inset-bottom));
  overflow-y: auto;
  text-align: center;
}

.card-protocol-hosted-result > :not(.card-protocol-victory-impact) {
  position: relative;
  z-index: 1;
}

.card-protocol-hosted-result__banner {
  display: grid;
  justify-items: center;
  gap: 7px;
  width: 100%;
}

.card-protocol-hosted-result__banner > span {
  color: #5ce1d4;
  font-family: var(--font-ui);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.card-protocol-hosted-result__banner > strong {
  color: #f7e6b7;
  font-family: var(--font-display);
  font-size: clamp(18px, 5vw, 25px);
  font-weight: 400;
}

.card-protocol-hosted-result__banner > small {
  color: rgba(247, 230, 183, 0.72);
  font-family: var(--font-ui);
  font-size: 11px;
  line-height: 1.35;
}

.card-protocol-hosted-result.is-victory {
  padding-top: 34px;
  background:
    radial-gradient(circle at 50% 13%, rgba(48, 210, 198, 0.2), transparent 34%),
    linear-gradient(180deg, #031820, #01090e 68%);
}

.card-protocol-hosted-result.is-victory .card-protocol-hosted-result__banner {
  min-height: 176px;
  align-content: center;
  padding: 24px 38px;
  clip-path: polygon(5% 0, 95% 0, 100% 50%, 95% 100%, 5% 100%, 0 50%);
  background:
    linear-gradient(90deg, transparent, rgba(14, 80, 85, 0.94) 15%, rgba(4, 25, 33, 0.98) 50%, rgba(14, 80, 85, 0.94) 85%, transparent),
    linear-gradient(180deg, rgba(255, 225, 131, 0.4), transparent 3px calc(100% - 3px), rgba(255, 225, 131, 0.4));
  filter: drop-shadow(0 18px 28px rgba(0, 0, 0, 0.62));
  animation: card-protocol-victory-banner 720ms cubic-bezier(0.08, 0.78, 0.16, 1) 160ms both;
}

.card-protocol-hosted-result.is-victory .card-protocol-hosted-result__banner > strong {
  color: #fff1b0;
  font-size: clamp(40px, 12vw, 58px);
  line-height: 0.92;
  letter-spacing: 0.04em;
  text-shadow: 0 0 20px rgba(255, 218, 102, 0.35), 0 12px 28px rgba(0, 0, 0, 0.72);
  animation: card-protocol-outcome-strike 620ms cubic-bezier(0.08, 0.78, 0.16, 1) 220ms both;
}

.card-protocol-hosted-result.is-total .card-protocol-hosted-result__banner {
  min-height: 230px;
  background:
    radial-gradient(circle at 50% 50%, rgba(241, 198, 80, 0.22), transparent 56%),
    linear-gradient(90deg, transparent, rgba(14, 80, 85, 0.96) 15%, rgba(4, 25, 33, 0.99) 50%, rgba(14, 80, 85, 0.96) 85%, transparent),
    linear-gradient(180deg, rgba(255, 225, 131, 0.52), transparent 3px calc(100% - 3px), rgba(255, 225, 131, 0.52));
}

.card-protocol-hosted-result.is-total .card-protocol-hosted-result__banner > strong {
  font-size: clamp(46px, 14vw, 66px);
  animation-name: card-protocol-total-victory-title;
  animation-duration: 920ms;
}

.card-protocol-hosted-result .card-protocol-mobile-comparison-cards {
  width: 100%;
}

.card-protocol-hosted-result .card-protocol-mobile-comparison-card {
  flex-basis: min(82vw, 380px);
}

.card-protocol-hosted-promotion {
  display: grid;
  gap: 8px;
  width: 100%;
  padding: 14px;
  border: 1px solid rgba(232, 185, 75, 0.62);
  background: rgba(232, 185, 75, 0.07);
  text-align: left;
}

.card-protocol-hosted-promotion > span {
  color: #5ce1d4;
  font-family: var(--font-ui);
  font-size: 9px;
  font-weight: 800;
}

.card-protocol-hosted-promotion > strong {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 400;
}

.card-protocol-hosted-promotion > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.card-protocol-hosted-promotion button {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  min-height: 48px;
  padding: 8px 10px;
  border: 1px solid rgba(247, 230, 183, 0.28);
  color: #f7e6b7;
  background: #071315;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
}

.card-protocol-hosted-promotion button b { color: #e8b94b; }

@media (max-width: 980px) {
  .multiplayer-mode-card { flex-basis: calc(50% - 9px); }
  .multiplayer-card-lobby { overflow-y: auto; }
  .multiplayer-card-lobby__body { grid-template-columns: 1fr; }
  .multiplayer-card-lobby__invite .multiplayer-qr-grid { width: 180px; }
  .multiplayer-card-table__surface { padding: 28px 32px; }
  .multiplayer-card-table__seat { grid-template-columns: 32px minmax(0, 1fr) 140px; }
  .multiplayer-card-table-card { width: 140px; }
}

@media (max-width: 620px) {
  .multiplayer-mode-select { padding-inline: 64px; }
  .multiplayer-mode-card { flex-basis: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .multiplayer-mode-card,
  .multiplayer-mode-card > img,
  .multiplayer-mode-select__grid,
  .multiplayer-card-table-card.is-revealed { animation: none; transition: none; }

  .multiplayer-card-table__centre.is-victory,
  .multiplayer-card-table__centre.is-victory > strong,
  .card-protocol-hosted-result.is-victory .card-protocol-hosted-result__banner,
  .card-protocol-hosted-result.is-victory .card-protocol-hosted-result__banner > strong {
    animation-duration: 1ms;
    animation-delay: 0ms;
  }
}
