.swap-map-section{padding-top:55px;background:linear-gradient(180deg,#090c1520,#090c1560)}.swap-map-section .section-top{align-items:center}.map-live-count{color:#a5ffd4;font-size:15px}.swap-map{position:relative;border:1px solid #62d9ee66;border-radius:20px;padding:28px;background:radial-gradient(ellipse at 50% 50%,#72208733,transparent 70%),#080d18c9;box-shadow:0 0 70px #7f36ec20;overflow:hidden}.map-entry,.map-aisle{text-align:center;letter-spacing:3px;font-size:12px;color:#8ce7ff;padding:12px}.map-entry span,.map-aisle span{display:block;letter-spacing:1px;color:#bdc3d7;margin-top:8px}.swap-booths{display:grid;grid-template-columns:repeat(4,1fr);gap:30px 20px;margin:25px 0}.swap-booth{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:220px;border:1px solid #717c9855;background:linear-gradient(155deg,#22283bba,#0b101dcc);border-radius:12px;padding:20px;color:#d5d9e8;cursor:pointer;font:inherit;text-align:center;transition:transform .2s,border-color .2s}.swap-booth:hover{transform:translateY(-5px);border-color:#8ce7ff}.booth-number{align-self:flex-start;font-size:10px;letter-spacing:2px;color:#9ba7be}.brand-booth img{width:125px;height:100px;object-fit:contain}.brand-booth{border-color:#9c58f4;background:linear-gradient(145deg,#55278580,#0a253fcc)}.brand-booth.is-open{animation:booth-glow 3s ease-in-out infinite}.shop-status{color:#a5ffd4;font-size:11px;letter-spacing:1px}.brand-booth>span:not(.booth-number):not(.shop-status){font-size:12px}.booth-visit{color:#8ce7ff}.empty-sign{font-size:35px;font-weight:300;color:#7798b1}.empty-booth strong{font-size:13px;color:#c0c9dc}.empty-booth>span:last-child{font-size:11px;color:#929db4}.map-aisle{border-top:1px dashed #66d4f044;padding-top:22px}.swap-map-controls{display:flex;align-items:center;gap:20px;margin-top:20px;flex-wrap:wrap}.swap-map-controls p{max-width:650px;margin:0;font-size:13px;color:#c1c8d9}.swap-shop-dialog[open]{display:block;max-width:650px;padding:40px;background:#0e1525;color:#edf2ff;border:1px solid #a45dff;border-radius:16px;max-height:90vh;overflow:auto}.shop-dialog-logo{width:150px;display:block;margin-bottom:15px}.shop-dialog-status{color:#a5ffd4}.swap-shop-dialog h2{font-size:30px}.shop-products{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:25px 0}.shop-products a{padding:20px;border:1px solid #5a6280;border-radius:10px;color:#eef2ff;text-decoration:none;background:#1c2340}.shop-products strong,.shop-products span{display:block;margin-bottom:10px}.shop-products span{font-size:13px;color:#b9c8e8}@keyframes booth-glow{0%,100%{box-shadow:0 0 15px #bd57ff30, inset 0 0 15px #55e5ff10}50%{box-shadow:0 0 30px #bd57ff70, inset 0 0 25px #55e5ff20}}@media(max-width:900px){.swap-booths{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.swap-map{padding:15px}.swap-booths{gap:12px}.swap-booth{padding:12px;min-height:190px}.brand-booth img{width:95px;height:85px}.swap-booth strong{font-size:12px}.shop-products{grid-template-columns:1fr}.swap-shop-dialog[open]{padding:30px 20px}}@media(prefers-reduced-motion:reduce){.brand-booth.is-open{animation:none}.swap-booth{transition:none}}
.map-directory-controls{display:flex;gap:20px;margin:20px 0;align-items:end}.map-directory-controls label{display:flex;flex-direction:column;gap:8px;color:#d5d9e8}.map-directory-controls label:first-child{flex:1}.map-directory-controls input,.map-directory-controls select{padding:13px;border:1px solid #697590;background:#11192be0;color:#eef2ff;border-radius:6px;font:inherit;width:100%}.map-pagination{display:flex;justify-content:center;align-items:center;gap:25px;flex-wrap:wrap;padding:22px 0;color:#c7d1e5;font-size:14px}.map-pagination button:disabled{opacity:.35;cursor:default}.map-no-results{text-align:center;padding:40px}.map-pagination #map-expand{margin-left:auto}@media(max-width:480px){.map-directory-controls{flex-direction:column;align-items:stretch}.map-pagination{gap:15px}.map-pagination #map-expand{margin:auto}}

/* Outpost shop fronts share Voxel City's stepped roofs, window banks and neon doors. */
body.outpost-body #swap-map .swap-booths {
  grid-template-columns: repeat(2,minmax(0,1fr));
  grid-auto-rows: minmax(570px,auto)!important;
}
body.outpost-body #swap-map .swap-booth {
  min-height:570px!important;
  padding:58px 24px 104px!important;
  gap:9px!important;
  border:2px solid color-mix(in srgb,var(--roof-accent) 48%,#40536c);
  border-radius:3px;
  background:linear-gradient(90deg,#081221 0 9px,transparent 9px calc(100% - 9px),#081221 calc(100% - 9px)),linear-gradient(155deg,var(--roof-tint),#131f33 70%);
  box-shadow:inset 0 0 0 5px #152439,inset 0 0 0 7px #5b718077,8px 12px 0 #050b18b8,0 16px 26px #02071480;
  transform:none!important;
  animation:none;
  transition:border-color .2s,box-shadow .2s;
}
body.outpost-body #swap-map .swap-booth:before,
body.outpost-body #swap-map .swap-booth.is-open:before {
  inset:48px 18px 98px;
  border:1px solid color-mix(in srgb,var(--roof-accent) 34%,#273a52);
  border-radius:5px;
  background:linear-gradient(145deg,#14263cf5,#0a1529f5);
  box-shadow:0 6px 12px #0005,inset 0 1px #8dd7ec19;
  transform:none;
}
body.outpost-body #swap-map .swap-booth:after {
  top:17px!important;right:17px!important;bottom:auto!important;left:auto!important;
  width:30px!important;height:17px!important;max-width:none;max-height:none;
  border:1px solid #728699;border-radius:0;
  background:repeating-linear-gradient(0deg,#081323 0 3px,#52647b 3px 4px);
  box-shadow:3px 3px #050b1899;opacity:.9;z-index:1;
}
body.outpost-body #swap-map .swap-booth.is-open {
  border-color:var(--roof-accent);
  box-shadow:inset 0 0 0 5px #17283b,inset 0 0 0 7px #65858b99,8px 12px 0 #050b18b8,0 0 26px color-mix(in srgb,var(--roof-accent) 17%,transparent);
}
body.outpost-body #swap-map .swap-booth:hover,
body.outpost-body #swap-map .swap-booth:focus-visible {
  border-color:var(--roof-accent);
  box-shadow:inset 0 0 0 5px #17283b,inset 0 0 0 7px #65858b99,8px 12px 0 #050b18b8,0 0 30px color-mix(in srgb,var(--roof-accent) 30%,transparent);
}
body.outpost-body #swap-map .swap-booth>.shop-architecture {
  position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;
  color:var(--roof-accent);font-size:0!important;line-height:0!important;
}
.shop-roofline {
  position:absolute;left:9px;right:9px;top:8px;height:30px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--roof-accent) 65%,#294a62) 0 5px,#25384e 5px 22px,#0a1525 22px);
  border-top:1px solid var(--roof-accent);border-bottom:2px solid #466278;
  box-shadow:0 3px 0 #050d1b;
}
.shop-roofline:before,.shop-roofline:after {
  content:'';position:absolute;top:13px;width:3px;height:24px;
  background:var(--roof-accent);opacity:.65;
}
.shop-roofline:before{left:6px}.shop-roofline:after{right:6px}
.shop-window-bank {
  position:absolute;left:18px;right:18px;bottom:22px;height:60px;
  display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(3,10px);gap:9px 8px;
}
.shop-window-bank i {
  display:block;background:#293849;border:2px solid #061022;
  box-shadow:0 2px 0 #091320;
}
.shop-window-bank i.is-lit {
  background:color-mix(in srgb,var(--roof-accent) 72%,#f0faff);
  box-shadow:0 0 6px color-mix(in srgb,var(--roof-accent) 40%,transparent),0 3px 0 color-mix(in srgb,var(--roof-accent) 16%,#122438);
}
.shop-window-bank i:nth-child(9n + 5){visibility:hidden}
.shop-street-trim {
  position:absolute;bottom:9px;left:10px;right:10px;height:4px;
  background:linear-gradient(90deg,var(--roof-accent) calc(50% - 25px),transparent calc(50% - 25px) calc(50% + 25px),var(--roof-accent) calc(50% + 25px));opacity:.7;
}
body.outpost-body #swap-map .swap-booth .roof-door {
  width:38px;height:42px;border:2px solid var(--roof-accent);border-bottom:0;border-radius:0;
  background:linear-gradient(90deg,#122638 46%,#5cb6cb55 48% 51%,#122638 53%);
  box-shadow:0 0 14px color-mix(in srgb,var(--roof-accent) 28%,transparent);z-index:1;
}
body.outpost-body #swap-map .swap-booth.door-faces-up .roof-door {
  height:32px;border:2px solid var(--roof-accent);border-top:0;border-radius:0;
}
body.outpost-body #swap-map .swap-booth>.booth-number {
  font-size:13px!important;padding:4px 9px!important;border-left:2px solid var(--roof-accent);
  background:#071321;color:#cadbe8;letter-spacing:.08em;
}
body.outpost-body #swap-map .swap-booth>strong {
  width:100%;max-width:320px;font-size:20px!important;line-height:1.35!important;
  color:#f1f7ff;text-shadow:0 0 12px color-mix(in srgb,var(--roof-accent) 25%,transparent);
}
body.outpost-body #swap-map .swap-booth>img {
  width:76px!important;height:76px!important;min-height:76px!important;
  border:1px solid color-mix(in srgb,var(--roof-accent) 30%,transparent);background:#071220;
}
body.outpost-body #swap-map .swap-booth>.shop-status{color:#a6ffda;letter-spacing:.04em}
body.outpost-body #swap-map .swap-booth>.store-bot-pair{margin-top:3px!important}
body.outpost-body #swap-map .empty-booth {justify-content:center!important}
body.outpost-body #swap-map .empty-booth>.booth-number{position:absolute!important;top:62px}
body.outpost-body #swap-map .empty-booth>.empty-sign{color:var(--roof-accent);opacity:.7}
body.outpost-body #swap-map .empty-booth>.shop-architecture{opacity:.5}
body.outpost-body #swap-map .empty-booth:before{background:linear-gradient(145deg,#102035e8,#0a1529f5)}
@media(max-width:600px){
  body.outpost-body #swap-map .swap-booths{grid-auto-rows:minmax(660px,auto)!important}
  body.outpost-body #swap-map .swap-booth{min-height:660px!important;padding:54px 9px 88px!important;gap:9px!important}
  body.outpost-body #swap-map .swap-booth:before{inset:44px 6px 80px}
  body.outpost-body #swap-map .swap-booth:after{width:20px!important;right:10px!important;height:14px!important;top:16px!important}
  body.outpost-body #swap-map .swap-booth>strong{font-size:16px!important}
  body.outpost-body #swap-map .swap-booth>.booth-number{font-size:12px!important;padding:3px 4px!important;letter-spacing:0}
  body.outpost-body #swap-map .swap-booth>span:not(.empty-sign):not(.roof-door):not(.store-bot-pair):not(.shop-architecture){font-size:14px!important}
  body.outpost-body #swap-map .swap-booth .sv-vip-badge{font-size:13px!important;padding:4px!important}
  body.outpost-body #swap-map .swap-booth>.booth-visit{height:auto!important;min-height:48px!important;font-size:14px!important;padding:10px 5px!important;white-space:normal!important}
  body.outpost-body #swap-map .swap-booth .store-bot-caption{font-size:13px!important}
  body.outpost-body #swap-map .swap-booth .store-bot-rep{width:20px;height:28px}
  .shop-roofline{left:6px;right:6px}
  .shop-window-bank{left:10px;right:10px;bottom:18px;height:50px;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(3,8px);gap:7px 5px}
  .shop-window-bank i:nth-child(n + 22){display:none}
  .shop-window-bank i:nth-child(9n + 5){visibility:visible}
  .shop-window-bank i:nth-child(7n + 4){visibility:hidden}
  body.outpost-body #swap-map .swap-booth .roof-door{width:26px;height:34px}
  body.outpost-body #swap-map .swap-booth.door-faces-up .roof-door{height:27px}
  .shop-street-trim{background:linear-gradient(90deg,var(--roof-accent) calc(50% - 18px),transparent calc(50% - 18px) calc(50% + 18px),var(--roof-accent) calc(50% + 18px))}
}
@media(prefers-reduced-motion:reduce){body.outpost-body #swap-map .swap-booth{transition:none}}

/* One standard vendor building; the studio owns the exclusive flagship facade. */
body.outpost-body #swap-map .swap-booth {
  --roof-accent:#dc9aff;
  --roof-tint:#413051;
  --roof-angle:0deg;
}
body.outpost-body #swap-map #brand-spot {
  --roof-accent:#83eeff;
  --roof-tint:#153c58;
  border-color:#8ff1ff;
  background:linear-gradient(135deg,#174561,#18253f 45%,#392047);
  box-shadow:inset 0 0 0 4px #101b32,inset 0 0 0 6px #7bdaedaa,8px 12px 0 #050b18b8,-4px 0 22px #53daff33,5px 0 26px #b352ef44;
}
body.outpost-body #swap-map #brand-spot:before {
  border-color:#b994df;
  background:radial-gradient(ellipse at 22% 10%,#2a709840,transparent 55%),radial-gradient(ellipse at 90% 65%,#993dc230,transparent 65%),linear-gradient(150deg,#152b43,#131b35 65%,#201932);
  box-shadow:0 7px 18px #0007,inset 0 1px 0 #d3b1f44d,inset 0 0 30px #579ce818;
}
#brand-spot .shop-roofline {
  background:linear-gradient(90deg,#66e7ff,#9c8bff 55%,#dc79ff) top/100% 6px no-repeat,linear-gradient(180deg,#263e60,#16253d);
  border-color:#9af0ff;box-shadow:0 3px 0 #060e22,0 0 15px #7fc7ff44;
}
#brand-spot .shop-architecture:before {
  content:'';position:absolute;inset:44px 9px 9px;
  background:linear-gradient(90deg,#69e7ff 0 3px,transparent 3px calc(100% - 3px),#d77bff calc(100% - 3px));
  opacity:.8;
}
.shop-founder-crest {
  position:absolute;top:6px;left:50%;width:34px;height:34px;transform:translateX(-50%);
  padding:3px;background:#0a142c;border:1px solid #b992ef;border-radius:5px;
  box-shadow:0 0 13px #a564ff88;box-sizing:border-box;
}
.shop-founder-crest svg{display:block;width:100%;height:100%}
body.outpost-body #swap-map #brand-spot>.booth-number {
  color:#ffe6a2;border-left-color:#ffd273;letter-spacing:.1em;
}
body.outpost-body #swap-map #brand-spot>img {
  width:88px!important;height:88px!important;min-height:88px!important;
  border-color:#9aeaff88;box-shadow:0 0 22px #67d7ff26,0 0 34px #bd6cf82b;
}
body.outpost-body #swap-map #brand-spot>strong {
  color:#b7f5ff;font-size:22px!important;text-shadow:0 0 14px #57d7ff66;
}
#brand-spot .shop-window-bank i.is-lit:nth-child(3n){background:#d2a4ff;box-shadow:0 0 8px #b173ff55}
#brand-spot .shop-street-trim {
  background:linear-gradient(90deg,#80ebff calc(50% - 25px),transparent calc(50% - 25px) calc(50% + 25px),#d28bff calc(50% + 25px));
}
body.outpost-body #swap-map #brand-spot .roof-door {
  border-color:#b8f5ff;background:linear-gradient(90deg,#184056 47%,#aedbff99 48% 51%,#38244f 52%);
  box-shadow:-5px 0 18px #65d9ff44,5px 0 18px #c779ff55;
}
@media(max-width:600px){
  body.outpost-body #swap-map #brand-spot>strong{font-size:17px!important}
  body.outpost-body #swap-map #brand-spot>img{width:68px!important;height:68px!important;min-height:68px!important}
  body.outpost-body #swap-map #brand-spot>.booth-number{letter-spacing:0;font-size:11px!important}
  #brand-spot .shop-founder-crest{width:28px;height:28px;top:8px}
  #brand-spot .shop-street-trim{background:linear-gradient(90deg,#80ebff calc(50% - 18px),transparent calc(50% - 18px) calc(50% + 18px),#d28bff calc(50% + 18px))}
}

/* Paid, server-authorized cosmetics; missing entitlement uses the standard building. */
body.outpost-body #swap-map .swap-booth[data-neon="cyan"]{--roof-accent:#7aeaff;--roof-tint:#194355}
body.outpost-body #swap-map .swap-booth[data-neon="pink"]{--roof-accent:#ff8ce0;--roof-tint:#4b2144}
body.outpost-body #swap-map .swap-booth[data-neon="mint"]{--roof-accent:#80f5bc;--roof-tint:#214838}
body.outpost-body #swap-map .swap-booth[data-neon="gold"]{--roof-accent:#ffdd88;--roof-tint:#493f26}
body.outpost-body #swap-map .swap-booth[data-neon]{border-color:var(--roof-accent)}
body.outpost-body #swap-map .swap-booth[data-sign]>strong{border:2px solid var(--roof-accent);border-radius:7px;padding:10px 12px!important;color:var(--roof-accent);text-shadow:0 0 12px var(--roof-accent);box-shadow:0 0 12px color-mix(in srgb,var(--roof-accent) 30%,transparent)}
body.outpost-body #swap-map .swap-booth[data-sign="marquee"]>strong{border:3px dotted var(--roof-accent);background:#101a2d;box-shadow:0 0 16px color-mix(in srgb,var(--roof-accent) 40%,transparent)}
body.outpost-body #swap-map .swap-booth>.vendor-store-icon{order:1!important;display:grid;place-items:center;margin:8px auto 4px!important;width:76px;height:76px;min-height:76px;border-radius:12px;background:linear-gradient(135deg,#331c56,#123d51);border:1px solid #9b7ece;color:#c1f4ff;font-size:42px;text-shadow:0 0 20px #70c9ff}
@media(max-width:600px){body.outpost-body #swap-map .swap-booth>.vendor-store-icon{width:58px;height:58px;min-height:58px;font-size:34px}body.outpost-body #swap-map .swap-booth[data-sign]>strong{padding:7px!important}}

/* The advertisement occupies the existing facade, keeping doors and collisions unchanged. */
body.outpost-body #swap-map .swap-booth.has-billboard{isolation:isolate}
body.outpost-body #swap-map .swap-booth.has-billboard:before{background:#101a2a!important}
body.outpost-body #swap-map .swap-booth>.shop-billboard-art{position:absolute;inset:49px 19px 99px;z-index:-1;overflow:hidden;border-radius:4px;pointer-events:none;font-size:0!important;line-height:0!important}
body.outpost-body #swap-map .shop-billboard-art img{display:block;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;opacity:.95}
body.outpost-body #swap-map .shop-billboard-art:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#071322db 0%,#0713228c 25%,#07132225 43%,#071322c9 68%,#071322ed 100%)}
body.outpost-body #swap-map .swap-booth.has-billboard>img{width:54px!important;height:54px!important;min-height:54px!important;margin-top:5px!important;margin-bottom:0!important}
body.outpost-body #swap-map .swap-booth.has-billboard>strong{font-size:18px!important;line-height:1.25!important;min-height:0!important;background:#091627df;padding:5px 10px!important;border-radius:5px;width:auto;max-width:90%;text-shadow:none}
body.outpost-body #swap-map .swap-booth.has-billboard>.shop-status{background:#091627dc;border-radius:4px;padding:2px 8px;font-size:12px!important;line-height:1.4}
body.outpost-body #swap-map .swap-booth>.shop-billboard-info{order:5!important;display:flex;flex-direction:column;gap:3px;align-items:center;width:100%;max-width:350px;margin:14px 0 5px;padding:10px 12px;border:1px solid #7dccdf55;border-radius:6px;background:#081727e8;box-sizing:border-box;pointer-events:none;font-size:14px!important;line-height:1.35!important}
body.outpost-body #swap-map .shop-billboard-label{font:800 10px/1.4 system-ui,sans-serif!important;text-transform:uppercase;letter-spacing:.1em;color:#ffe4a3}
body.outpost-body #swap-map .shop-billboard-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;font:750 16px/1.3 system-ui,sans-serif!important;color:#fff}
body.outpost-body #swap-map .shop-billboard-price{font:750 16px/1.4 system-ui,sans-serif!important;color:#a6efff}
@media(max-width:600px){body.outpost-body #swap-map .swap-booth>.shop-billboard-art{inset:45px 7px 81px}body.outpost-body #swap-map .swap-booth>.shop-billboard-info{padding:9px 5px;margin:10px 0 4px}body.outpost-body #swap-map .shop-billboard-title{font-size:14px!important}body.outpost-body #swap-map .shop-billboard-price{font-size:14px!important}body.outpost-body #swap-map .swap-booth.has-billboard>strong{font-size:15px!important}}
