/* Real night-market stall chrome + dual-merchant capsule
   Functional surface: bazaar floor cards, house booth, my-bazaar header optional
   Tokens: --mx-stall-shell / awning / trim / sign-ink / glow (skin override via data-skin) */

:root{
  --mx-stall-shell:#14101C;
  --mx-stall-awning:#0E7E74;
  --mx-stall-awning-2:#3BE0C8;
  --mx-stall-trim:rgba(56,229,214,.45);
  --mx-stall-sign-ink:#F4F6FF;
  --mx-stall-glow:var(--mx-merchant-glow,#FFD87C);
  --mx-stall-wood:#2A1C12;
  --mx-stall-wood-2:#1A100A;
}

/* ── Stall card (floor unit) — real booth depth, not a SaaS tile ── */
.mx-stall{
  position:relative;
  display:flex;
  flex-direction:column;
  border-radius:16px;
  border:1px solid var(--mx-stall-trim);
  background:
    radial-gradient(ellipse 120% 50% at 50% -10%, rgba(255,255,255,.06), transparent 45%),
    linear-gradient(180deg,rgba(255,255,255,.04),transparent 32%),
    linear-gradient(180deg,var(--mx-stall-shell),#0A0810 72%);
  overflow:hidden;
  text-decoration:none;
  color:inherit;
  height:100%;
  min-height:340px;
  transition:transform .24s cubic-bezier(.16,1,.3,1), box-shadow .24s ease, border-color .24s ease;
  isolation:isolate;
  box-shadow:
    0 1px 0 rgba(255,255,255,.05) inset,
    0 18px 40px rgba(0,0,0,.35);
}
.mx-stall:hover{
  transform:translateY(-7px);
  border-color:color-mix(in srgb, var(--mx-stall-glow) 70%, white);
  box-shadow:
    0 1px 0 rgba(255,255,255,.07) inset,
    0 26px 56px rgba(0,0,0,.55),
    0 0 32px color-mix(in srgb, var(--mx-stall-glow) 18%, transparent);
}
.mx-stall--house{
  border-color:rgba(255,216,124,.4);
  box-shadow:0 0 0 1px rgba(255,216,124,.12), inset 0 0 40px rgba(255,216,124,.04);
}
html[data-mx-shift="day"] .mx-stall--house{
  border-color:rgba(127,201,240,.4);
  box-shadow:0 0 0 1px rgba(127,201,240,.12), inset 0 0 40px rgba(127,201,240,.05);
}

/* Awning — real market stripe + scallops + poles */
.mx-stall__awning{
  position:relative;
  height:52px;
  flex:none;
  z-index:2;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.35));
}
.mx-stall__awning-valance{
  height:24px;
  background:repeating-linear-gradient(
    90deg,
    var(--mx-stall-awning-2) 0 18px,
    var(--mx-stall-awning) 18px 36px
  );
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.14),
    inset 0 -1px 0 rgba(0,0,0,.25),
    0 4px 12px rgba(0,0,0,.35);
}
.mx-stall__awning-scallop{
  height:14px;
  margin-top:-1px;
  background:
    radial-gradient(circle 11px at 18px -1px, var(--mx-stall-awning-2) 97%, transparent),
    radial-gradient(circle 11px at 54px -1px, var(--mx-stall-awning) 97%, transparent);
  background-size:72px 14px;
  background-repeat:repeat-x;
}
.mx-stall__pole{
  position:absolute;
  top:6px;
  width:5px;
  height:40px;
  border-radius:2px;
  background:linear-gradient(180deg,#5A4030,#2A1C12 55%,#1A120C);
  border:1px solid rgba(255,216,124,.22);
  box-shadow:inset 1px 0 0 rgba(255,255,255,.12), 0 2px 4px rgba(0,0,0,.35);
  z-index:3;
}
.mx-stall__pole--l{left:10px}
.mx-stall__pole--r{right:10px}

/* Hanging sign */
.mx-stall__sign{
  position:relative;
  z-index:2;
  margin:-2px 14px 0;
  padding:11px 13px 10px;
  border-radius:10px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.05),transparent 40%),
    linear-gradient(180deg,#1C1626,#120E18);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:
    0 10px 22px rgba(0,0,0,.45),
    inset 0 1px 0 rgba(255,255,255,.08);
  display:flex;
  flex-direction:column;
  gap:3px;
}
.mx-stall__sign-name{
  font:800 15px/1.15 'Archivo',system-ui,sans-serif;
  letter-spacing:-.01em;
  color:var(--mx-stall-sign-ink);
}
.mx-stall__sign-meta{
  font:600 9.5px/1.2 'JetBrains Mono',monospace;
  letter-spacing:.08em;
  color:var(--mx-ink3,#6B7396);
  text-transform:uppercase;
}

.mx-stall__body{
  position:relative;
  flex:1;
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:14px 14px 12px;
  z-index:1;
}

/* ══ FLOOR PORTAL → /shop.html — sales-team mythic plate + merchant ══ */
.mx-stall--portal{
  min-height:300px;
  --mx-stall-glow:var(--mx-merchant-glow,#FFD87C);
}
.mx-stall--portal[data-shift="day"]{ --mx-stall-glow:#7FC9F0; }
.mx-stall--portal[data-shift="night"]{ --mx-stall-glow:#FFD87C; }

/* Sales team (Lucky/Lotl) — best plate on the floor (above every user stall) */
.mx-stall--sales{
  min-height:460px;
  border:1px solid rgba(255,216,124,.4);
  box-shadow:
    0 0 0 1px rgba(255,216,124,.12),
    0 0 36px rgba(255,216,124,.16),
    0 22px 48px rgba(0,0,0,.5),
    inset 0 0 40px rgba(255,216,124,.05);
}
.mx-stall--sales[data-shift="day"]{
  border-color:rgba(127,201,240,.45);
  box-shadow:
    0 0 0 1px rgba(127,201,240,.14),
    0 0 36px rgba(127,201,240,.18),
    0 22px 48px rgba(0,0,0,.5),
    inset 0 0 40px rgba(127,201,240,.06);
}
.mx-stall--sales:hover{
  transform:translateY(-8px);
  border-color:color-mix(in srgb, var(--mx-stall-glow) 75%, white);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--mx-stall-glow) 30%, transparent),
    0 0 48px color-mix(in srgb, var(--mx-stall-glow) 28%, transparent),
    0 28px 56px rgba(0,0,0,.55);
}
.mx-stall--sales .mx-stall__art{
  background-position:center 40%;
  background-size:cover;
  /* full plate visible — no greying filter */
  transform:none;
  filter:none !important;
  opacity:1 !important;
}
.mx-stall--sales:hover .mx-stall__art{ transform:none; }
/* Sales: zero veil — plate is fully visible */
.mx-stall--sales .mx-stall__art-veil,
.mx-stall__art-veil--sales{
  display:none !important;
  background:none !important;
  opacity:0 !important;
}
/* Day/Lotl plates often read darker — lift them */
.mx-stall--sales[data-shift="day"] .mx-stall__art{
  filter:brightness(1.12) contrast(1.05) saturate(1.08) !important;
}
.mx-stall__tier--sales{
  top:12px; right:12px;
  letter-spacing:.14em;
  font-size:8.5px;
  padding:6px 8px 5px;
  color:#FFD87C;
  border-color:rgba(255,216,124,.55);
  background:rgba(8,8,12,.75);
  box-shadow:0 4px 16px rgba(0,0,0,.4), 0 0 12px rgba(255,216,124,.2);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.mx-stall--sales[data-shift="day"] .mx-stall__tier--sales{
  color:#A8E0FF;
  border-color:rgba(127,201,240,.55);
  background:rgba(6,12,18,.75);
  box-shadow:0 4px 16px rgba(0,0,0,.4), 0 0 12px rgba(127,201,240,.2);
}
/*
 * Sales floor overlay: tube + product sell-lane.
 * No black dock panel. Sprite sheets are opaque black —
 * knock out pure black with mix-blend-mode:lighten.
 */
.mx-stall--sales .mx-stall__portal-body,
.mx-stall--sales .mx-stall__portal-body--sales,
.mx-stall--sales .mx-stall__portal-body--tube{
  position:absolute;
  z-index:2;
  left:0; right:0; bottom:0;
  top:auto;
  margin:0;
  padding:8px 14px 12px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  background:none !important;
  border:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  min-height:0;
  grid-template-columns:none;
  flex:none;
  pointer-events:none;
}
/* Sales cards: blend with plate (not isolated greyscale group) */
.mx-stall--sales{
  isolation:auto;
}
/* Clean alpha tube PNG (not multi-frame sheet) */
.mx-stall--sales .mx-stall__tube{
  display:block;
  width:auto;
  height:172px;
  max-width:42%;
  object-fit:contain;
  background:transparent;
  border:none;
  pointer-events:none;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.45));
  animation:mx-tube-breath 3.4s ease-in-out infinite;
  transform-origin:50% 90%;
}
@media (prefers-reduced-motion:reduce){
  .mx-stall--sales .mx-stall__tube{ animation:none; }
}
@keyframes mx-tube-breath{
  0%,100%{ transform:translateY(0) scale(1); filter:drop-shadow(0 10px 18px rgba(0,0,0,.45)); }
  50%{ transform:translateY(-3px) scale(1.02); filter:drop-shadow(0 14px 22px rgba(0,0,0,.5)); }
}
.mx-stall--sales .mx-stall__sell-lane{
  display:grid;
  grid-template-columns:repeat(3, minmax(52px, 72px));
  gap:8px;
  width:min(100%, 260px);
  padding:8px 10px;
  border-radius:12px;
  background:rgba(6,8,14,.42);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 8px 24px rgba(0,0,0,.35);
  pointer-events:none;
}
.mx-stall--sales .mx-stall__slot--sell{
  aspect-ratio:63/88;
  border-radius:6px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.18);
  background:linear-gradient(160deg,#1A2140,#0C1020);
  box-shadow:0 4px 10px rgba(0,0,0,.4);
}
.mx-stall--sales .mx-stall__slot--sell img{
  display:block; width:100%; height:100%; object-fit:cover;
}
.mx-stall--sales .mx-stall__cta--sales{
  margin:0;
  padding:0;
  font:800 12px/1.2 'Archivo',system-ui,sans-serif;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.95), 0 0 12px color-mix(in srgb, var(--mx-stall-glow) 50%, transparent);
  background:none;
  border:none;
  pointer-events:none;
}
.mx-stall--sales .mx-stall__portal-copy{ display:none !important; }

.mx-stall__portal-body{
  display:grid;
  grid-template-columns:minmax(120px,150px) 1fr;
  gap:12px;
  align-items:center;
  padding:8px 14px 18px;
  flex:1;
}
.mx-stall__portal-sprite{
  display:flex;align-items:center;justify-content:center;
  filter:drop-shadow(0 12px 22px rgba(0,0,0,.55));
  min-height:150px;
}
.mx-stall__portal-copy{
  display:flex;flex-direction:column;gap:6px;min-width:0;
}
.mx-stall__portal-copy strong{
  font:900 15px/1.1 'Archivo',system-ui,sans-serif;
  letter-spacing:.06em;text-transform:uppercase;
}
.mx-stall__portal-copy span{
  font:600 10px 'JetBrains Mono',monospace;
  letter-spacing:.1em;color:var(--mx-stall-glow);text-transform:uppercase;
}
.mx-stall__portal-copy em{
  font:500 12.5px/1.4 'Archivo',system-ui,sans-serif;
  color:#B8BFD4;font-style:normal;
}
@media(max-width:420px){
  .mx-stall__portal-body{grid-template-columns:1fr;justify-items:center;text-align:center}
}

/* legacy diorama class kept for older previews */
.mx-stall--diorama{
  min-height:380px;
  --mx-stall-glow:var(--mx-merchant-glow,#FFD87C);
}
.mx-stall--diorama[data-shift="day"]{ --mx-stall-glow:#7FC9F0; }
.mx-stall--diorama[data-shift="night"]{ --mx-stall-glow:#FFD87C; }

.mx-stall__scene{
  position:relative;
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:260px;
  margin:0 10px;
  border-radius:12px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  background:
    radial-gradient(ellipse 80% 50% at 50% 100%, color-mix(in srgb, var(--mx-stall-glow) 18%, transparent), transparent 70%),
    linear-gradient(180deg,#1A1428 0%,#100C18 55%,#0A0810 100%);
}

/* Back wall of the booth */
.mx-stall__backwall{
  position:relative;
  flex:1;
  min-height:90px;
  padding:12px 12px 0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.35),transparent 12%,transparent 88%,rgba(0,0,0,.35)),
    repeating-linear-gradient(90deg,transparent 0 28px,rgba(255,255,255,.02) 28px 29px),
    linear-gradient(180deg,#221A2E,#16101F);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.mx-stall__wall-shelf{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
  max-width:200px;
  margin:0 auto;
  padding:8px;
  border-radius:8px;
  background:rgba(0,0,0,.25);
  border:1px solid rgba(255,255,255,.06);
}
.mx-stall__wall-shelf .mx-stall__slot{
  aspect-ratio:63/88;
  max-height:52px;
  border-radius:4px;
}
.mx-stall__lantern{
  position:absolute;
  top:8px;
  width:10px;
  height:14px;
  border-radius:3px 3px 5px 5px;
  background:radial-gradient(circle at 50% 40%, #FFE7A0, #E7A06A 60%, #5C2A14);
  box-shadow:0 0 12px rgba(255,200,100,.45);
  opacity:.85;
}
.mx-stall__lantern--l{ left:14px; }
.mx-stall__lantern--r{ right:14px; }
.mx-stall__lantern::before{
  content:'';
  position:absolute; top:-6px; left:50%; width:2px; height:6px; margin-left:-1px;
  background:rgba(255,255,255,.25);
}

/* Merchant zone — centered above counter, glass sits ON the plank */
.mx-stall__booth{
  position:relative;
  z-index:2;
  display:flex;
  justify-content:center;
  align-items:flex-end;
  height:0;
  margin:0;
  pointer-events:none;
}
.mx-stall__capsule--hero{
  position:relative;
  width:112px;
  height:132px;
  margin-bottom:-18px; /* sits into the counter */
  z-index:3;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.55));
}
.mx-stall__capsule-glass{
  position:absolute;
  left:10px; right:10px; top:0;
  height:96px;
  border-radius:48px 48px 16px 16px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,.05) 40%,rgba(255,255,255,.08) 100%),
    radial-gradient(ellipse 70% 40% at 50% 85%, color-mix(in srgb, var(--mx-stall-glow) 25%, transparent), transparent);
  border:1.5px solid rgba(255,255,255,.38);
  box-shadow:
    inset 0 8px 16px rgba(255,255,255,.2),
    inset 0 -10px 18px rgba(0,0,0,.35),
    0 0 28px color-mix(in srgb, var(--mx-stall-glow) 40%, transparent);
  overflow:hidden;
  z-index:1;
}
/* Glass shine on TOP of sprite so merchant is clearly inside */
.mx-stall__capsule-glass::before{
  content:'';
  position:absolute; inset:0; z-index:3; pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(125deg,rgba(255,255,255,.28) 0%, transparent 32%, transparent 68%, rgba(255,255,255,.06) 100%);
}
.mx-stall__capsule-glass::after{
  content:'';
  position:absolute; left:12px; top:10px; z-index:4; pointer-events:none;
  width:16px; height:26px; border-radius:50%;
  background:linear-gradient(160deg,rgba(255,255,255,.5),transparent 70%);
}
/* Sprite clipped INSIDE glass — not floating next to UI */
.mx-stall__capsule-sprite{
  position:absolute;
  left:50%;
  bottom:4px;
  transform:translateX(-50%);
  z-index:2;
  width:96px;
  height:96px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  pointer-events:none;
}
.mx-stall__capsule-sprite .mx-m-sprite__stage{
  /* size set by JS display px — no CSS scale hacks */
  flex:none;
}
.mx-stall__capsule-base{
  position:absolute;
  left:6px; right:6px; bottom:0;
  height:38px;
  border-radius:12px 12px 14px 14px;
  background:linear-gradient(180deg,#3A4568,#14182A 65%,#0C0E16);
  border:1px solid #4A5678;
  box-shadow:
    inset 0 2px 4px rgba(255,255,255,.1),
    0 0 20px color-mix(in srgb, var(--mx-stall-glow) 45%, transparent);
  z-index:2;
}
.mx-stall__capsule-led{
  position:absolute; left:50%; top:10px; width:9px; height:9px; margin-left:-4.5px;
  border-radius:50%;
  background:var(--mx-stall-glow);
  box-shadow:0 0 12px var(--mx-stall-glow), 0 0 22px color-mix(in srgb, var(--mx-stall-glow) 60%, transparent);
}
.mx-stall__capsule-feet{
  position:absolute; left:10px; right:10px; bottom:-7px; height:8px;
  border-radius:3px;
  background:#0A0C12;
  border:1px solid #2A3150;
  box-shadow:0 3px 0 #05060A;
}

/* Deep counter plank — merchant base sits into this */
.mx-stall__counter--deep{
  position:relative;
  z-index:1;
  height:auto;
  min-height:72px;
  margin:0;
  border-radius:0;
  padding:22px 12px 12px;
  background:
    linear-gradient(180deg,rgba(255,216,124,.12),transparent 12%),
    linear-gradient(180deg,#4A3420 0%,#2A1C12 40%,#1A120C 100%);
  border:none;
  border-top:2px solid rgba(255,216,124,.28);
  box-shadow:inset 0 8px 16px rgba(0,0,0,.35);
}
.mx-stall__plaque{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:10px 12px;
  border-radius:10px;
  background:rgba(0,0,0,.4);
  border:1px solid rgba(255,255,255,.1);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.mx-stall__plaque strong{
  font:800 14px/1.15 'Archivo',system-ui,sans-serif;
  color:#F4F6FF;
  letter-spacing:.02em;
}
.mx-stall__plaque span{
  font:600 9px/1.2 'JetBrains Mono',monospace;
  letter-spacing:.1em;
  color:var(--mx-stall-glow);
  text-transform:uppercase;
}
.mx-stall__plaque em{
  font:500 12px/1.4 'Archivo',system-ui,sans-serif;
  color:#B8BFD4;
  font-style:normal;
  margin-top:4px;
}
.mx-stall__footer{
  padding:12px 16px 16px;
  display:flex;
  justify-content:flex-end;
}

/* Card shelf + counter (reads as a real booth) */
.mx-stall__shelf{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  padding:12px 10px 10px;
  border-radius:10px 10px 0 0;
  background:
    linear-gradient(180deg,rgba(255,255,255,.04),transparent 30%),
    linear-gradient(180deg,#1A1422,#120E18);
  border:1px solid rgba(255,255,255,.09);
  border-bottom:none;
  box-shadow:inset 0 8px 16px rgba(0,0,0,.25);
}
.mx-stall__slot{
  aspect-ratio:63/88;
  border-radius:6px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(160deg,#1A2140,#0C1020);
  box-shadow:0 4px 10px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.06);
}
.mx-stall__slot img{
  display:block; width:100%; height:100%; object-fit:cover;
}
.mx-stall__slot.is-empty{
  background:
    repeating-linear-gradient(135deg, transparent 0 6px, rgba(255,255,255,.03) 6px 7px),
    linear-gradient(160deg,#16101C,#0C0A10);
}
.mx-stall__counter{
  position:relative;
  z-index:1;
  height:16px;
  border-radius:0 0 10px 10px;
  background:
    linear-gradient(180deg,rgba(255,216,124,.12),transparent 40%),
    linear-gradient(180deg,#4A3420,#2A1C10 50%,#1A120C);
  border:1px solid rgba(255,216,124,.18);
  border-top:2px solid rgba(255,216,124,.32);
  box-shadow:0 8px 16px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.08);
  margin-top:-1px;
}
.mx-stall__counter-edge{
  display:block;
  position:absolute; left:8%; right:8%; top:0; height:2px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.2), transparent);
  border-radius:1px;
}
.mx-stall__copy{
  font:500 12.5px/1.45 'Archivo',system-ui,sans-serif;
  color:var(--mx-ink2,#B8BFD4);
}
.mx-stall__cta{
  margin-top:auto;
  font:700 13px 'Archivo',system-ui,sans-serif;
  color:var(--mx-teal,#3BE0C8);
}


/* Skin recipes: mx_stall_skins.css (CSS-mode craft) */
.mx-stall__awning-deco{
  position:absolute; left:12px; right:12px; bottom:0; height:0;
  pointer-events:none; z-index:4; opacity:0;
}
.mx-stall__wall{
  position:absolute; inset:0 0 auto 0; height:58%;
  pointer-events:none; z-index:0;
  border-radius:10px 10px 0 0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.35),transparent 12%,transparent 88%,rgba(0,0,0,.35)),
    linear-gradient(180deg,rgba(255,255,255,.03),transparent 40%),
    linear-gradient(180deg,#1A1424,#100C18);
  opacity:.9;
}
.mx-stall__plinth{
  position:relative; z-index:1; height:6px; flex:none;
  background:linear-gradient(180deg,rgba(255,255,255,.04),transparent);
  opacity:.7;
}

/* ═══════════════════════════════════════════════════════════════
   ART MODE — painted empty stall plate + live dock
   Same dual-render law as avatar cards: art carries identity.
   Empty plates only (stall_bg_*) — never merchant-baked dioramas
   on user stalls (merchants stay house/Outfitter).
   ═══════════════════════════════════════════════════════════════ */
.mx-stall--art{
  min-height:380px;
  border:1px solid rgba(255,255,255,.12);
  background:#06080E;
  padding:0;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.mx-stall__art{
  position:absolute;
  inset:0;
  z-index:0;
  background-size:cover;
  background-position:center 42%;
  background-repeat:no-repeat;
  /* never scale() — interpolates soft and reads as blurry art */
  transform:none;
  filter:none;
  transition:none;
}
.mx-stall--art:hover .mx-stall__art{ transform:none; }
.mx-stall__art-veil{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  background:
    linear-gradient(180deg, rgba(4,6,12,.12) 0%, transparent 26%, transparent 44%, rgba(4,6,12,.5) 70%, rgba(4,6,12,.93) 100%),
    radial-gradient(ellipse 80% 50% at 50% 100%, rgba(0,0,0,.3), transparent 60%);
}
.mx-stall__dock{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:12px 14px 16px;
  margin:0;
}
.mx-stall--art .mx-stall__sign{
  margin:0;
  background:linear-gradient(180deg, rgba(12,14,22,.94), rgba(8,10,16,.97));
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  box-shadow:0 10px 28px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.1);
}
.mx-stall--art .mx-stall__shelf{
  background:linear-gradient(180deg, rgba(10,12,20,.75), rgba(8,10,16,.85));
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px;
  box-shadow:0 8px 20px rgba(0,0,0,.4);
}
.mx-stall--art .mx-stall__copy{
  color:rgba(232,236,248,.88);
  text-shadow:0 1px 3px rgba(0,0,0,.7);
  font-size:12.5px;
}
.mx-stall--art .mx-stall__cta{
  color:#fff;
  text-shadow:0 0 12px rgba(59,224,200,.45);
}

/* Tier chip (avatar ladder: C U R L M) */
.mx-stall__tier{
  position:absolute;
  top:10px; right:10px;
  z-index:5;
  font:800 9px/1 'JetBrains Mono',monospace;
  letter-spacing:.14em;
  padding:5px 7px 4px;
  border-radius:6px;
  background:rgba(8,10,16,.88);
  border:1px solid rgba(255,255,255,.14);
  color:#B8BFD4;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.mx-stall__tier[data-tier="C"]{ color:#9AB0D0; border-color:rgba(140,170,210,.35); }
.mx-stall__tier[data-tier="U"]{ color:#6EE7B0; border-color:rgba(110,231,176,.4); }
.mx-stall__tier[data-tier="R"]{ color:#FFB070; border-color:rgba(255,176,112,.45); }
.mx-stall__tier[data-tier="L"]{
  color:#FFD87C; border-color:rgba(255,216,124,.5);
  box-shadow:0 0 12px rgba(255,216,124,.2);
}
.mx-stall__tier[data-tier="M"]{
  color:#E8D0FF;
  border-color:rgba(200,140,255,.55);
  background:linear-gradient(135deg, rgba(40,16,60,.85), rgba(12,20,48,.9));
  box-shadow:0 0 16px rgba(180,100,255,.35), inset 0 0 12px rgba(120,200,255,.1);
}

/* Mythic sovereign rim */
.mx-stall[data-tier="M"]{
  border-color:rgba(200,140,255,.45);
  box-shadow:
    0 0 0 1px rgba(120,200,255,.15),
    0 0 28px rgba(180,100,255,.18),
    0 18px 40px rgba(0,0,0,.45),
    inset 0 0 40px rgba(180,100,255,.04);
}
.mx-stall[data-tier="M"]:hover{
  border-color:rgba(220,160,255,.7);
  box-shadow:
    0 0 0 1px rgba(120,200,255,.25),
    0 0 40px rgba(180,100,255,.28),
    0 26px 56px rgba(0,0,0,.55);
}
.mx-stall[data-tier="M"].mx-stall--art .mx-stall__art-veil{
  background:
    linear-gradient(180deg, rgba(40,16,60,.2) 0%, transparent 30%, transparent 40%, rgba(4,6,12,.55) 68%, rgba(4,6,12,.94) 100%),
    radial-gradient(ellipse 70% 40% at 50% 0%, rgba(180,100,255,.12), transparent 50%);
}
/* Sales team must NOT inherit mythic grey wash — plate stays bright */
.mx-stall--sales.mx-stall--art .mx-stall__art-veil,
.mx-stall--sales[data-tier="M"].mx-stall--art .mx-stall__art-veil,
.mx-stall--sales .mx-stall__art-veil--sales{
  display:none !important;
  background:none !important;
  opacity:0 !important;
}
/* Sales rim wins over generic mythic purple (both use data-tier=M) */
.mx-stall--sales[data-tier="M"]{
  border-color:rgba(255,216,124,.45);
  box-shadow:
    0 0 0 1px rgba(255,216,124,.14),
    0 0 36px rgba(255,216,124,.16),
    0 22px 48px rgba(0,0,0,.5);
}
.mx-stall--sales[data-tier="M"][data-shift="day"]{
  border-color:rgba(127,201,240,.5);
  box-shadow:
    0 0 0 1px rgba(127,201,240,.16),
    0 0 36px rgba(127,201,240,.18),
    0 22px 48px rgba(0,0,0,.5);
}
.mx-stall--sales[data-tier="M"]:hover{
  border-color:color-mix(in srgb, var(--mx-stall-glow) 75%, white);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--mx-stall-glow) 30%, transparent),
    0 0 48px color-mix(in srgb, var(--mx-stall-glow) 28%, transparent),
    0 28px 56px rgba(0,0,0,.55);
}
.mx-stall[data-tier="L"].mx-stall--art,
.mx-stall[data-tier="L"]{
  border-color:rgba(255,216,124,.35);
}
/* art plates stay sharp; no motion scale to restore */

/* Open / empty CTA stall */
.mx-stall--open{
  border-style:dashed;
  min-height:280px;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:28px 20px;
}
.mx-stall--open .mx-stall__awning{ width:100%; }

/* Sprite host utility */
.mx-m-sprite,.mx-m-micro{ line-height:0; }
.mx-m-sprite__stage,.mx-m-micro{
  image-rendering:pixelated;
  image-rendering:crisp-edges;
}

/* Shift-capsule pod micro override: use real sprite instead of CSS blobs */
#avPod .pod-mon.mx-pod-sprite-host{
  width:48px; height:48px; top:12px; left:50%;
  transform:translateX(-50%);
}
#avPod .pod-mon.mx-pod-sprite-host .mx-m-micro{
  width:32px; height:32px; margin:8px auto 0;
}

@media (max-width:520px){
  .mx-stall__merchant{ grid-template-columns:1fr; justify-items:center; text-align:center; }
  .mx-stall__bubble::before{ display:none; }
}
@media (prefers-reduced-motion:reduce){
  .mx-stall{ transition:none; }
  .mx-stall:hover{ transform:none; }
}
