.map-backdrop .bp-globe, .map-backdrop .bp-beam { display: none; }
.map-header { top: calc(var(--u) * 40); height: calc(var(--u) * 140); }
.map-header .bp-header-sub { white-space: normal; text-align: center; max-width: calc(var(--u) * 600); line-height: 1.3; }
.map-score {
  position: absolute;
  left: 50%;
  top: calc(var(--u) * 186);
  transform: translateX(-50%);
  display: flex;
  align-items: baseline;
  gap: calc(var(--u) * 10);
  padding: calc(var(--u) * 4) calc(var(--u) * 18);
  border-radius: 999px;
  background: rgba(6, 11, 31, 0.75);
  border: calc(var(--u) * 2) solid rgba(242, 193, 78, 0.5);
  font-size: calc(var(--u) * 20);
  text-transform: uppercase;
  color: #e9d6a0;
}
.map-score b { font-family: var(--display); font-size: calc(var(--u) * 28); color: var(--gold); font-variant-numeric: tabular-nums; }

.map-pins { position: absolute; inset: 0; }
.map-pin {
  position: absolute;
  left: calc(var(--px, 0.5) * 100%);
  top: calc(var(--py, 0.5) * 100%);
  transform: translate(-50%, calc(var(--u) * -42));
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--u) * 4);
  cursor: pointer;
  transition: transform 160ms ease-out;
}
.map-face-wrap { position: relative; display: inline-flex; }
.map-pin .map-face { width: calc(var(--u) * 84); height: calc(var(--u) * 84); border-width: calc(var(--u) * 4); }
.map-pin-label { position: relative; z-index: 1; }
.map-pin-label {
  max-width: calc(var(--u) * 150);
  padding: calc(var(--u) * 2) calc(var(--u) * 10);
  border-radius: calc(var(--u) * 14);
  background: rgba(6, 11, 31, 0.82);
  font-size: calc(var(--u) * 16);
  font-weight: 800;
  line-height: 1.1;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #fff4d0;
}
.map-pin.is-open .map-face { filter: saturate(0.6) brightness(0.85); border-color: var(--gold-mid); }
.map-pin.is-locked .map-face { filter: grayscale(1) brightness(0.45); border-color: #6b6b74; }
.map-pin.is-locked .map-pin-label { color: #c4c4cc; }
.map-lock {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(var(--u) * 1);
  color: #e9e4d2;
  font-family: var(--display);
  font-size: calc(var(--u) * 24);
  line-height: 1;
  text-shadow: 0 calc(var(--u) * 2) calc(var(--u) * 4) rgba(0, 0, 0, 0.9);
}
.map-lock .bp-icon-lock { width: calc(var(--u) * 30); height: calc(var(--u) * 30); }
.bp-icon-lock svg { width: 100%; height: 100%; display: block; }
.map-pin.is-landing .map-face { filter: none; border-color: var(--gold); }
.map-pin.is-landing .map-pin-label { box-shadow: 0 0 0 calc(var(--u) * 2) var(--gold-mid); }
.map-pin.is-claimed .map-face { border-color: var(--gold-hi); box-shadow: 0 0 0 calc(var(--u) * 3) #3a2605, 0 0 calc(var(--u) * 26) rgba(242, 182, 50, 0.8); }
.map-pin.is-claimed .map-pin-label { background: linear-gradient(180deg, #f5cc5a, #b8801b); color: #1a1102; }
.map-pin .bp-icon-check {
  position: absolute;
  right: calc(var(--u) * -8);
  bottom: calc(var(--u) * -4);
  width: calc(var(--u) * 38);
  height: calc(var(--u) * 38);
  padding: calc(var(--u) * 6);
  border-radius: 50%;
  background: var(--gold);
  color: #1a1102;
  box-shadow: 0 0 0 calc(var(--u) * 2) #3a2605;
}
.map-pin.is-active .map-face { border-color: #fff; animation: map-pulse 1.4s ease-in-out infinite; }
.map-pin.is-selected { transform: translate(-50%, calc(var(--u) * -42)) scale(1.14); z-index: 1; }
.map-pin.is-selected .map-face { filter: none; box-shadow: 0 0 0 calc(var(--u) * 3) var(--gold), 0 0 calc(var(--u) * 34) calc(var(--u) * 6) rgba(242, 182, 50, 0.75); }
.map-pin.is-selected.is-locked .map-face { filter: grayscale(1) brightness(0.55); }
.map-dots { display: flex; gap: calc(var(--u) * 5); }
.map-dots i { width: calc(var(--u) * 12); height: calc(var(--u) * 12); border-radius: 50%; background: rgba(255, 255, 255, 0.25); box-shadow: 0 0 0 calc(var(--u) * 2) rgba(6, 11, 31, 0.8); }
.map-dots i.is-won { background: var(--gold); }

.map-panel {
  position: absolute;
  left: calc(var(--u) * 40);
  right: calc(var(--u) * 40);
  bottom: calc(var(--u) * 40);
  display: flex;
  flex-direction: column;
  gap: calc(var(--u) * 12);
  padding: calc(var(--u) * 22) calc(var(--u) * 28) calc(var(--u) * 26);
}
.map-name { font-family: var(--display); font-size: calc(var(--u) * 40); line-height: 1.05; text-transform: uppercase; color: var(--gold); }
.map-info { font-size: calc(var(--u) * 24); font-weight: 700; color: #fff4d0; min-height: 1.25em; }
.map-party { display: flex; align-items: center; gap: calc(var(--u) * 14); flex-wrap: wrap; padding: calc(var(--u) * 6) 0; }
.map-member { position: relative; display: inline-flex; flex-direction: column; align-items: center; gap: calc(var(--u) * 2); }
.map-member .bp-avatar { width: calc(var(--u) * 64); height: calc(var(--u) * 64); }
.map-member.is-current .bp-avatar { border-color: #fff; box-shadow: 0 0 0 calc(var(--u) * 2) #3a2605, 0 0 calc(var(--u) * 18) rgba(242, 182, 50, 0.9); }
.map-level { position: relative; z-index: 1; margin-top: calc(var(--u) * -12); padding: 0 calc(var(--u) * 8); border-radius: 999px; background: var(--gold); color: #1a1102; font-family: var(--display); font-size: calc(var(--u) * 16); }
.map-perks { display: inline-flex; align-items: center; gap: calc(var(--u) * 6); margin-left: auto; font-family: var(--display); font-size: calc(var(--u) * 26); color: var(--gold); }
.scene .map-enter { min-height: calc(var(--u) * 104); font-size: calc(var(--u) * 42); }

[data-layout="landscape"] .map-header { top: calc(var(--u) * 10); height: calc(var(--u) * 100); }
[data-layout="landscape"] .map-header .bp-header-title { font-size: calc(var(--u) * 46); }
[data-layout="landscape"] .map-header .bp-header-sub { font-size: calc(var(--u) * 20); max-width: none; }
[data-layout="landscape"] .map-score { left: auto; right: calc(var(--u) * 40); top: calc(var(--u) * 30); transform: none; }
[data-layout="landscape"] .map-pin .map-face { width: calc(var(--u) * 76); height: calc(var(--u) * 76); }
[data-layout="landscape"] .map-pin { transform: translate(-50%, calc(var(--u) * -38)); }
[data-layout="landscape"] .map-pin.is-selected { transform: translate(-50%, calc(var(--u) * -38)) scale(1.12); }
[data-layout="landscape"] .map-pin-label { font-size: calc(var(--u) * 15); max-width: calc(var(--u) * 170); }
[data-layout="landscape"] .map-panel {
  left: calc(var(--u) * 60);
  right: calc(var(--u) * 60);
  bottom: calc(var(--u) * 20);
  display: grid;
  grid-template-columns: 1fr auto calc(var(--u) * 320);
  grid-template-rows: auto auto;
  column-gap: calc(var(--u) * 24);
  row-gap: calc(var(--u) * 4);
  align-items: center;
  padding: calc(var(--u) * 16) calc(var(--u) * 24);
}
[data-layout="landscape"] .map-name { grid-column: 1; grid-row: 1; font-size: calc(var(--u) * 34); }
[data-layout="landscape"] .map-info { grid-column: 1; grid-row: 2; font-size: calc(var(--u) * 21); }
[data-layout="landscape"] .map-party { grid-column: 2; grid-row: 1 / span 2; flex-wrap: nowrap; }
[data-layout="landscape"] .map-enter { grid-column: 3; grid-row: 1 / span 2; }
[data-layout="landscape"] .scene .map-enter { min-height: calc(var(--u) * 92); font-size: calc(var(--u) * 36); }

.map-confirm {
  position: absolute;
  inset: calc(var(--bleed-t, 0px) * -1) calc(var(--bleed-r, 0px) * -1) calc(var(--bleed-b, 0px) * -1) calc(var(--bleed-l, 0px) * -1);
  z-index: 5;
  display: none;
  align-items: flex-end;
  justify-content: center;
  padding: calc(var(--bleed-t, 0px) + var(--u) * 40) calc(var(--bleed-r, 0px) + var(--u) * 40) calc(var(--bleed-b, 0px) + var(--u) * 40) calc(var(--bleed-l, 0px) + var(--u) * 40);
  background: rgba(3, 6, 18, 0.72);
}
.map-confirm[data-open="true"] { display: flex; }
.map-confirm-sheet {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--u) * 16);
  padding: calc(var(--u) * 30) calc(var(--u) * 30) calc(var(--u) * 30);
  text-align: center;
}
.map-confirm-faces { display: flex; flex-direction: column; align-items: center; gap: calc(var(--u) * 8); }
.map-confirm-face.bp-avatar { width: calc(var(--u) * 120); height: calc(var(--u) * 120); border-width: calc(var(--u) * 4); }
.map-confirm-place { font-family: var(--display); font-size: calc(var(--u) * 44); line-height: 1.05; text-transform: uppercase; color: var(--gold); }
.map-confirm-ask { font-size: calc(var(--u) * 32); font-weight: 800; line-height: 1.2; color: #fff4d0; }
.map-confirm-final {
  display: flex;
  align-items: center;
  gap: calc(var(--u) * 12);
  padding: calc(var(--u) * 12) calc(var(--u) * 18);
  border-radius: calc(var(--u) * 14);
  background: rgba(200, 32, 42, 0.18);
  border: calc(var(--u) * 2) solid rgba(240, 90, 80, 0.6);
  font-size: calc(var(--u) * 24);
  font-weight: 700;
  line-height: 1.3;
  text-align: left;
  color: #ffe2d6;
}
.map-confirm-final .bp-icon-lock { flex: none; width: calc(var(--u) * 34); height: calc(var(--u) * 34); color: #f5cc5a; }
.map-confirm-actions { display: flex; gap: calc(var(--u) * 18); width: 100%; }
.scene .map-confirm-actions .bp-btn { flex: 1 1 0; min-width: 0; min-height: calc(var(--u) * 100); font-size: calc(var(--u) * 38); }
.scene .map-confirm-actions .bp-btn-navy { flex: 0.8 1 0; font-size: calc(var(--u) * 30); }
[data-layout="landscape"] .map-confirm { align-items: center; }
[data-layout="landscape"] .map-confirm-sheet { width: calc(var(--u) * 760); gap: calc(var(--u) * 12); padding: calc(var(--u) * 24); }
[data-layout="landscape"] .map-confirm-face.bp-avatar { width: calc(var(--u) * 96); height: calc(var(--u) * 96); }
[data-layout="landscape"] .scene .map-confirm-actions .bp-btn { min-height: calc(var(--u) * 84); font-size: calc(var(--u) * 32); }

@keyframes map-pulse {
  0%, 100% { box-shadow: 0 0 0 calc(var(--u) * 3) #3a2605, 0 0 calc(var(--u) * 8) rgba(255, 255, 255, 0.4); }
  50% { box-shadow: 0 0 0 calc(var(--u) * 3) #3a2605, 0 0 calc(var(--u) * 30) calc(var(--u) * 6) rgba(255, 255, 255, 0.8); }
}
