.ei-lobby{--ei-lobby-bg:#111827;--ei-lobby-panel:#ffffff;--ei-lobby-border:rgba(15,23,42,.12);--ei-lobby-accent:#d6a545;--ei-lobby-text:#1f2937;font-family:inherit;color:var(--ei-lobby-text)}
.ei-lobby-error,.ei-lobby-welcome{padding:14px 16px;border-radius:14px;background:#fff7ed;border:1px solid #fed7aa;margin:12px 0}.ei-lobby-error{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.ei-lobby-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.ei-lobby-stage-wrap{min-width:0}.ei-lobby-stage{position:relative;overflow:hidden;border-radius:18px;background-color:var(--ei-lobby-bg);background-image:none!important;background-size:100% 100%;background-position:center;border:1px solid var(--ei-lobby-border);box-shadow:0 16px 40px rgba(15,23,42,.16);min-height:280px;cursor:crosshair}.ei-lobby-bg-transparent{background-color:transparent!important}.ei-lobby-bg-layer{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:visible;transform:translateY(0)}.ei-lobby-bg-layer img{display:block;width:100%;height:100%;object-fit:fill;user-select:none;-webkit-user-drag:none}.ei-lobby-bg-float-on .ei-lobby-bg-layer{animation:ei-lobby-bg-float var(--ei-lobby-bg-float-duration,14s) ease-in-out infinite;will-change:transform}.ei-lobby-bg-float-on .ei-lobby-bg-layer img{transform:scale(1.012);transform-origin:center center}@keyframes ei-lobby-bg-float{0%,100%{transform:translateY(calc(var(--ei-lobby-bg-float-amp,6px) * -1))}50%{transform:translateY(var(--ei-lobby-bg-float-amp,6px))}}@media (prefers-reduced-motion: reduce){.ei-lobby-bg-float-on .ei-lobby-bg-layer{animation:none!important}}.ei-lobby-grid-mask{position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.12),transparent 35%),linear-gradient(to bottom,rgba(0,0,0,.04),rgba(0,0,0,.18));pointer-events:none}.ei-lobby-bg-transparent .ei-lobby-grid-mask{background:none}.ei-lobby-hint{font-size:13px;color:#64748b;margin:8px 4px 0}
.ei-lobby-panel{display:flex;flex-direction:column;gap:14px}.ei-lobby-online-box,.ei-lobby-chat-box{background:var(--ei-lobby-panel);border:1px solid var(--ei-lobby-border);border-radius:16px;padding:14px;box-shadow:0 10px 24px rgba(15,23,42,.08)}.ei-lobby-panel h3{font-size:16px;margin:0 0 10px}.ei-lobby-online{display:flex;flex-direction:column;gap:8px;max-height:180px;overflow:auto}.ei-lobby-online-user{display:flex;align-items:center;gap:8px;font-size:14px}.ei-lobby-online-user img{width:28px;height:28px;border-radius:50%}.ei-lobby-empty{font-size:13px;color:#64748b;margin:0}.ei-lobby-notice{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;border-radius:10px;padding:8px;margin-bottom:8px;font-size:13px}
.ei-lobby-avatars{position:absolute;inset:0;pointer-events:none}.ei-lobby-avatar{position:absolute;transform:translate(-50%,-85%);display:flex;flex-direction:column;align-items:center;gap:2px;transition:left .35s ease,top .35s ease;z-index:5}.ei-lobby-avatar img{width:42px;height:42px;border-radius:50%;border:3px solid #fff;box-shadow:0 8px 20px rgba(0,0,0,.22);background:#fff}.ei-lobby-avatar span{max-width:92px;padding:2px 7px;border-radius:999px;background:rgba(255,255,255,.92);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 4px 12px rgba(0,0,0,.16)}.ei-lobby-avatar.is-me img{border-color:var(--ei-lobby-accent)}
.ei-lobby-object{position:absolute;border:1px solid rgba(255,255,255,.55);border-radius:12px;background:rgba(214,165,69,.22);color:#fff;padding:0;z-index:4;cursor:pointer;display:flex;align-items:center;justify-content:center;text-decoration:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);transition:background .18s ease,transform .18s ease}.ei-lobby-object:hover{background:rgba(214,165,69,.38);transform:translateY(-1px)}.ei-lobby-object span{background:rgba(15,23,42,.75);padding:4px 8px;border-radius:999px;font-size:12px;line-height:1.2;max-width:95%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ei-lobby-messages{height:260px;overflow:auto;border:1px solid var(--ei-lobby-border);border-radius:12px;padding:10px;background:#f8fafc;display:flex;flex-direction:column;gap:8px}.ei-lobby-message{font-size:14px;line-height:1.45}.ei-lobby-message strong{display:block;color:#334155;font-size:12px}.ei-lobby-message span{display:inline-block;background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:7px 9px;word-break:break-word}.ei-lobby-chat-form{display:flex;gap:8px;margin-top:10px}.ei-lobby-chat-form input{flex:1;min-width:0;border:1px solid var(--ei-lobby-border);border-radius:12px;padding:9px 10px}.ei-lobby-chat-form button{border:0;border-radius:12px;background:#111827;color:#fff;padding:9px 12px;cursor:pointer}.ei-lobby-chat-form button:disabled{opacity:.55;cursor:not-allowed}
.ei-lobby-modal[hidden]{display:none}.ei-lobby-modal{position:fixed;inset:0;background:rgba(15,23,42,.56);z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px}.ei-lobby-modal-card{position:relative;max-width:min(760px,92vw);max-height:84vh;overflow:auto;background:#fff;border-radius:18px;padding:22px;box-shadow:0 24px 80px rgba(0,0,0,.35)}.ei-lobby-modal-close{position:absolute;top:8px;right:10px;width:34px;height:34px;border:0;border-radius:50%;background:#f1f5f9;cursor:pointer;font-size:24px;line-height:1}.ei-lobby-modal-body{padding-top:12px}
@media (max-width: 860px){.ei-lobby-layout{grid-template-columns:1fr}.ei-lobby-panel{grid-row:auto}.ei-lobby-stage{min-height:240px}.ei-lobby-messages{height:220px}}

/* v0.1.1 grid walking controls */
.ei-lobby-stage{cursor:pointer;outline:none}.ei-lobby-stage:focus-visible{box-shadow:0 0 0 3px rgba(214,165,69,.42),0 16px 40px rgba(15,23,42,.16)}
.ei-lobby-grid-lines{position:absolute;inset:0;pointer-events:none;z-index:2;display:none;background-image:linear-gradient(to right,rgba(255,255,255,.22) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.22) 1px,transparent 1px);background-size:var(--ei-lobby-grid-w,var(--ei-lobby-grid-size)) var(--ei-lobby-grid-h,var(--ei-lobby-grid-size))}
.ei-lobby-grid-subtle .ei-lobby-grid-lines{display:block;opacity:.32}.ei-lobby-grid-visible .ei-lobby-grid-lines{display:block;opacity:.72}.ei-lobby-grid-hidden .ei-lobby-grid-lines{display:none}.ei-lobby-grid-subtle .ei-lobby-grid-mask{background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.1),transparent 35%),linear-gradient(to bottom,rgba(0,0,0,.03),rgba(0,0,0,.16))}.ei-lobby-grid-visible .ei-lobby-grid-mask{background:linear-gradient(to bottom,rgba(0,0,0,.02),rgba(0,0,0,.12))}
.ei-lobby-controls{display:grid;grid-template-columns:52px 52px 52px;grid-template-rows:52px 52px 52px;gap:7px;justify-content:center;align-items:center;margin:12px auto 0;max-width:180px}.ei-lobby-dpad{width:52px;height:52px;border:1px solid rgba(15,23,42,.16);border-radius:16px;background:linear-gradient(180deg,#fff,#f1f5f9);box-shadow:0 8px 18px rgba(15,23,42,.12);font-size:18px;line-height:1;cursor:pointer;color:#111827;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.ei-lobby-dpad:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(15,23,42,.16)}.ei-lobby-dpad:active{transform:translateY(1px);box-shadow:0 4px 10px rgba(15,23,42,.14)}.ei-lobby-dpad-up{grid-column:2;grid-row:1}.ei-lobby-dpad-left{grid-column:1;grid-row:2}.ei-lobby-dpad-right{grid-column:3;grid-row:2}.ei-lobby-dpad-down{grid-column:2;grid-row:3}
@media (min-width:861px){.ei-lobby-controls{max-width:152px;grid-template-columns:44px 44px 44px;grid-template-rows:44px 44px 44px}.ei-lobby-dpad{width:44px;height:44px;border-radius:14px;font-size:16px}}

/* v0.1.2: true cell-center walking and polished mobile controls */
.ei-lobby-avatar{transition:left .18s ease,top .18s ease;will-change:left,top}.ei-lobby-avatar.is-me{transition:none}.ei-lobby-avatar.is-me img{box-shadow:0 0 0 3px rgba(214,165,69,.24),0 10px 24px rgba(0,0,0,.28)}
.ei-lobby-controls{position:relative;width:188px;height:188px;display:grid;grid-template-columns:58px 58px 58px;grid-template-rows:58px 58px 58px;gap:7px;justify-content:center;align-content:center;margin:14px auto 0;padding:10px;border-radius:34px;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.98),rgba(241,245,249,.92) 54%,rgba(203,213,225,.72));border:1px solid rgba(148,163,184,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 14px 34px rgba(15,23,42,.18)}
.ei-lobby-controls:before{content:"";position:absolute;left:50%;top:50%;width:54px;height:54px;transform:translate(-50%,-50%);border-radius:18px;background:linear-gradient(180deg,rgba(15,23,42,.08),rgba(255,255,255,.5));box-shadow:inset 0 2px 5px rgba(15,23,42,.12);pointer-events:none}.ei-lobby-dpad{position:relative;z-index:1;width:58px;height:58px;border:0;border-radius:20px;background:linear-gradient(180deg,#ffffff 0%,#f8fafc 38%,#e2e8f0 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -2px 0 rgba(15,23,42,.08),0 8px 18px rgba(15,23,42,.17);font-size:0;line-height:1;cursor:pointer;color:#111827;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.ei-lobby-dpad:before{content:"";position:absolute;left:50%;top:50%;width:0;height:0;transform:translate(-50%,-50%);filter:drop-shadow(0 1px 0 rgba(255,255,255,.6))}.ei-lobby-dpad-up:before{border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:15px solid #1f2937}.ei-lobby-dpad-down:before{border-left:10px solid transparent;border-right:10px solid transparent;border-top:15px solid #1f2937}.ei-lobby-dpad-left:before{border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:15px solid #1f2937}.ei-lobby-dpad-right:before{border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:15px solid #1f2937}.ei-lobby-dpad:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -2px 0 rgba(15,23,42,.08),0 10px 20px rgba(15,23,42,.2)}.ei-lobby-dpad:active{transform:translateY(2px);background:linear-gradient(180deg,#e2e8f0,#f8fafc);box-shadow:inset 0 2px 6px rgba(15,23,42,.18),0 4px 10px rgba(15,23,42,.14)}.ei-lobby-dpad:focus-visible{outline:3px solid rgba(214,165,69,.45);outline-offset:2px}.ei-lobby-dpad-up{grid-column:2;grid-row:1}.ei-lobby-dpad-left{grid-column:1;grid-row:2}.ei-lobby-dpad-right{grid-column:3;grid-row:2}.ei-lobby-dpad-down{grid-column:2;grid-row:3}
@media (min-width:861px){.ei-lobby-controls{width:156px;height:156px;grid-template-columns:46px 46px 46px;grid-template-rows:46px 46px 46px;gap:6px;border-radius:28px}.ei-lobby-controls:before{width:42px;height:42px;border-radius:14px}.ei-lobby-dpad{width:46px;height:46px;border-radius:16px}.ei-lobby-dpad-up:before{border-left-width:8px;border-right-width:8px;border-bottom-width:12px}.ei-lobby-dpad-down:before{border-left-width:8px;border-right-width:8px;border-top-width:12px}.ei-lobby-dpad-left:before{border-top-width:8px;border-bottom-width:8px;border-right-width:12px}.ei-lobby-dpad-right:before{border-top-width:8px;border-bottom-width:8px;border-left-width:12px}}
@media (max-width:480px){.ei-lobby-controls{width:174px;height:174px;grid-template-columns:54px 54px 54px;grid-template-rows:54px 54px 54px;gap:6px}.ei-lobby-dpad{width:54px;height:54px}}

/* v0.1.3 walls, portals, speech bubbles, cleaner gamepad */
.ei-lobby-stage.is-blocked-bump{animation:eiLobbyBlocked .18s ease-in-out}@keyframes eiLobbyBlocked{0%,100%{filter:none}50%{filter:drop-shadow(0 0 10px rgba(239,68,68,.65))}}
.ei-lobby-avatar{z-index:8}.ei-lobby-speech{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);max-width:180px;background:rgba(255,255,255,.96);border:1px solid rgba(15,23,42,.12);border-radius:14px;padding:7px 10px;color:#0f172a;font-size:13px;line-height:1.35;box-shadow:0 10px 26px rgba(15,23,42,.18);white-space:normal;word-break:break-word;pointer-events:none}.ei-lobby-speech:after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border-left:7px solid transparent;border-right:7px solid transparent;border-top:8px solid rgba(255,255,255,.96)}
.ei-lobby-controls{width:176px!important;height:176px!important;padding:8px!important;border-radius:44px!important;background:linear-gradient(145deg,rgba(15,23,42,.84),rgba(30,41,59,.72))!important;border:1px solid rgba(255,255,255,.22)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 18px 42px rgba(15,23,42,.35)!important;backdrop-filter:blur(10px)}.ei-lobby-controls:before{width:62px!important;height:62px!important;border-radius:50%!important;background:radial-gradient(circle,#f8fafc,#cbd5e1)!important;box-shadow:inset 0 2px 3px rgba(255,255,255,.8),inset 0 -5px 12px rgba(15,23,42,.18)!important}.ei-lobby-dpad{border-radius:18px!important;background:linear-gradient(180deg,#f8fafc,#dbeafe)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -3px 0 rgba(30,64,175,.18),0 8px 18px rgba(15,23,42,.28)!important}.ei-lobby-dpad:before{filter:drop-shadow(0 1px 0 rgba(255,255,255,.75))}.ei-lobby-dpad:hover{background:linear-gradient(180deg,#ffffff,#bfdbfe)!important}.ei-lobby-dpad:active{background:linear-gradient(180deg,#bfdbfe,#eff6ff)!important;transform:translateY(2px)!important}
@media (min-width:861px){.ei-lobby-controls{width:144px!important;height:144px!important}.ei-lobby-controls:before{width:48px!important;height:48px!important}}

/* v0.1.4: entry gate, true bottom-row visibility, horizontal speech, cleaner mobile gamepad */
.ei-lobby-stage{overflow:visible!important;isolation:isolate}
.ei-lobby-stage:before{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inherit;pointer-events:none;z-index:0}.ei-lobby-grid-mask,.ei-lobby-grid-lines{border-radius:inherit}.ei-lobby-avatars{overflow:visible!important;z-index:20}.ei-lobby-object{z-index:14}.ei-lobby-avatar{transform:translate(-50%,-70%)!important;z-index:24;pointer-events:none}.ei-lobby-avatar img{width:42px!important;height:42px!important;flex:0 0 auto}.ei-lobby-avatar span{display:block!important;line-height:1.2!important;max-width:110px!important;white-space:nowrap!important;writing-mode:horizontal-tb!important}.ei-lobby-stage-wrap{overflow:visible!important;padding-bottom:8px}.ei-lobby-layout{overflow:visible}
.ei-lobby-speech{display:block!important;position:absolute!important;left:50%!important;bottom:calc(100% + 10px)!important;transform:translateX(-50%)!important;width:max-content!important;min-width:42px!important;max-width:min(260px,70vw)!important;padding:7px 12px!important;border-radius:999px!important;background:rgba(255,255,255,.97)!important;color:#0f172a!important;border:1px solid rgba(15,23,42,.14)!important;font-size:13px!important;line-height:1.35!important;white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important;text-align:center!important;box-shadow:0 10px 26px rgba(15,23,42,.2)!important;writing-mode:horizontal-tb!important;pointer-events:none!important}.ei-lobby-speech:after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border-left:7px solid transparent;border-right:7px solid transparent;border-top:8px solid rgba(255,255,255,.97)}
.ei-lobby-enter-gate[hidden]{display:none!important}.ei-lobby-enter-gate{position:absolute;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:20px;border-radius:inherit;background:linear-gradient(180deg,rgba(15,23,42,.56),rgba(15,23,42,.36));backdrop-filter:blur(5px);pointer-events:auto}.ei-lobby-enter-card{width:min(360px,92%);text-align:center;color:#fff;background:linear-gradient(180deg,rgba(15,23,42,.9),rgba(30,41,59,.82));border:1px solid rgba(255,255,255,.24);box-shadow:0 24px 80px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.16);border-radius:24px;padding:24px 22px}.ei-lobby-loader{width:38px;height:38px;margin:0 auto 14px;border-radius:50%;border:3px solid rgba(255,255,255,.24);border-top-color:#fbbf24;animation:eiLobbySpin .8s linear infinite}.ei-lobby-enter-gate.is-ready .ei-lobby-loader{animation:none;border-color:#fbbf24;background:radial-gradient(circle,#fde68a,#d97706);box-shadow:0 0 24px rgba(251,191,36,.45)}.ei-lobby-enter-gate.is-error .ei-lobby-loader{animation:none;border-color:#fecaca;background:#ef4444}@keyframes eiLobbySpin{to{transform:rotate(360deg)}}.ei-lobby-enter-title{font-size:18px;font-weight:800;letter-spacing:.03em;margin-bottom:6px}.ei-lobby-enter-text{font-size:14px;color:rgba(255,255,255,.78);margin-bottom:16px}.ei-lobby-enter-button{border:0;border-radius:999px;padding:11px 24px;font-weight:800;cursor:pointer;color:#1f2937;background:linear-gradient(180deg,#fff7ed,#fbbf24);box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 10px 24px rgba(251,191,36,.28);transition:transform .14s ease,box-shadow .14s ease,opacity .14s ease}.ei-lobby-enter-button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.ei-lobby-enter-button:not(:disabled):hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 14px 28px rgba(251,191,36,.34)}.ei-lobby-enter-button:not(:disabled):active{transform:translateY(1px)}
.ei-lobby-controls{width:152px!important;height:152px!important;padding:0!important;display:grid!important;grid-template-columns:50px 50px 50px!important;grid-template-rows:50px 50px 50px!important;gap:0!important;place-content:center!important;margin:14px auto 0!important;border-radius:50%!important;background:radial-gradient(circle at 50% 45%,rgba(30,41,59,.88),rgba(2,6,23,.94))!important;border:1px solid rgba(255,255,255,.22)!important;box-shadow:inset 0 2px 8px rgba(255,255,255,.12),inset 0 -10px 22px rgba(0,0,0,.28),0 18px 42px rgba(2,6,23,.34)!important;backdrop-filter:blur(12px)!important}.ei-lobby-controls:before{content:""!important;position:absolute!important;left:50%!important;top:50%!important;width:44px!important;height:44px!important;transform:translate(-50%,-50%)!important;border-radius:50%!important;background:radial-gradient(circle at 35% 30%,#f8fafc,#94a3b8 70%,#64748b)!important;box-shadow:inset 0 2px 3px rgba(255,255,255,.8),inset 0 -4px 8px rgba(15,23,42,.25),0 4px 12px rgba(0,0,0,.24)!important;pointer-events:none!important}.ei-lobby-dpad{width:50px!important;height:50px!important;border:0!important;border-radius:18px!important;background:transparent!important;box-shadow:none!important;position:relative!important;z-index:2!important}.ei-lobby-dpad:after{content:"";position:absolute;inset:6px;border-radius:15px;background:linear-gradient(180deg,#f8fafc,#cbd5e1)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.85),inset 0 -3px 0 rgba(15,23,42,.16),0 8px 16px rgba(0,0,0,.26)!important}.ei-lobby-dpad:before{z-index:3!important}.ei-lobby-dpad-up:after{border-bottom-left-radius:12px;border-bottom-right-radius:12px}.ei-lobby-dpad-down:after{border-top-left-radius:12px;border-top-right-radius:12px}.ei-lobby-dpad-left:after{border-top-right-radius:12px;border-bottom-right-radius:12px}.ei-lobby-dpad-right:after{border-top-left-radius:12px;border-bottom-left-radius:12px}.ei-lobby-dpad:hover:after{background:linear-gradient(180deg,#fff,#dbeafe)!important}.ei-lobby-dpad:active{transform:none!important}.ei-lobby-dpad:active:after{transform:translateY(2px);background:linear-gradient(180deg,#bfdbfe,#eff6ff)!important;box-shadow:inset 0 3px 8px rgba(15,23,42,.2),0 3px 8px rgba(0,0,0,.18)!important}.ei-lobby-dpad-up:before{border-left:8px solid transparent!important;border-right:8px solid transparent!important;border-bottom:12px solid #0f172a!important}.ei-lobby-dpad-down:before{border-left:8px solid transparent!important;border-right:8px solid transparent!important;border-top:12px solid #0f172a!important}.ei-lobby-dpad-left:before{border-top:8px solid transparent!important;border-bottom:8px solid transparent!important;border-right:12px solid #0f172a!important}.ei-lobby-dpad-right:before{border-top:8px solid transparent!important;border-bottom:8px solid transparent!important;border-left:12px solid #0f172a!important}
@media (max-width:480px){.ei-lobby-controls{width:162px!important;height:162px!important;grid-template-columns:54px 54px 54px!important;grid-template-rows:54px 54px 54px!important}.ei-lobby-dpad{width:54px!important;height:54px!important}.ei-lobby-speech{max-width:min(220px,76vw)!important}}

/* v0.1.5: FC / Famicom style d-pad, no overlap, no oversized round base */
.ei-lobby-controls{
  width:168px!important;
  height:168px!important;
  padding:12px!important;
  display:grid!important;
  grid-template-columns:44px 44px 44px!important;
  grid-template-rows:44px 44px 44px!important;
  gap:8px!important;
  justify-content:center!important;
  align-content:center!important;
  place-content:center!important;
  margin:14px auto 0!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#d7d7d7 0%,#b8b8b8 48%,#8e8e8e 100%)!important;
  border:3px solid #333!important;
  box-shadow:inset 0 3px 0 rgba(255,255,255,.55), inset 0 -4px 0 rgba(0,0,0,.22), 0 8px 18px rgba(0,0,0,.28)!important;
  backdrop-filter:none!important;
  overflow:visible!important;
}
.ei-lobby-controls:before{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:44px!important;
  height:44px!important;
  transform:translate(-50%,-50%)!important;
  border-radius:6px!important;
  background:#1f2933!important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.09), inset 0 -3px 0 rgba(0,0,0,.45)!important;
  pointer-events:none!important;
  z-index:1!important;
}
.ei-lobby-dpad{
  position:relative!important;
  z-index:2!important;
  width:44px!important;
  height:44px!important;
  min-width:44px!important;
  min-height:44px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:6px!important;
  background:#1f2933!important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.12), inset 0 -4px 0 rgba(0,0,0,.42), 0 3px 0 #0b0f14, 0 7px 10px rgba(0,0,0,.22)!important;
  font-size:0!important;
  color:#f8fafc!important;
  transform:none!important;
}
.ei-lobby-dpad:after{content:none!important;display:none!important;}
.ei-lobby-dpad-up{grid-column:2!important;grid-row:1!important;}
.ei-lobby-dpad-left{grid-column:1!important;grid-row:2!important;}
.ei-lobby-dpad-right{grid-column:3!important;grid-row:2!important;}
.ei-lobby-dpad-down{grid-column:2!important;grid-row:3!important;}
.ei-lobby-dpad:before{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  width:0!important;
  height:0!important;
  filter:none!important;
  z-index:3!important;
}
.ei-lobby-dpad-up:before{border-left:7px solid transparent!important;border-right:7px solid transparent!important;border-bottom:11px solid #f8fafc!important;}
.ei-lobby-dpad-down:before{border-left:7px solid transparent!important;border-right:7px solid transparent!important;border-top:11px solid #f8fafc!important;}
.ei-lobby-dpad-left:before{border-top:7px solid transparent!important;border-bottom:7px solid transparent!important;border-right:11px solid #f8fafc!important;}
.ei-lobby-dpad-right:before{border-top:7px solid transparent!important;border-bottom:7px solid transparent!important;border-left:11px solid #f8fafc!important;}
.ei-lobby-dpad:hover{background:#263442!important;box-shadow:inset 0 2px 0 rgba(255,255,255,.14), inset 0 -4px 0 rgba(0,0,0,.42), 0 3px 0 #0b0f14, 0 7px 10px rgba(0,0,0,.24)!important;transform:none!important;}
.ei-lobby-dpad:active{background:#111827!important;transform:translateY(3px)!important;box-shadow:inset 0 2px 5px rgba(0,0,0,.42),0 1px 0 #0b0f14,0 3px 5px rgba(0,0,0,.18)!important;}
@media (max-width:480px){
  .ei-lobby-controls{width:176px!important;height:176px!important;grid-template-columns:46px 46px 46px!important;grid-template-rows:46px 46px 46px!important;gap:8px!important;}
  .ei-lobby-dpad{width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;}
}

/* v0.1.6: floor-based grid restored, avatar visual decoupled from name, selectable controller skins */
.ei-lobby-stage-wrap{overflow:visible!important;padding-bottom:58px!important;}
.ei-lobby-layout,.ei-lobby-stage{overflow:visible!important;}
.ei-lobby-avatars{overflow:visible!important;}
.ei-lobby-avatar{
  width:42px!important;
  height:42px!important;
  transform:translate(-50%,-50%)!important;
  display:block!important;
  overflow:visible!important;
}
.ei-lobby-avatar img{
  position:absolute!important;
  left:0!important;top:0!important;
  width:42px!important;height:42px!important;
  display:block!important;
}
.ei-lobby-avatar span{
  position:absolute!important;
  left:50%!important;top:calc(100% + 4px)!important;
  transform:translateX(-50%)!important;
  display:block!important;
  max-width:112px!important;
  line-height:1.2!important;
  white-space:nowrap!important;
  writing-mode:horizontal-tb!important;
}
.ei-lobby-speech{
  bottom:calc(100% + 10px)!important;
  white-space:nowrap!important;
  writing-mode:horizontal-tb!important;
}

/* controller base */
.ei-lobby .ei-lobby-controls{
  --pad-bg:#b9b9b9;
  --pad-bg2:#7f7f7f;
  --pad-border:#242424;
  --pad-key:#1f2933;
  --pad-key2:#0b0f14;
  --pad-arrow:#f8fafc;
  --pad-glow:rgba(0,0,0,.24);
  width:176px!important;
  height:176px!important;
  padding:12px!important;
  display:grid!important;
  grid-template-columns:46px 46px 46px!important;
  grid-template-rows:46px 46px 46px!important;
  gap:7px!important;
  justify-content:center!important;
  align-content:center!important;
  place-content:center!important;
  margin:14px auto 0!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,var(--pad-bg),var(--pad-bg2))!important;
  border:3px solid var(--pad-border)!important;
  box-shadow:inset 0 3px 0 rgba(255,255,255,.5), inset 0 -5px 0 rgba(0,0,0,.22), 0 8px 18px var(--pad-glow)!important;
  backdrop-filter:none!important;
  overflow:visible!important;
}
.ei-lobby .ei-lobby-controls:before{
  content:""!important;
  position:absolute!important;
  left:50%!important;top:50%!important;
  width:46px!important;height:46px!important;
  transform:translate(-50%,-50%)!important;
  border-radius:7px!important;
  background:var(--pad-key)!important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.10), inset 0 -4px 0 rgba(0,0,0,.42)!important;
  pointer-events:none!important;
  z-index:1!important;
}
.ei-lobby .ei-lobby-dpad{
  position:relative!important;
  z-index:2!important;
  width:46px!important;height:46px!important;
  min-width:46px!important;min-height:46px!important;
  padding:0!important;margin:0!important;
  border:0!important;
  border-radius:7px!important;
  background:var(--pad-key)!important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.12), inset 0 -4px 0 rgba(0,0,0,.42), 0 3px 0 var(--pad-key2), 0 7px 10px rgba(0,0,0,.22)!important;
  font-size:0!important;
  color:var(--pad-arrow)!important;
  transform:none!important;
}
.ei-lobby .ei-lobby-dpad:after{content:none!important;display:none!important;}
.ei-lobby .ei-lobby-dpad-up{grid-column:2!important;grid-row:1!important;}
.ei-lobby .ei-lobby-dpad-left{grid-column:1!important;grid-row:2!important;}
.ei-lobby .ei-lobby-dpad-right{grid-column:3!important;grid-row:2!important;}
.ei-lobby .ei-lobby-dpad-down{grid-column:2!important;grid-row:3!important;}
.ei-lobby .ei-lobby-dpad:before{
  content:""!important;
  position:absolute!important;
  left:50%!important;top:50%!important;
  transform:translate(-50%,-50%)!important;
  width:0!important;height:0!important;
  filter:none!important;
  z-index:3!important;
}
.ei-lobby .ei-lobby-dpad-up:before{border-left:7px solid transparent!important;border-right:7px solid transparent!important;border-bottom:11px solid var(--pad-arrow)!important;}
.ei-lobby .ei-lobby-dpad-down:before{border-left:7px solid transparent!important;border-right:7px solid transparent!important;border-top:11px solid var(--pad-arrow)!important;}
.ei-lobby .ei-lobby-dpad-left:before{border-top:7px solid transparent!important;border-bottom:7px solid transparent!important;border-right:11px solid var(--pad-arrow)!important;}
.ei-lobby .ei-lobby-dpad-right:before{border-top:7px solid transparent!important;border-bottom:7px solid transparent!important;border-left:11px solid var(--pad-arrow)!important;}
.ei-lobby .ei-lobby-dpad:hover{filter:brightness(1.08);transform:none!important;}
.ei-lobby .ei-lobby-dpad:active{transform:translateY(3px)!important;box-shadow:inset 0 2px 5px rgba(0,0,0,.42),0 1px 0 var(--pad-key2),0 3px 5px rgba(0,0,0,.18)!important;}

.ei-lobby-dpad-style-fc .ei-lobby-controls{--pad-bg:#d7d7d7;--pad-bg2:#8e8e8e;--pad-border:#333;--pad-key:#1f2933;--pad-key2:#0b0f14;--pad-arrow:#f8fafc;}
.ei-lobby-dpad-style-nes .ei-lobby-controls{--pad-bg:#d6d6d6;--pad-bg2:#a6a6a6;--pad-border:#4b4b4b;--pad-key:#181818;--pad-key2:#050505;--pad-arrow:#e5e7eb;}
.ei-lobby-dpad-style-sfc .ei-lobby-controls{--pad-bg:#d8d2e6;--pad-bg2:#aaa1c8;--pad-border:#6b5f89;--pad-key:#4b3b76;--pad-key2:#261844;--pad-arrow:#f3e8ff;}
.ei-lobby-dpad-style-snes .ei-lobby-controls{--pad-bg:#dddde2;--pad-bg2:#aaaab3;--pad-border:#6b7280;--pad-key:#554173;--pad-key2:#281a3a;--pad-arrow:#f8fafc;}
.ei-lobby-dpad-style-md .ei-lobby-controls{--pad-bg:#1d232d;--pad-bg2:#080b10;--pad-border:#020617;--pad-key:#111827;--pad-key2:#000;--pad-arrow:#ef4444;}
.ei-lobby-dpad-style-ps .ei-lobby-controls{--pad-bg:#e5e7eb;--pad-bg2:#9ca3af;--pad-border:#4b5563;--pad-key:#3f4652;--pad-key2:#1f2937;--pad-arrow:#c7d2fe;}
.ei-lobby-dpad-style-xbox .ei-lobby-controls{--pad-bg:#172617;--pad-bg2:#0a140a;--pad-border:#102310;--pad-key:#1f3a1f;--pad-key2:#071207;--pad-arrow:#86efac;}
.ei-lobby-dpad-style-western .ei-lobby-controls{--pad-bg:#8a5a2f;--pad-bg2:#4b2e16;--pad-border:#2f1b0c;--pad-key:#3b2413;--pad-key2:#1b0e06;--pad-arrow:#f5d49b;box-shadow:inset 0 2px 0 rgba(255,231,186,.24), inset 0 -5px 0 rgba(0,0,0,.28), 0 8px 18px rgba(74,43,17,.35)!important;}
.ei-lobby-dpad-style-cyberpunk .ei-lobby-controls{--pad-bg:#15112b;--pad-bg2:#050816;--pad-border:#00e5ff;--pad-key:#261a45;--pad-key2:#060814;--pad-arrow:#faff00;box-shadow:inset 0 0 18px rgba(0,229,255,.18),0 0 24px rgba(255,0,200,.22)!important;}
.ei-lobby-dpad-style-nasapunk .ei-lobby-controls{--pad-bg:#e8edf2;--pad-bg2:#7e8996;--pad-border:#334155;--pad-key:#243244;--pad-key2:#101827;--pad-arrow:#f97316;}
.ei-lobby-dpad-style-dq .ei-lobby-controls{--pad-bg:#3b82f6;--pad-bg2:#1d4ed8;--pad-border:#facc15;--pad-key:#1e3a8a;--pad-key2:#0f1e56;--pad-arrow:#fff7ed;box-shadow:inset 0 3px 0 rgba(255,255,255,.34), inset 0 -5px 0 rgba(0,0,0,.22), 0 8px 18px rgba(29,78,216,.28)!important;}
.ei-lobby-dpad-style-cyberpunk .ei-lobby-dpad{box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 -4px 0 rgba(0,0,0,.45),0 0 12px rgba(0,229,255,.45)!important;}
.ei-lobby-dpad-style-dq .ei-lobby-dpad{border:1px solid rgba(250,204,21,.5)!important;}
@media (max-width:480px){
  .ei-lobby .ei-lobby-controls{width:184px!important;height:184px!important;grid-template-columns:48px 48px 48px!important;grid-template-rows:48px 48px 48px!important;gap:8px!important;}
  .ei-lobby .ei-lobby-dpad{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;}
}

/* v0.2.2: 48x64 clear-face pixel character system */
.ei-lobby-avatar.has-pixel-character{
  width:var(--ei-lobby-character-size,72px)!important;
  height:var(--ei-lobby-character-size,72px)!important;
  transform:translate(-50%,-50%)!important;
  overflow:visible!important;
}
.ei-lobby-avatar.has-pixel-character img.ei-lobby-character-img{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  width:var(--ei-lobby-character-size,72px)!important;
  height:var(--ei-lobby-character-size,72px)!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  image-rendering:pixelated!important;
  image-rendering:crisp-edges!important;
}
.ei-lobby-avatar.has-wp-avatar img.ei-lobby-character-img{
  border-radius:50%!important;
  border:3px solid #fff!important;
  background:#fff!important;
}
.ei-lobby-avatar.has-pixel-character.is-me:after{
  content:"";
  position:absolute;
  left:50%;
  top:calc(100% - 7px);
  width:60%;
  height:9px;
  transform:translateX(-50%);
  border-radius:999px;
  background:rgba(214,165,69,.35);
  box-shadow:0 0 0 2px rgba(214,165,69,.2);
  z-index:-1;
}
.ei-lobby-name-hide .ei-lobby-avatar span{display:none!important;}
.ei-lobby-name-hover .ei-lobby-avatar span{opacity:0;visibility:hidden;transition:opacity .14s ease,visibility .14s ease;}
.ei-lobby-name-hover .ei-lobby-avatar:hover span{opacity:1;visibility:visible;}
.ei-lobby-bubble-hide .ei-lobby-speech{display:none!important;}
.ei-lobby-online-user.has-pixel-character img.ei-lobby-online-character{
  width:32px!important;
  height:48px!important;
  object-fit:contain!important;

  border-radius:0!important;
  background:transparent!important;
  border:0!important;
  width:30px!important;
  height:30px!important;
  image-rendering:pixelated!important;
}
.ei-lobby-character-picker{background:rgba(255,255,255,.96);border:1px solid rgba(15,23,42,.12);border-radius:18px;padding:18px;box-shadow:0 14px 34px rgba(15,23,42,.1);max-width:920px;margin:16px 0;}
.ei-lobby-character-picker-head h3{margin:0 0 4px;font-size:20px;}
.ei-lobby-character-picker-head p{margin:0 0 14px;color:#64748b;}
.ei-lobby-character-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr));gap:12px;}
.ei-lobby-character-choice{appearance:none;border:1px solid rgba(15,23,42,.14);background:linear-gradient(180deg,#fff,#f8fafc);border-radius:14px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;box-shadow:0 8px 18px rgba(15,23,42,.06);transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;}
.ei-lobby-character-choice:hover{transform:translateY(-1px);border-color:rgba(214,165,69,.55);box-shadow:0 12px 24px rgba(15,23,42,.12);}
.ei-lobby-character-choice.is-selected{border-color:#d6a545;box-shadow:0 0 0 3px rgba(214,165,69,.18),0 12px 24px rgba(15,23,42,.12);}
.ei-lobby-character-choice img{width:88px;height:132px;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges;}
.ei-lobby-character-choice strong{font-size:13px;color:#0f172a;}
.ei-lobby-character-choice span{font-size:12px;color:#64748b;}
.ei-lobby-character-picker-actions{display:flex;align-items:center;gap:12px;margin-top:14px;}
.ei-lobby-character-status{font-size:13px;color:#64748b;}
.ei-lobby-character-status.is-success{color:#166534;}
.ei-lobby-character-status.is-error{color:#991b1b;}
.ei-lobby-character-status.is-pending{color:#92400e;}

/* v0.2.1 extra tweaks for 32x48 sprites */
.ei-lobby-avatar.has-pixel-character img.ei-lobby-character-img{object-fit:contain!important;filter:drop-shadow(0 4px 6px rgba(0,0,0,.22));}
.ei-lobby-avatar.has-pixel-character{z-index:6!important;}
.ei-lobby-character-admin-card img{width:88px;height:132px;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges;}


/* v0.2.2 final clear-face character display */
.ei-lobby-avatar.has-pixel-character{
  width:var(--ei-lobby-character-size,72px)!important;
  height:var(--ei-lobby-character-size,72px)!important;
}
.ei-lobby-avatar.has-pixel-character img.ei-lobby-character-img{
  width:var(--ei-lobby-character-size,72px)!important;
  height:var(--ei-lobby-character-size,72px)!important;
  object-fit:contain!important;
  image-rendering:pixelated!important;
  image-rendering:crisp-edges!important;
}
.ei-lobby-character-choice img{
  width:96px!important;
  height:128px!important;
  object-fit:contain!important;
  image-rendering:pixelated!important;
  image-rendering:crisp-edges!important;
}
.ei-lobby-online-user.has-pixel-character img.ei-lobby-online-character{
  width:32px!important;
  height:43px!important;
  object-fit:contain!important;
  border-radius:0!important;
  background:transparent!important;
  image-rendering:pixelated!important;
  image-rendering:crisp-edges!important;
}

/* v0.3.0: Gather-style custom avatar builder + CSS pixel walk animation */
.ei-lobby-avatar.has-custom-avatar{
  width:var(--ei-lobby-character-size,84px)!important;
  height:var(--ei-lobby-character-size,84px)!important;
  transform:translate(-50%,-72%)!important;
  transition:left .18s ease,top .18s ease!important;
  overflow:visible!important;
  display:block!important;
}
.ei-lobby-avatar.has-custom-avatar.is-me{transition:none!important;}
.ei-lobby-avatar.has-custom-avatar span{top:calc(100% + 3px)!important;}
.ei-lobby-pixel-person{position:absolute;left:50%;top:50%;width:var(--ei-lobby-character-size,84px);height:calc(var(--ei-lobby-character-size,84px) * 1.22);transform:translate(-50%,-58%);transform-origin:center bottom;image-rendering:pixelated;filter:drop-shadow(0 6px 5px rgba(0,0,0,.32));display:flex;align-items:flex-end;justify-content:center;}
.ei-lobby-pixel-person:after{content:"";position:absolute;left:50%;bottom:2px;width:58%;height:10%;transform:translateX(-50%);border-radius:50%;background:rgba(0,0,0,.24);z-index:-1;}
.ei-lobby-pixel-sprite{width:100%;height:100%;object-fit:contain;object-position:center bottom;image-rendering:auto;display:block;}
.ei-lobby-pixel-person.is-dir-left .ei-lobby-pixel-sprite{transform:scaleX(-1)}
.ei-lobby-pixel-person.is-dir-right .ei-lobby-pixel-sprite{transform:scaleX(1)}
.ei-lobby-pixel-person.is-dir-up .ei-lobby-pixel-sprite{filter:brightness(.88) saturate(.92)}
.ei-lobby-walk-on .ei-lobby-pixel-person.is-walking{animation:eiLobbySpriteWalk calc(var(--ei-lobby-walk-speed,150ms) * 2) steps(2,end) infinite;}
@keyframes eiLobbySpriteWalk{0%{transform:translate(-50%,-58%)}50%{transform:translate(-50%,-62%)}100%{transform:translate(-50%,-58%)}}
.ei-lobby-mini-avatar{width:38px;height:44px;position:relative;flex:0 0 38px;overflow:visible}.ei-lobby-mini-avatar .ei-lobby-pixel-person{--ei-lobby-character-size:38px;filter:none;}
.ei-lobby-builder-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}.ei-lobby-builder-preview{background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid rgba(15,23,42,.12);border-radius:16px;padding:14px;position:sticky;top:16px}.ei-lobby-builder-preview-stage{height:240px;border-radius:14px;background:linear-gradient(45deg,#e2e8f0 25%,transparent 25%),linear-gradient(-45deg,#e2e8f0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e2e8f0 75%),linear-gradient(-45deg,transparent 75%,#e2e8f0 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0;background-color:#f8fafc;position:relative;overflow:hidden}.ei-lobby-builder-preview-stage .ei-lobby-avatar{left:50%;top:58%;}.ei-lobby-builder-preview-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.ei-lobby-preview-walk.is-active{background:#111827;color:#fff}.ei-lobby-builder-controls{display:flex;flex-direction:column;gap:12px}.ei-lobby-builder-group{border:1px solid rgba(15,23,42,.12);border-radius:14px;padding:12px;background:#fff}.ei-lobby-builder-group legend{padding:0 6px;font-weight:700;color:#334155}.ei-lobby-builder-options{display:flex;flex-wrap:wrap;gap:8px}.ei-lobby-builder-option{appearance:none;border:1px solid rgba(15,23,42,.14);border-radius:14px;background:#fff;padding:8px 10px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;box-shadow:0 4px 12px rgba(15,23,42,.05);font-size:13px}.ei-lobby-builder-option:hover{border-color:rgba(214,165,69,.55)}.ei-lobby-builder-option.is-selected{border-color:#d6a545;background:#fffbeb;box-shadow:0 0 0 3px rgba(214,165,69,.18)}.ei-lobby-builder-group[data-group="preset"] .ei-lobby-builder-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));}.ei-lobby-builder-group[data-group="preset"] .ei-lobby-builder-option{border-radius:16px;min-height:142px;flex-direction:column;justify-content:center;text-align:center;padding:8px}.ei-lobby-preset-thumb{width:70px;height:88px;object-fit:contain;image-rendering:auto;display:block;margin-bottom:3px}.ei-lobby-color-dot{width:15px;height:15px;border-radius:50%;border:1px solid rgba(15,23,42,.24);display:inline-block}.ei-lobby-parts-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.ei-lobby-parts-admin-card{background:#fff;border:1px solid #dcdcde;border-radius:12px;padding:12px}.ei-lobby-parts-admin-card h3{margin:0 0 8px}.ei-lobby-parts-admin-card ul{margin:0;padding-left:18px}
@media (max-width:720px){.ei-lobby-builder-layout{grid-template-columns:1fr}.ei-lobby-builder-preview{position:relative;top:auto}.ei-lobby-character-picker{padding:14px}.ei-lobby-builder-options{max-height:none}}


/* v0.3.2: fix custom pixel avatar rendering in lobby (remove circular WP avatar styling) */
.ei-lobby-avatar.has-custom-avatar{
  width:var(--ei-lobby-character-size,84px)!important;
  height:calc(var(--ei-lobby-character-size,84px) * 1.26)!important;
  transform:translate(-50%,-82%)!important;
  display:block!important;
  overflow:visible!important;
}
.ei-lobby-avatar.has-custom-avatar .ei-lobby-pixel-person{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:var(--ei-lobby-character-size,84px)!important;
  height:calc(var(--ei-lobby-character-size,84px) * 1.22)!important;
  transform:translate(-50%,-58%)!important;
}
.ei-lobby-avatar.has-custom-avatar img.ei-lobby-pixel-sprite,
.ei-lobby-avatar.has-custom-avatar img.ei-lobby-character-img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  image-rendering:pixelated!important;
  image-rendering:crisp-edges!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
}
.ei-lobby-avatar.has-custom-avatar.is-me img.ei-lobby-pixel-sprite,
.ei-lobby-avatar.has-custom-avatar.is-me img.ei-lobby-character-img{
  box-shadow:none!important;
}
.ei-lobby-avatar.has-custom-avatar span{
  position:absolute!important;
  left:50%!important;
  top:calc(100% + 2px)!important;
  transform:translateX(-50%)!important;
  margin:0!important;
}
.ei-lobby-mini-avatar .ei-lobby-pixel-person img.ei-lobby-pixel-sprite,
.ei-lobby-mini-avatar .ei-lobby-pixel-person img.ei-lobby-character-img{
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  image-rendering:pixelated!important;
  image-rendering:crisp-edges!important;
}
.ei-lobby-online-user.has-custom-avatar .ei-lobby-mini-avatar{
  width:34px;
  height:42px;
}


/* v0.3.3 Gather.town-like paper doll avatar system */
.ei-lobby-paperdoll-picker{
  background:#1f2540!important;
  color:#f8fafc!important;
  border:1px solid rgba(255,255,255,.08)!important;
  box-shadow:0 18px 42px rgba(0,0,0,.28)!important;
}
.ei-lobby-paperdoll-picker .ei-lobby-character-picker-head p{color:#cbd5e1!important;}
.ei-lobby-paperdoll-panel{background:#202642;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.08);}
.ei-lobby-pd-mainnav{display:flex;gap:0;border-bottom:1px solid rgba(148,163,184,.28);padding:0 16px;background:#202642;}
.ei-lobby-pd-main-tab{appearance:none;border:0;background:transparent;color:#a9afc4;padding:15px 16px;font-weight:800;letter-spacing:.02em;cursor:pointer;border-bottom:2px solid transparent;}
.ei-lobby-pd-main-tab.is-active{color:#fff;border-color:#fff;}
.ei-lobby-pd-subnav{display:flex;gap:8px;padding:14px 16px;background:#242b4b;border-bottom:1px solid rgba(148,163,184,.22);overflow-x:auto;}
.ei-lobby-pd-subtab{appearance:none;border:0;background:#2a3154;color:#b8bed4;border-radius:999px;padding:8px 16px;font-weight:800;cursor:pointer;white-space:nowrap;}
.ei-lobby-pd-subtab.is-active{background:#6670a7;color:#fff;}
.ei-lobby-paperdoll-picker .ei-lobby-builder-preview{background:#374174!important;border-color:rgba(255,255,255,.08)!important;color:#fff!important;}
.ei-lobby-paperdoll-picker .ei-lobby-builder-preview-stage{background:#303a6a!important;}
.ei-lobby-paperdoll-picker .button{border:0!important;border-radius:12px!important;background:#59639b!important;color:#fff!important;font-weight:800!important;padding:8px 14px!important;}
.ei-lobby-paperdoll-picker .button-primary,.ei-lobby-paperdoll-picker .ei-lobby-avatar-save{background:#00d8a1!important;color:#08221b!important;}
.ei-lobby-paperdoll-picker .ei-lobby-preview-walk.is-active{background:#111827!important;color:#fff!important;}
.ei-lobby-paperdoll-picker .ei-lobby-avatar-status{margin-top:10px;color:#cbd5e1;}
.ei-lobby-paperdoll-picker .ei-lobby-avatar-status.is-success{color:#86efac;}
.ei-lobby-paperdoll-picker .ei-lobby-avatar-status.is-error{color:#fca5a5;}
.ei-lobby-pd-colors{display:flex;flex-wrap:wrap;gap:12px;padding:16px;}
.ei-lobby-pd-color{appearance:none;border:0;background:transparent;padding:0;width:30px;height:30px;border-radius:999px;cursor:pointer;}
.ei-lobby-pd-color span{display:block;width:26px;height:26px;border-radius:999px;background:var(--swatch);border:2px solid rgba(255,255,255,.88);box-shadow:0 0 0 1px rgba(0,0,0,.25);}
.ei-lobby-pd-color.is-selected span{box-shadow:0 0 0 3px #fff,0 0 0 6px rgba(102,112,167,.85);}
.ei-lobby-pd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px;padding:16px;max-height:420px;overflow:auto;}
.ei-lobby-pd-card{appearance:none;border:2px solid transparent;background:#58629a;border-radius:14px;min-height:118px;cursor:pointer;color:#fff;padding:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;}
.ei-lobby-pd-card.is-selected{border-color:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.22);}
.ei-lobby-pd-card strong{font-size:12px;line-height:1.2;}
.ei-lobby-pd-thumb{position:relative;width:58px;height:70px;display:block;}

.ei-paperdoll{
  --ei-pixel:1px;
  position:absolute;
  left:50%;
  top:50%;
  width:64px;
  height:78px;
  transform:translate(-50%,-50%);
  transform-origin:center bottom;
  image-rendering:pixelated;
  filter:drop-shadow(0 5px 4px rgba(0,0,0,.28));
}
.ei-pd-thumb .ei-paperdoll,.ei-lobby-pd-thumb .ei-paperdoll{transform:translate(-50%,-50%) scale(.82);}
.ei-lobby-mini-avatar .ei-paperdoll{transform:translate(-50%,-50%) scale(.54);}
.ei-paperdoll i{position:absolute;display:block;box-sizing:border-box;}
.ei-pd-shadow{left:15px;bottom:0;width:34px;height:8px;border-radius:50%;background:rgba(0,0,0,.25);}
.ei-pd-head{left:20px;top:10px;width:24px;height:24px;border:3px solid #283044;background:var(--ei-skin);border-radius:8px 8px 9px 9px;z-index:30;}
.ei-pd-ear{top:22px;width:6px;height:8px;background:var(--ei-skin);border:2px solid #283044;border-radius:3px;z-index:24;}
.ei-pd-ear-left{left:16px}.ei-pd-ear-right{left:42px}
.ei-pd-hair-back{left:17px;top:7px;width:30px;height:30px;background:var(--ei-hair);border:3px solid #202638;border-radius:10px 10px 9px 9px;z-index:22;}
.ei-pd-hair{left:18px;top:6px;width:28px;height:18px;background:var(--ei-hair);border:3px solid #202638;border-bottom:0;border-radius:10px 10px 5px 5px;z-index:36;}
.ei-pd-hair:before{content:"";position:absolute;left:2px;top:9px;width:8px;height:10px;background:var(--ei-hair);box-shadow:8px 2px 0 var(--ei-hair),16px 0 0 var(--ei-hair);}
.ei-paperdoll.hair-soft_part .ei-pd-hair:before{left:12px;width:12px;height:11px;box-shadow:-8px 2px 0 var(--ei-hair);}
.ei-paperdoll.hair-long_back .ei-pd-hair-back{height:42px;border-radius:11px 11px 12px 12px;}
.ei-paperdoll.hair-pony_tail .ei-pd-hair-back:after{content:"";position:absolute;right:-11px;top:16px;width:12px;height:25px;background:var(--ei-hair);border:3px solid #202638;border-radius:8px;}
.ei-paperdoll.hair-hood_short .ei-pd-hair,.ei-paperdoll.hair-hood_short .ei-pd-hair-back{background:#29345f;}
.ei-paperdoll.hair-cap_short .ei-pd-hair{height:12px;border-radius:9px 9px 2px 2px;}
.ei-paperdoll.hair-cap_short .ei-pd-hair:after{content:"";position:absolute;left:18px;top:5px;width:12px;height:5px;background:var(--ei-hair);border:2px solid #202638;border-left:0;border-radius:0 4px 4px 0;}
.ei-pd-eye{top:24px;width:4px;height:5px;background:#1c2434;border-radius:2px;z-index:40;}
.ei-pd-eye-left{left:25px}.ei-pd-eye-right{left:36px}
.ei-paperdoll.eyes-bright .ei-pd-eye{height:6px;background:#111827;}
.ei-paperdoll.eyes-serious .ei-pd-eye{height:3px;top:25px;}
.ei-pd-mouth{left:30px;top:34px;width:6px;height:2px;background:#8d3c3c;border-radius:3px;z-index:41;}
.ei-paperdoll.mouth-flat .ei-pd-mouth{height:1px;background:#6b2e2e;}
.ei-paperdoll.mouth-focus .ei-pd-mouth{width:3px;left:31px;height:3px;}
.ei-pd-body{left:21px;top:36px;width:22px;height:26px;background:#e8dcc9;border:3px solid #283044;border-radius:5px 5px 4px 4px;z-index:18;}
.ei-pd-top{left:18px;top:35px;width:28px;height:28px;background:var(--ei-top);border:3px solid #283044;border-radius:6px 6px 5px 5px;z-index:20;}
.ei-paperdoll.top-none .ei-pd-top{background:#e8dcc9;}
.ei-paperdoll.top-robe .ei-pd-top{height:34px;border-radius:7px 7px 7px 7px;}
.ei-paperdoll.top-armor .ei-pd-top{background:linear-gradient(180deg,#d2d7e4,#7b8498);}
.ei-paperdoll.top-vest .ei-pd-top{width:24px;left:20px;border-left-width:5px;border-right-width:5px;}
.ei-pd-bottom{left:20px;top:58px;width:24px;height:13px;background:var(--ei-bottom);border:3px solid #283044;border-top:0;z-index:19;border-radius:0 0 5px 5px;}
.ei-paperdoll.bottom-skirt .ei-pd-bottom{left:17px;width:30px;height:15px;border-radius:0 0 9px 9px;}
.ei-paperdoll.bottom-robe_bottom .ei-pd-bottom{left:18px;width:28px;height:18px;border-radius:0 0 8px 8px;}
.ei-pd-leg{top:67px;width:8px;height:11px;background:var(--ei-bottom);border:3px solid #283044;border-top:0;z-index:14;}
.ei-pd-leg-left{left:22px}.ei-pd-leg-right{left:34px}
.ei-pd-shoe{top:75px;width:10px;height:6px;background:var(--ei-shoes);border:2px solid #283044;border-radius:2px;z-index:16;}
.ei-pd-shoe-left{left:20px}.ei-pd-shoe-right{left:34px}
.ei-pd-arm{top:39px;width:8px;height:22px;background:var(--ei-top);border:3px solid #283044;border-radius:4px;z-index:17;}
.ei-pd-arm-left{left:13px}.ei-pd-arm-right{left:43px}
.ei-pd-backpack{display:none;left:12px;top:33px;width:40px;height:33px;background:var(--ei-acc);border:3px solid #283044;border-radius:8px;z-index:7;}
.ei-paperdoll.accessory-backpack .ei-pd-backpack{display:block;}
.ei-pd-glasses{display:none;left:23px;top:23px;width:19px;height:7px;border-left:2px solid #151923;border-right:2px solid #151923;z-index:45;}
.ei-pd-glasses:before,.ei-pd-glasses:after{content:"";position:absolute;top:0;width:7px;height:6px;border:2px solid #151923;border-radius:3px;}
.ei-pd-glasses:before{left:-4px}.ei-pd-glasses:after{right:-4px}
.ei-paperdoll.accessory-glasses .ei-pd-glasses{display:block;}
.ei-pd-prop{display:none;z-index:46;}
.ei-paperdoll.accessory-book .ei-pd-prop{display:block;left:44px;top:44px;width:12px;height:16px;background:var(--ei-acc);border:2px solid #283044;border-radius:2px;}
.ei-paperdoll.accessory-scarf .ei-pd-prop{display:block;left:18px;top:35px;width:28px;height:8px;background:var(--ei-acc);border:2px solid #283044;border-radius:6px;z-index:44;}
.ei-pd-special-back{display:none;left:13px;top:33px;width:38px;height:38px;background:var(--ei-special);border:3px solid #283044;border-radius:7px 7px 14px 14px;z-index:5;}
.ei-paperdoll.special-cape .ei-pd-special-back{display:block;}
.ei-paperdoll.special-hood .ei-pd-hair-back,.ei-paperdoll.special-hood .ei-pd-hair{background:var(--ei-special);}
.ei-paperdoll.special-hat .ei-pd-special-front{display:block;left:17px;top:3px;width:30px;height:12px;background:var(--ei-special);border:3px solid #283044;border-radius:8px 8px 3px 3px;z-index:48;}
.ei-pd-special-front{display:none;}
.ei-paperdoll.gender-female .ei-pd-body{width:21px;left:21px;}
.ei-paperdoll.gender-female .ei-pd-top{width:27px;left:18px;}
.ei-paperdoll.gender-female .ei-pd-head{border-radius:9px 9px 10px 10px;}
.ei-paperdoll.is-dir-left{transform:translate(-50%,-50%) scaleX(-1);}
.ei-paperdoll.is-dir-right{transform:translate(-50%,-50%) scaleX(1);}
.ei-paperdoll.is-dir-up .ei-pd-eye,.ei-paperdoll.is-dir-up .ei-pd-mouth,.ei-paperdoll.is-dir-up .ei-pd-glasses{display:none;}
.ei-paperdoll.is-dir-up .ei-pd-hair{top:7px;height:22px;}
.ei-lobby-walk-on .ei-paperdoll.is-walking .ei-pd-leg-left,
.ei-paperdoll.is-walking .ei-pd-leg-left{animation:eiPdLegA .32s steps(2,end) infinite;}
.ei-lobby-walk-on .ei-paperdoll.is-walking .ei-pd-leg-right,
.ei-paperdoll.is-walking .ei-pd-leg-right{animation:eiPdLegB .32s steps(2,end) infinite;}
.ei-lobby-walk-on .ei-paperdoll.is-walking .ei-pd-arm-left,
.ei-paperdoll.is-walking .ei-pd-arm-left{animation:eiPdLegB .32s steps(2,end) infinite;}
.ei-lobby-walk-on .ei-paperdoll.is-walking .ei-pd-arm-right,
.ei-paperdoll.is-walking .ei-pd-arm-right{animation:eiPdLegA .32s steps(2,end) infinite;}
@keyframes eiPdLegA{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
@keyframes eiPdLegB{0%,100%{transform:translateY(3px)}50%{transform:translateY(0)}}

.ei-lobby-avatar.has-custom-avatar .ei-paperdoll{
  width:64px!important;
  height:78px!important;
  transform:translate(-50%,-50%) scale(calc(var(--ei-lobby-character-size,84px) / 78))!important;
}
.ei-lobby-avatar.has-custom-avatar .ei-paperdoll.is-dir-left{transform:translate(-50%,-50%) scale(calc(var(--ei-lobby-character-size,84px) / 78)) scaleX(-1)!important;}
.ei-lobby-avatar.has-custom-avatar .ei-paperdoll.is-dir-right{transform:translate(-50%,-50%) scale(calc(var(--ei-lobby-character-size,84px) / 78))!important;}
.ei-lobby-pd-card .ei-paperdoll{filter:none;}
@media (max-width:720px){
  .ei-lobby-pd-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));max-height:360px;}
  .ei-lobby-pd-main-tab{padding:13px 10px;font-size:13px;}
}

/* v0.3.4: single automatic avatar preset + bob movement */
.ei-lobby-avatar.has-custom-avatar{
  width:var(--ei-lobby-character-size,84px)!important;
  height:calc(var(--ei-lobby-character-size,84px) * 1.25)!important;
  transform:translate(-50%,-80%)!important;
  display:block!important;
  overflow:visible!important;
}
.ei-lobby-auto-avatar-person{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:var(--ei-lobby-character-size,84px)!important;
  height:calc(var(--ei-lobby-character-size,84px) * 1.22)!important;
  transform:translate(-50%,-50%)!important;
  transform-origin:center bottom!important;
  filter:drop-shadow(0 6px 5px rgba(0,0,0,.3));
}
.ei-lobby-auto-avatar-person:after{
  content:"";
  position:absolute;
  left:50%;
  bottom:3px;
  width:54%;
  height:10%;
  transform:translateX(-50%);
  border-radius:50%;
  background:rgba(0,0,0,.22);
  z-index:-1;
}
.ei-lobby-avatar.has-custom-avatar img.ei-lobby-auto-avatar-sprite,
.ei-lobby-avatar.has-custom-avatar img.ei-lobby-character-img,
.ei-lobby-auto-avatar-person img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
  image-rendering:pixelated!important;
  image-rendering:crisp-edges!important;
}
.ei-lobby-avatar.has-custom-avatar.is-me img.ei-lobby-auto-avatar-sprite,
.ei-lobby-avatar.has-custom-avatar.is-me img.ei-lobby-character-img{box-shadow:none!important;}
.ei-lobby-avatar.has-custom-avatar span{
  position:absolute!important;
  left:50%!important;
  top:calc(100% + 2px)!important;
  transform:translateX(-50%)!important;
  margin:0!important;
}
.ei-lobby-walk-on .ei-lobby-avatar.is-walking .ei-lobby-auto-avatar-person,
.ei-lobby-walk-on .ei-lobby-auto-avatar-person.is-walking,
.ei-lobby-walk-on .ei-lobby-auto-avatar-person.is-moving{
  animation:eiLobbyAutoBob .30s ease-in-out infinite!important;
}
@keyframes eiLobbyAutoBob{
  0%,100%{transform:translate(-50%,-50%)}
  50%{transform:translate(-50%,-57%)}
}
.ei-lobby-mini-avatar.is-auto-avatar{width:38px;height:46px;position:relative;flex:0 0 38px;overflow:visible;}
.ei-lobby-mini-avatar.is-auto-avatar .ei-lobby-auto-avatar-person{--ei-lobby-character-size:38px;filter:none;}
.ei-lobby-mini-avatar.is-auto-avatar img{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;}
.ei-lobby-auto-avatar-status{max-width:760px;background:#fff;border:1px solid rgba(15,23,42,.12);border-radius:16px;padding:18px;box-shadow:0 12px 32px rgba(15,23,42,.08);}
.ei-lobby-auto-avatar-card{display:flex;gap:18px;align-items:center;margin-top:14px;background:#f8fafc;border:1px solid rgba(15,23,42,.08);border-radius:14px;padding:14px;}
.ei-lobby-auto-avatar-preview{width:96px;height:118px;position:relative;background:#eef2ff;border-radius:14px;display:flex;align-items:center;justify-content:center;}
.ei-lobby-auto-avatar-img{width:84px!important;height:104px!important;object-fit:contain!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;image-rendering:pixelated!important;}
.ei-lobby-auto-rules-view pre{white-space:pre-wrap;background:#0f172a;color:#e2e8f0;border-radius:10px;padding:12px;overflow:auto;}


/* v0.3.5 auto-uploaded avatar image rendering */
.ei-lobby-avatar.has-custom-avatar .ei-lobby-auto-avatar-person{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:var(--ei-lobby-character-size,84px)!important;
  height:calc(var(--ei-lobby-character-size,84px) * 1.24)!important;
  transform:translate(-50%,-58%)!important;
  transform-origin:center bottom!important;
  filter:drop-shadow(0 5px 5px rgba(0,0,0,.26));
}
.ei-lobby-avatar.has-custom-avatar img.ei-lobby-auto-avatar-sprite,
.ei-lobby-avatar.has-custom-avatar img.ei-lobby-character-img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
  image-rendering:pixelated!important;
  image-rendering:crisp-edges!important;
}
.ei-lobby-auto-avatar-blank{
  width:var(--ei-lobby-character-size,84px);
  height:var(--ei-lobby-character-size,84px);
  border-radius:16px;
  border:1px dashed rgba(148,163,184,.7);
  background:rgba(255,255,255,.18);
}
.ei-lobby-walk-on .ei-lobby-avatar.has-custom-avatar .ei-lobby-auto-avatar-person.is-moving{
  animation:eiLobbyAutoBob calc(var(--ei-lobby-walk-speed,150ms) * 2) ease-in-out infinite!important;
}
@keyframes eiLobbyAutoBob{
  0%,100%{transform:translate(-50%,-58%)}
  50%{transform:translate(-50%,-66%)}
}
.ei-lobby-auto-avatar-empty{
  width:120px;
  min-height:86px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px dashed #cbd5e1;
  border-radius:14px;
  color:#64748b;
  text-align:center;
  padding:10px;
  background:#f8fafc;
}


/* v0.3.6: idle bob only. Moving avatars slide directly without bobbing. */
.ei-lobby-walk-on .ei-lobby-avatar.has-custom-avatar .ei-lobby-auto-avatar-person.is-moving{
  animation:none!important;
}
.ei-lobby-walk-on .ei-lobby-avatar.has-custom-avatar .ei-lobby-auto-avatar-person.is-idle{
  animation:eiLobbyAutoIdleBob calc(var(--ei-lobby-walk-speed,150ms) * 4) ease-in-out infinite!important;
}
@keyframes eiLobbyAutoIdleBob{
  0%,100%{transform:translate(-50%,-58%)}
  50%{transform:translate(-50%,-64%)}
}


/* v0.3.7 Hero Animator style idle float. Moving = no float. */
.ei-lobby-avatar.has-custom-avatar .ei-lobby-auto-avatar-person.is-moving{
  animation:none!important;
}
.ei-lobby-avatar.has-custom-avatar .ei-lobby-auto-avatar-person.is-idle{
  animation:float-ei-lobby-auto-avatar 350ms infinite ease-in-out!important;
}
@keyframes float-ei-lobby-auto-avatar{
  0%{transform:translate(-50%,-58%)}
  50%{transform:translate(-50%,-66%)}
  100%{transform:translate(-50%,-58%)}
}
/* Use backend speed setting when the parent has the CSS variable; fallback remains 350ms. */
.ei-lobby-avatar.has-custom-avatar .ei-lobby-auto-avatar-person.is-idle{
  animation-duration:calc(var(--ei-lobby-walk-speed,175ms) * 2)!important;
}


/* v0.3.8 final idle float: animate the actual image, not the positioned wrapper. */
.ei-lobby-avatar.has-custom-avatar .ei-lobby-auto-avatar-person,
.ei-lobby-avatar.has-custom-avatar .ei-lobby-auto-avatar-person.is-idle,
.ei-lobby-avatar.has-custom-avatar .ei-lobby-auto-avatar-person.is-moving{
  animation:none!important;
}

.ei-lobby-avatar.has-custom-avatar .ei-lobby-auto-avatar-person.is-moving img.ei-lobby-auto-avatar-sprite,
.ei-lobby-avatar.has-custom-avatar.is-moving .ei-lobby-auto-avatar-person img.ei-lobby-auto-avatar-sprite,
.ei-lobby-avatar.has-custom-avatar.is-walking .ei-lobby-auto-avatar-person img.ei-lobby-auto-avatar-sprite{
  animation:none!important;
  transform:translateY(0)!important;
}

.ei-lobby-avatar.has-custom-avatar .ei-lobby-auto-avatar-person.is-idle img.ei-lobby-auto-avatar-sprite,
.ei-lobby-avatar.has-custom-avatar.is-idle .ei-lobby-auto-avatar-person img.ei-lobby-auto-avatar-sprite,
.ei-lobby-avatar.has-custom-avatar:not(.is-moving):not(.is-walking) .ei-lobby-auto-avatar-person img.ei-lobby-auto-avatar-sprite{
  animation:float-1762982383408 var(--ei-lobby-float-speed,350ms) infinite ease-in-out!important;
  will-change:transform;
}

@keyframes float-1762982383408{
  0%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
  100%{transform:translateY(0)}
}

/* Map the backend speed setting to the requested Hero Animator style speed. */
.ei-lobby{
  --ei-lobby-float-speed:calc(var(--ei-lobby-walk-speed,175ms) * 2);
}

/* v0.3.9: RPG mode disables social panel and uses full-width exploration layout */
.ei-lobby-mode-rpg .ei-lobby-layout{
  grid-template-columns:minmax(0,1fr)!important;
}
.ei-lobby-mode-rpg .ei-lobby-stage-wrap{
  max-width:100%;
}
.ei-lobby-mode-rpg .ei-lobby-hint{
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
  border-radius:12px;
  padding:9px 12px;
}
.ei-lobby-mode-rpg .ei-lobby-speech{
  display:none!important;
}

/* v0.3.10 prettier interactive object buttons */
.ei-lobby-object{
  border:1px solid rgba(255,255,255,.68)!important;
  border-radius:16px!important;
  background:linear-gradient(135deg,rgba(15,23,42,.44),rgba(214,165,69,.28))!important;
  backdrop-filter:blur(2px);
  box-shadow:0 10px 24px rgba(15,23,42,.22),inset 0 0 0 1px rgba(255,255,255,.14)!important;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease!important;
}
.ei-lobby-object:hover{
  background:linear-gradient(135deg,rgba(15,23,42,.56),rgba(214,165,69,.44))!important;
  transform:translateY(-2px) scale(1.015)!important;
  box-shadow:0 16px 30px rgba(15,23,42,.28),0 0 0 3px rgba(214,165,69,.16)!important;
}
.ei-lobby-object span{
  background:rgba(15,23,42,.82)!important;
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 5px 12px rgba(0,0,0,.18);
  font-weight:800;
  letter-spacing:.02em;
}

/* v0.3.12 object interaction polish + arrival prompt */
.ei-lobby-object{
  border-radius:14px!important;
  border:1px solid rgba(255,255,255,.62)!important;
  background:rgba(250,204,21,.14)!important;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.12),0 0 0 rgba(250,204,21,0)!important;
  color:#fff!important;
  transition:background .18s ease, box-shadow .18s ease, transform .18s ease, opacity .18s ease!important;
}
.ei-lobby-object.is-glowing{
  background:radial-gradient(circle at center,rgba(250,204,21,.44),rgba(250,204,21,.14) 58%,rgba(250,204,21,.05))!important;
  box-shadow:0 0 18px rgba(250,204,21,.42),inset 0 0 0 1px rgba(255,255,255,.35)!important;
  animation:eiLobbyObjectGlow 1.35s ease-in-out infinite!important;
}
.ei-lobby-object.is-quiet{
  background:rgba(255,255,255,.03)!important;
  border-color:rgba(255,255,255,.08)!important;
  box-shadow:none!important;
  opacity:.62;
}
.ei-lobby-object.is-quiet span{opacity:0;transform:translateY(2px);transition:opacity .16s ease,transform .16s ease;}
.ei-lobby-object.is-quiet:hover span,.ei-lobby-object.is-quiet:focus span{opacity:1;transform:translateY(0);}
.ei-lobby-object:hover{transform:translateY(-1px)!important;background:rgba(250,204,21,.26)!important;}
.ei-lobby-object span{
  background:rgba(15,23,42,.82)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:0 8px 18px rgba(15,23,42,.22)!important;
}
@keyframes eiLobbyObjectGlow{0%,100%{filter:brightness(1)}50%{filter:brightness(1.25)}}

.ei-lobby-modal{
  background:rgba(8,13,28,.64)!important;
  backdrop-filter:blur(5px)!important;
  padding:22px!important;
}
.ei-lobby-modal-card{
  width:min(720px,calc(100vw - 40px))!important;
  max-height:min(82vh,760px)!important;
  overflow:auto!important;
  background:linear-gradient(180deg,#ffffff,#f8fafc)!important;
  border:1px solid rgba(255,255,255,.9)!important;
  border-radius:24px!important;
  padding:0!important;
  box-shadow:0 28px 90px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.8)!important;
}
.ei-lobby-modal-close{
  position:absolute!important;
  top:14px!important;
  right:14px!important;
  width:38px!important;
  height:38px!important;
  border:0!important;
  border-radius:14px!important;
  background:#eef2f7!important;
  color:#334155!important;
  font-size:24px!important;
  line-height:38px!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-shadow:0 8px 20px rgba(15,23,42,.12)!important;
  z-index:3!important;
}
.ei-lobby-modal-close:hover{background:#e2e8f0!important;color:#0f172a!important;}
.ei-lobby-modal-body{padding:28px 30px 30px!important;min-height:120px!important;}
.ei-lobby-modal-title{
  margin:0 48px 18px 0!important;
  font-size:22px!important;
  line-height:1.25!important;
  font-weight:900!important;
  color:#0f172a!important;
  letter-spacing:.01em!important;
}
.ei-lobby-modal-content{
  color:#334155!important;
  font-size:16px!important;
  line-height:1.75!important;
}
.ei-lobby-modal-content p:first-child{margin-top:0!important;}
.ei-lobby-interaction-prompt p{
  margin:0 0 22px!important;
  color:#475569!important;
  font-size:16px!important;
  line-height:1.7!important;
}
.ei-lobby-interaction-actions{
  display:flex!important;
  justify-content:flex-end!important;
  gap:12px!important;
  margin-top:22px!important;
}
.ei-lobby-interaction-actions button{
  min-width:96px!important;
  border:0!important;
  border-radius:14px!important;
  padding:11px 16px!important;
  font-weight:850!important;
  cursor:pointer!important;
}
.ei-lobby-interaction-cancel{background:#e2e8f0!important;color:#334155!important;}
.ei-lobby-interaction-confirm{background:linear-gradient(135deg,#facc15,#f59e0b)!important;color:#301800!important;box-shadow:0 10px 22px rgba(245,158,11,.28)!important;}
@media(max-width:640px){.ei-lobby-modal-body{padding:24px 20px 22px!important}.ei-lobby-modal-title{font-size:19px!important;margin-right:42px!important}.ei-lobby-interaction-actions{flex-direction:column-reverse}.ei-lobby-interaction-actions button{width:100%!important}}

/* v0.3.13 interactive object glow border + hidden label controls */
.ei-lobby-object.is-label-hidden > span{display:none!important;}
.ei-lobby-object.is-label-hidden{font-size:0!important;}
.ei-lobby-object.is-border-strong{border:2px solid rgba(255,255,255,.72)!important;}
.ei-lobby-object.is-border-subtle{border:1px solid rgba(255,255,255,.22)!important;}
.ei-lobby-object.is-border-none{border-color:transparent!important;outline:0!important;}
.ei-lobby-object.is-glowing.is-border-strong{
  background:rgba(250,204,21,.22)!important;
  border:2px solid rgba(250,204,21,.95)!important;
  box-shadow:0 0 0 3px rgba(250,204,21,.16),0 0 22px rgba(250,204,21,.48),inset 0 0 0 1px rgba(255,255,255,.34)!important;
}
.ei-lobby-object.is-glowing.is-border-subtle{
  background:rgba(250,204,21,.14)!important;
  border:1px solid rgba(250,204,21,.32)!important;
  box-shadow:0 0 18px rgba(250,204,21,.44),inset 0 0 18px rgba(250,204,21,.10)!important;
}
.ei-lobby-object.is-glowing.is-border-none{
  background:rgba(250,204,21,.10)!important;
  border:1px solid transparent!important;
  box-shadow:0 0 24px rgba(250,204,21,.50),inset 0 0 20px rgba(250,204,21,.10)!important;
}
.ei-lobby-object.is-quiet.is-border-strong{
  background:rgba(15,23,42,.16)!important;
  border:2px solid rgba(148,163,184,.46)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10)!important;
}
.ei-lobby-object.is-quiet.is-border-subtle{
  background:rgba(15,23,42,.08)!important;
  border:1px solid rgba(148,163,184,.20)!important;
  box-shadow:none!important;
}
.ei-lobby-object.is-quiet.is-border-none{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
.ei-lobby-object.is-border-none:hover,
.ei-lobby-object.is-label-hidden:hover{transform:none!important;}


/* v0.3.14 grid-aligned interaction highlight + faster arrival feel */
.ei-lobby-object{
  border-radius:0!important;
  transform:none!important;
}
.ei-lobby-object:hover{
  transform:none!important;
}
.ei-lobby-object.is-border-strong{
  border-radius:0!important;
  border:2px solid rgba(255,255,255,.72)!important;
}
.ei-lobby-object.is-border-subtle{
  border-radius:0!important;
  border:1px solid rgba(255,255,255,.22)!important;
}
.ei-lobby-object.is-border-none{
  border-radius:0!important;
  border:1px solid transparent!important;
}
.ei-lobby-object.is-glowing.is-border-strong{
  border-radius:0!important;
  box-shadow:0 0 0 2px rgba(250,204,21,.20),0 0 20px rgba(250,204,21,.50),inset 0 0 14px rgba(250,204,21,.13)!important;
}
.ei-lobby-object.is-glowing.is-border-subtle{
  border-radius:0!important;
  box-shadow:0 0 16px rgba(250,204,21,.42),inset 0 0 14px rgba(250,204,21,.08)!important;
}
.ei-lobby-object.is-glowing.is-border-none{
  border-radius:0!important;
  background:rgba(250,204,21,.08)!important;
  border-color:transparent!important;
  box-shadow:0 0 22px rgba(250,204,21,.52),inset 0 0 18px rgba(250,204,21,.10)!important;
}
.ei-lobby-object.is-quiet.is-border-none{
  border-radius:0!important;
}

/* v0.3.20: rebuilt stable in-lobby module overlay. One clean rule set only. */
.ei-lobby-module-layer[hidden]{display:none!important;}
.ei-lobby-module-layer{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  z-index:2147483000!important;
  display:flex!important;
  flex-direction:column!important;
  box-sizing:border-box!important;
  background:rgba(5,10,20,.96)!important;
  color:#fff!important;
  transform:none!important;
  max-width:none!important;
  max-height:none!important;
  border-radius:0!important;
  overflow:hidden!important;
}
.ei-lobby-module-bar{
  flex:0 0 auto!important;
  min-height:52px!important;
  padding:8px 14px!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  background:linear-gradient(180deg,#172447,#0f172a)!important;
  border-bottom:1px solid rgba(255,255,255,.12)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.28)!important;
}
.ei-lobby-module-back{
  appearance:none!important;
  border:1px solid rgba(255,255,255,.2)!important;
  background:linear-gradient(180deg,#f8fafc,#dbeafe)!important;
  color:#0f172a!important;
  border-radius:12px!important;
  padding:8px 14px!important;
  font-weight:900!important;
  line-height:1.2!important;
  cursor:pointer!important;
}
.ei-lobby-module-title{
  color:#fff!important;
  font-weight:900!important;
  font-size:15px!important;
  line-height:1.25!important;
}
.ei-lobby-module-body{
  flex:1 1 auto!important;
  min-height:0!important;
  width:100%!important;
  height:auto!important;
  box-sizing:border-box!important;
  padding:10px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  background:radial-gradient(circle at top,#1c2b57 0,#0d152b 55%,#050816 100%)!important;
}
.ei-lobby-module-frame{
  box-sizing:border-box!important;
  flex:0 0 auto!important;
  max-width:100%!important;
  max-height:100%!important;
  overflow:hidden!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-radius:14px!important;
  background:#050816!important;
  box-shadow:0 24px 72px rgba(0,0,0,.42), inset 0 0 0 1px rgba(255,255,255,.04)!important;
  line-height:normal!important;
}
.ei-lobby-module-frame > *{
  max-width:none!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-frame-dialogue{
  aspect-ratio:16/9!important;
}
.ei-lobby-module-frame-dialogue > *,
.ei-lobby-module-frame-dialogue .ei-dialog-scene,
.ei-lobby-module-frame-dialogue .ei-dialog-wrapper,
.ei-lobby-module-frame-dialogue .ei-dialog-stage,
.ei-lobby-module-frame-dialogue .ei-dialog-root{
  width:100%!important;
  max-width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:100%!important;
  margin:0!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  border-radius:0!important;
}
.ei-lobby-module-frame-battle{
  aspect-ratio:4/3!important;
  padding:0!important;
  line-height:0!important;
}
.ei-lobby-module-frame-battle .ei-dq-root-wrapper{
  margin:0!important;
  padding:0!important;
  min-height:0!important;
  line-height:normal!important;
  background:transparent!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-frame-battle .dq-root{
  display:block!important;
  margin:0!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-frame-battle .ei-dq-root-wrapper + style,
.ei-lobby-module-frame-battle style{display:none!important;}
.ei-lobby.is-module-open .ei-lobby-stage{filter:saturate(.75) brightness(.65);}
.ei-lobby.is-module-open .ei-lobby-controls,
.ei-lobby.is-module-open .ei-lobby-chat-panel{pointer-events:none;opacity:.35;}

@media(max-width:760px){
  .ei-lobby-module-layer{
    height:100vh!important;
    height:100dvh!important;
  }
  .ei-lobby-module-bar{
    min-height:48px!important;
    padding:7px 9px!important;
    gap:9px!important;
  }
  .ei-lobby-module-back{
    padding:7px 10px!important;
    border-radius:10px!important;
    font-size:13px!important;
    white-space:nowrap!important;
  }
  .ei-lobby-module-title{
    font-size:13px!important;
    line-height:1.2!important;
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  .ei-lobby-module-body{
    display:block!important;
    padding:6px!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    background:#071025!important;
  }
  .ei-lobby-module-frame,
  .ei-lobby-module-frame-dialogue,
  .ei-lobby-module-frame-battle{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-width:100%!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    overflow:visible!important;
    border-radius:10px!important;
  }
  .ei-lobby-module-frame-dialogue > *,
  .ei-lobby-module-frame-dialogue .ei-dialog-scene,
  .ei-lobby-module-frame-dialogue .ei-dialog-wrapper,
  .ei-lobby-module-frame-dialogue .ei-dialog-stage,
  .ei-lobby-module-frame-dialogue .ei-dialog-root{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .ei-lobby-module-frame-battle .ei-dq-root-wrapper,
  .ei-lobby-module-frame-battle .dq-root{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0 auto!important;
    transform:none!important;
    overflow:visible!important;
  }
}


/* v0.3.21: mobile Dialogue uses a stable 16:9 stage instead of auto-height collapse */
@media(max-width:760px){
  .ei-lobby-module-layer.is-type-dialogue{
    overflow:hidden!important;
  }
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-body{
    display:flex!important;
    align-items:flex-start!important;
    justify-content:center!important;
    padding:6px!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    background:#071025!important;
  }
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    aspect-ratio:16/9!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
    border-radius:10px!important;
    margin:0 auto!important;
    flex:0 0 auto!important;
    box-sizing:border-box!important;
  }
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue > *,
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue .ei-dialog-scene,
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue .ei-dialog-wrapper,
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue .ei-dialog-stage,
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue .ei-dialog-root{
    width:100%!important;
    max-width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
    margin:0!important;
    box-sizing:border-box!important;
    transform:none!important;
  }
}


/* v0.3.22: mobile Dialogue is not a 16:9 strip. It needs a tall scene viewport so character/dialogue box are not cropped. Battle rules are intentionally untouched. */
@media(max-width:760px){
  .ei-lobby-module-layer.is-type-dialogue{
    overflow:hidden!important;
    background:#071025!important;
  }
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-body{
    display:flex!important;
    align-items:stretch!important;
    justify-content:center!important;
    padding:6px!important;
    overflow:hidden!important;
    -webkit-overflow-scrolling:auto!important;
    background:#071025!important;
  }
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue{
    width:100%!important;
    max-width:100%!important;
    height:calc(100vh - 58px - 12px)!important;
    height:calc(100dvh - 58px - 12px)!important;
    min-height:420px!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    overflow:hidden!important;
    border-radius:10px!important;
    margin:0 auto!important;
    flex:1 1 auto!important;
    box-sizing:border-box!important;
  }
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue > *,
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue .ei-dialog-scene,
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue .ei-dialog-wrapper,
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue .ei-dialog-stage,
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue .ei-dialog-root{
    width:100%!important;
    max-width:100%!important;
    height:100%!important;
    min-height:100%!important;
    max-height:100%!important;
    overflow:hidden!important;
    margin:0!important;
    box-sizing:border-box!important;
    transform:none!important;
  }
  .ei-lobby-module-layer.is-type-dialogue .ei-dialog-scene{
    display:block!important;
    background-size:cover!important;
    background-position:center center!important;
  }
}


/* v0.3.23: mobile lobby viewport and interaction prompt containment fixes */
.ei-lobby,
.ei-lobby *{
  box-sizing:border-box;
}
.ei-lobby{
  width:100%!important;
  max-width:100%!important;
  overflow-x:hidden!important;
  isolation:isolate;
}
.ei-lobby-layout,
.ei-lobby-stage-wrap{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.ei-lobby-stage{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  background-size:100% 100%!important;
  background-position:center center!important;
  transform:none!important;
}

@media(max-width:860px){
  .ei-lobby{
    max-width:100dvw!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  .ei-lobby-layout{
    display:block!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  .ei-lobby-stage-wrap{
    max-width:100%!important;
    overflow:visible!important;
    padding-bottom:18px!important;
  }
  .ei-lobby-stage{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    border-radius:14px!important;
  }
  .ei-lobby-controls{
    max-width:min(188px, calc(100dvw - 32px))!important;
  }
  .ei-lobby-hint{
    max-width:100%!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
  }
}

@media(max-width:640px){
  .ei-lobby-modal{
    inset:0!important;
    width:100dvw!important;
    max-width:100dvw!important;
    padding:16px!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
  }
  .ei-lobby-modal-card{
    width:calc(100dvw - 32px)!important;
    max-width:calc(100dvw - 32px)!important;
    min-width:0!important;
    max-height:calc(100dvh - 72px)!important;
    margin:0!important;
    border-radius:22px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }
  .ei-lobby-modal-body{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    padding:24px 20px 22px!important;
    overflow:auto!important;
    box-sizing:border-box!important;
  }
  .ei-lobby-modal-title{
    max-width:calc(100% - 52px)!important;
    margin-right:52px!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  .ei-lobby-modal-close{
    right:16px!important;
    top:16px!important;
    flex:0 0 auto!important;
  }
  .ei-lobby-interaction-prompt,
  .ei-lobby-interaction-prompt p,
  .ei-lobby-modal-content{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
  }
  .ei-lobby-interaction-actions{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    display:flex!important;
    flex-direction:column!important;
    gap:12px!important;
    overflow:hidden!important;
  }
  .ei-lobby-interaction-actions button,
  .ei-lobby-interaction-confirm,
  .ei-lobby-interaction-cancel{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    box-sizing:border-box!important;
    white-space:normal!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
}

/* v0.3.24 - Near-distance private chat / GM consultation */
.ei-lobby-avatar.can-private-chat{pointer-events:auto;cursor:pointer;}
.ei-lobby-avatar.can-private-chat .ei-lobby-character-img,
.ei-lobby-avatar.can-private-chat .ei-lobby-auto-avatar-person{filter:drop-shadow(0 0 7px rgba(214,165,69,.45));}
.ei-lobby-private-action{position:absolute;left:50%;top:calc(100% + 24px);transform:translateX(-50%) translateY(2px);border:1px solid rgba(214,165,69,.55);border-radius:999px;background:rgba(15,23,42,.88);color:#fff;font-size:11px;line-height:1;padding:5px 8px;white-space:nowrap;box-shadow:0 8px 22px rgba(15,23,42,.22);opacity:1;visibility:visible;pointer-events:auto;cursor:pointer;transition:opacity .14s ease,visibility .14s ease,transform .14s ease;z-index:32;}
.ei-lobby-private-action:hover{background:#111827;border-color:#facc15;}
.ei-lobby-private-bubble{position:absolute;right:calc(50% + 18px);bottom:calc(100% + 8px);min-width:34px;text-align:center;padding:5px 9px;border-radius:999px;background:rgba(17,24,39,.92);color:#fff;font-size:14px;font-weight:800;letter-spacing:1px;box-shadow:0 10px 26px rgba(15,23,42,.28);z-index:35;pointer-events:none;}
.ei-lobby-avatar:nth-child(2n) .ei-lobby-private-bubble{right:auto;left:calc(50% + 18px);}
.ei-lobby-private-bubble:after{content:"";position:absolute;top:100%;right:12px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid rgba(17,24,39,.92);}
.ei-lobby-avatar:nth-child(2n) .ei-lobby-private-bubble:after{right:auto;left:12px;}
.ei-lobby-message.is-private strong{color:#7c2d12;}
.ei-lobby-message.is-private span{background:#fff7ed;border-color:rgba(251,146,60,.38);color:#431407;}
.ei-lobby-message.is-private span b{font-weight:800;color:#9a3412;margin-right:2px;}
.ei-lobby-private-prompt{display:flex;flex-direction:column;gap:12px;min-width:min(520px,76vw);}
.ei-lobby-private-help{margin:0;color:#475569;line-height:1.55;}
.ei-lobby-private-input{width:100%;box-sizing:border-box;border:1px solid rgba(15,23,42,.14);border-radius:14px;padding:11px 12px;font-size:15px;line-height:1.5;resize:vertical;min-height:92px;background:#f8fafc;color:#0f172a;}
.ei-lobby-private-input:focus{outline:none;border-color:rgba(214,165,69,.78);box-shadow:0 0 0 3px rgba(214,165,69,.18);background:#fff;}
.ei-lobby-private-send{background:#111827!important;color:#fff!important;border-color:#111827!important;}
.ei-lobby-private-send:disabled{opacity:.55;cursor:not-allowed;}
.ei-lobby-role-checks{display:flex;flex-wrap:wrap;gap:10px 14px;margin:8px 0 4px;padding:10px 12px;border:1px solid #dcdcde;border-radius:12px;background:#fff;}
.ei-lobby-role-checks label{display:inline-flex;align-items:center;gap:5px;margin:0;}
@media(max-width:640px){.ei-lobby-private-action{opacity:1;visibility:visible;top:calc(100% + 20px);font-size:10px;padding:4px 7px}.ei-lobby-private-bubble{bottom:calc(100% + 6px);font-size:13px}.ei-lobby-private-prompt{min-width:0;width:100%}.ei-lobby-private-input{min-height:86px}}

/* v0.3.26 - Private chat uses right-side chat panel state, not modal. */
.ei-lobby-private-status{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;padding:8px 10px;border:1px solid rgba(251,146,60,.36);border-radius:12px;background:#fff7ed;color:#7c2d12;font-size:13px;font-weight:700;box-sizing:border-box;}
.ei-lobby-private-status[hidden]{display:none!important;}
.ei-lobby-private-status span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ei-lobby-private-exit{flex:0 0 auto;border:1px solid rgba(124,45,18,.25)!important;border-radius:999px!important;background:#fff!important;color:#7c2d12!important;padding:5px 8px!important;font-size:12px!important;line-height:1!important;cursor:pointer!important;}
.ei-lobby-private-exit:hover{background:#ffedd5!important;border-color:rgba(124,45,18,.45)!important;}
.ei-lobby-chat-box.is-private-mode{border-color:rgba(251,146,60,.48);box-shadow:0 10px 24px rgba(251,146,60,.12);}
.ei-lobby-chat-box.is-private-mode .ei-lobby-chat-form input{border-color:rgba(251,146,60,.48);background:#fffaf5;}
.ei-lobby-chat-box.is-private-mode .ei-lobby-chat-form input:focus{outline:none;box-shadow:0 0 0 3px rgba(251,146,60,.18);background:#fff;}
.ei-lobby-chat-box.is-private-mode .ei-lobby-chat-form button{background:#9a3412;color:#fff;}
@media(max-width:640px){.ei-lobby-private-status{align-items:flex-start;flex-direction:column}.ei-lobby-private-status span{white-space:normal}.ei-lobby-private-exit{align-self:flex-end}}

/* v0.3.28 - Private chat resume shortcuts and online-list private contacts */
.ei-lobby-private-resume{width:100%;border:1px solid rgba(124,45,18,.25)!important;border-radius:999px!important;background:#fff!important;color:#7c2d12!important;padding:7px 10px!important;font-size:13px!important;font-weight:800!important;line-height:1.2!important;cursor:pointer!important;text-align:center!important;box-sizing:border-box!important;}
.ei-lobby-private-resume:hover{background:#ffedd5!important;border-color:rgba(124,45,18,.45)!important;}
.ei-lobby-online-user.has-private-contact{display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:8px;}
.ei-lobby-online-private-action{border:1px solid rgba(214,165,69,.55)!important;border-radius:999px!important;background:rgba(15,23,42,.88)!important;color:#fff!important;font-size:11px!important;line-height:1!important;padding:5px 8px!important;white-space:nowrap!important;cursor:pointer!important;}
.ei-lobby-online-private-action:hover{background:#111827!important;border-color:#facc15!important;}
@media(max-width:640px){.ei-lobby-online-user.has-private-contact{grid-template-columns:auto 1fr;row-gap:6px}.ei-lobby-online-private-action{grid-column:2 / 3;justify-self:start;font-size:10px!important;padding:5px 7px!important}.ei-lobby-private-resume{font-size:12px!important}}

/* v0.3.29: stage bottom utility bar. Left = virtual D-pad, right = dynamic announcement message. */
.ei-lobby .ei-lobby-bottom-bar{
  display:grid!important;
  grid-template-columns:minmax(168px,220px) minmax(0,1fr)!important;
  gap:14px!important;
  align-items:stretch!important;
  margin:12px 0 0!important;
}
.ei-lobby .ei-lobby-pad-panel,
.ei-lobby .ei-lobby-announcement{
  border:1px solid rgba(255,255,255,.42)!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.82)!important;
  box-shadow:0 12px 28px rgba(15,23,42,.14)!important;
  backdrop-filter:blur(8px)!important;
}
.ei-lobby .ei-lobby-pad-panel{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:168px!important;
  padding:12px!important;
}
.ei-lobby .ei-lobby-pad-panel .ei-lobby-controls{
  margin:0 auto!important;
}
.ei-lobby .ei-lobby-announcement{
  min-height:168px!important;
  padding:16px 18px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  color:#1f2937!important;
}
.ei-lobby .ei-lobby-announcement-title{
  font-size:14px!important;
  font-weight:800!important;
  letter-spacing:.04em!important;
  color:#92400e!important;
  margin:0 0 8px!important;
}
.ei-lobby .ei-lobby-announcement-text{
  font-size:16px!important;
  line-height:1.7!important;
  white-space:pre-wrap!important;
  word-break:break-word!important;
}
.ei-lobby .ei-lobby-announcement.is-object{border-color:rgba(245,158,11,.5)!important;background:rgba(255,251,235,.88)!important;}
.ei-lobby .ei-lobby-announcement.is-private,
.ei-lobby .ei-lobby-announcement.is-private-available{border-color:rgba(251,146,60,.55)!important;background:rgba(255,247,237,.9)!important;}
.ei-lobby .ei-lobby-announcement.is-blocked{border-color:rgba(248,113,113,.55)!important;background:rgba(254,242,242,.9)!important;}
.ei-lobby .ei-lobby-announcement.is-portal{border-color:rgba(129,140,248,.55)!important;background:rgba(238,242,255,.9)!important;}
@media (max-width:860px){
  .ei-lobby .ei-lobby-bottom-bar{grid-template-columns:1fr!important;}
  .ei-lobby .ei-lobby-pad-panel,.ei-lobby .ei-lobby-announcement{min-height:auto!important;}
  .ei-lobby .ei-lobby-announcement{padding:14px 15px!important;}
  .ei-lobby .ei-lobby-announcement-text{font-size:15px!important;line-height:1.6!important;}
}

/* v0.3.30: bottom announcement interaction prompts. */
.ei-lobby .ei-lobby-announcement.is-prompt{
  justify-content:center!important;
}
.ei-lobby .ei-lobby-announcement-prompt{
  display:flex!important;
  flex-direction:column!important;
  gap:12px!important;
}
.ei-lobby .ei-lobby-announcement-question strong{
  display:block!important;
  font-size:15px!important;
  color:#7c2d12!important;
  margin-bottom:4px!important;
}
.ei-lobby .ei-lobby-announcement-question span{
  display:block!important;
  font-size:15px!important;
  line-height:1.55!important;
  white-space:pre-wrap!important;
}
.ei-lobby .ei-lobby-announcement-actions{
  display:flex!important;
  gap:8px!important;
  justify-content:flex-end!important;
  flex-wrap:wrap!important;
}
.ei-lobby .ei-lobby-announcement-actions button{
  border:1px solid rgba(146,64,14,.28)!important;
  border-radius:999px!important;
  padding:8px 14px!important;
  font-weight:800!important;
  cursor:pointer!important;
  background:#fff7ed!important;
  color:#9a3412!important;
}
.ei-lobby .ei-lobby-announcement-actions .ei-lobby-announcement-confirm{
  background:#9a3412!important;
  color:#fff!important;
  border-color:#9a3412!important;
}

/* v0.3.31: EI frame styles, stronger bottom signal states, and mobile operation layout. */
.ei-lobby{
  --ei-frame-bg:rgba(255,255,255,.88);
  --ei-frame-bg-strong:rgba(255,255,255,.95);
  --ei-frame-border:rgba(255,255,255,.44);
  --ei-frame-text:#1f2937;
  --ei-frame-muted:#64748b;
  --ei-frame-accent:#92400e;
  --ei-frame-accent-2:#d6a545;
  --ei-frame-radius:18px;
  --ei-frame-shadow:0 12px 28px rgba(15,23,42,.14);
  --ei-frame-font:inherit;
}
.ei-lobby-frame-style-basic{}
.ei-lobby-frame-style-chinese{--ei-frame-bg:rgba(36,18,13,.88);--ei-frame-bg-strong:rgba(54,25,17,.94);--ei-frame-border:rgba(248,190,92,.58);--ei-frame-text:#fff7ed;--ei-frame-muted:#fed7aa;--ei-frame-accent:#facc15;--ei-frame-accent-2:#dc2626;--ei-frame-radius:8px;--ei-frame-shadow:0 16px 34px rgba(68,28,15,.28);font-family:"Noto Serif TC","Songti TC",serif;}
.ei-lobby-frame-style-japanese{--ei-frame-bg:rgba(255,251,242,.91);--ei-frame-bg-strong:rgba(255,253,247,.96);--ei-frame-border:rgba(99,102,241,.20);--ei-frame-text:#2f2a26;--ei-frame-muted:#78716c;--ei-frame-accent:#b45309;--ei-frame-accent-2:#334155;--ei-frame-radius:12px;--ei-frame-shadow:0 12px 24px rgba(68,64,60,.12);font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif TC",serif;}
.ei-lobby-frame-style-european{--ei-frame-bg:rgba(41,29,20,.90);--ei-frame-bg-strong:rgba(56,40,28,.96);--ei-frame-border:rgba(232,187,114,.62);--ei-frame-text:#fff7ed;--ei-frame-muted:#f5d0a2;--ei-frame-accent:#f6c16b;--ei-frame-accent-2:#7c2d12;--ei-frame-radius:16px;--ei-frame-shadow:0 18px 36px rgba(41,29,20,.32);font-family:Georgia,"Times New Roman",serif;}
.ei-lobby-frame-style-pixel{--ei-frame-bg:rgba(17,24,39,.94);--ei-frame-bg-strong:#111827;--ei-frame-border:#facc15;--ei-frame-text:#f8fafc;--ei-frame-muted:#cbd5e1;--ei-frame-accent:#22c55e;--ei-frame-accent-2:#facc15;--ei-frame-radius:0;--ei-frame-shadow:6px 6px 0 rgba(0,0,0,.55);font-family:"Courier New",monospace;image-rendering:pixelated;}
.ei-lobby-frame-style-windows{--ei-frame-bg:#ece9d8;--ei-frame-bg-strong:#fff;--ei-frame-border:#0a246a;--ei-frame-text:#111827;--ei-frame-muted:#374151;--ei-frame-accent:#0a246a;--ei-frame-accent-2:#316ac5;--ei-frame-radius:0;--ei-frame-shadow:3px 3px 0 rgba(0,0,0,.28);font-family:Tahoma,"Microsoft JhengHei",sans-serif;}
.ei-lobby-frame-style-mac{--ei-frame-bg:rgba(245,247,250,.78);--ei-frame-bg-strong:rgba(255,255,255,.86);--ei-frame-border:rgba(148,163,184,.36);--ei-frame-text:#111827;--ei-frame-muted:#6b7280;--ei-frame-accent:#2563eb;--ei-frame-accent-2:#60a5fa;--ei-frame-radius:22px;--ei-frame-shadow:0 18px 38px rgba(15,23,42,.16);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Microsoft JhengHei",sans-serif;}
.ei-lobby-frame-style-cyberpunk{--ei-frame-bg:rgba(9,8,30,.90);--ei-frame-bg-strong:rgba(15,12,45,.96);--ei-frame-border:rgba(0,229,255,.62);--ei-frame-text:#e0faff;--ei-frame-muted:#67e8f9;--ei-frame-accent:#faff00;--ei-frame-accent-2:#ff00c8;--ei-frame-radius:8px;--ei-frame-shadow:0 0 26px rgba(0,229,255,.20),0 0 34px rgba(255,0,200,.14);font-family:"Orbitron","Courier New",monospace;}
.ei-lobby-frame-style-nasapunk{--ei-frame-bg:rgba(236,241,246,.91);--ei-frame-bg-strong:rgba(255,255,255,.96);--ei-frame-border:rgba(51,65,85,.42);--ei-frame-text:#172033;--ei-frame-muted:#475569;--ei-frame-accent:#f97316;--ei-frame-accent-2:#2563eb;--ei-frame-radius:14px;--ei-frame-shadow:0 14px 30px rgba(30,41,59,.18);font-family:"Eurostile","Avenir Next","Microsoft JhengHei",sans-serif;}
.ei-lobby-frame-style-steampunk{--ei-frame-bg:rgba(43,27,15,.90);--ei-frame-bg-strong:rgba(61,38,21,.96);--ei-frame-border:rgba(180,120,50,.68);--ei-frame-text:#fef3c7;--ei-frame-muted:#f3d19b;--ei-frame-accent:#eab308;--ei-frame-accent-2:#a16207;--ei-frame-radius:18px;--ei-frame-shadow:0 18px 32px rgba(43,27,15,.34);font-family:Georgia,"Noto Serif TC",serif;}
.ei-lobby-frame-style-dq{--ei-frame-bg:rgba(30,58,138,.94);--ei-frame-bg-strong:rgba(29,78,216,.96);--ei-frame-border:#facc15;--ei-frame-text:#fff7ed;--ei-frame-muted:#dbeafe;--ei-frame-accent:#facc15;--ei-frame-accent-2:#ffffff;--ei-frame-radius:10px;--ei-frame-shadow:0 10px 0 #0f1e56,0 18px 26px rgba(29,78,216,.28);font-family:"Trebuchet MS","Microsoft JhengHei",sans-serif;}
.ei-lobby-frame-style-minimal{--ei-frame-bg:rgba(255,255,255,.92);--ei-frame-bg-strong:#fff;--ei-frame-border:rgba(15,23,42,.12);--ei-frame-text:#111827;--ei-frame-muted:#6b7280;--ei-frame-accent:#111827;--ei-frame-accent-2:#94a3b8;--ei-frame-radius:10px;--ei-frame-shadow:none;font-family:inherit;}
.ei-lobby-frame-style-wabisabi{--ei-frame-bg:rgba(241,235,224,.88);--ei-frame-bg-strong:rgba(250,247,240,.95);--ei-frame-border:rgba(120,113,108,.28);--ei-frame-text:#3f3a34;--ei-frame-muted:#78716c;--ei-frame-accent:#854d0e;--ei-frame-accent-2:#a8a29e;--ei-frame-radius:20px;--ei-frame-shadow:0 12px 26px rgba(87,83,78,.12);font-family:"Noto Serif TC",serif;}
.ei-lobby[class*="ei-lobby-frame-style-"]{font-family:var(--ei-frame-font)!important;color:var(--ei-frame-text)!important;}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-welcome,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-online-box,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-chat-box,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-modal-card,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-pad-panel,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement{
  background:var(--ei-frame-bg)!important;
  border-color:var(--ei-frame-border)!important;
  color:var(--ei-frame-text)!important;
  border-radius:var(--ei-frame-radius)!important;
  box-shadow:var(--ei-frame-shadow)!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-panel h3,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement-title{color:var(--ei-frame-accent)!important;}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-empty,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-hint{color:var(--ei-frame-muted)!important;}
.ei-lobby-frame-style-pixel .ei-lobby-welcome,
.ei-lobby-frame-style-pixel .ei-lobby-online-box,
.ei-lobby-frame-style-pixel .ei-lobby-chat-box,
.ei-lobby-frame-style-pixel .ei-lobby-modal-card,
.ei-lobby-frame-style-pixel .ei-lobby-pad-panel,
.ei-lobby-frame-style-pixel .ei-lobby-announcement{border-width:3px!important;}
.ei-lobby-frame-style-windows .ei-lobby-welcome,
.ei-lobby-frame-style-windows .ei-lobby-online-box,
.ei-lobby-frame-style-windows .ei-lobby-chat-box,
.ei-lobby-frame-style-windows .ei-lobby-modal-card,
.ei-lobby-frame-style-windows .ei-lobby-pad-panel,
.ei-lobby-frame-style-windows .ei-lobby-announcement{border-width:2px!important;}

.ei-lobby .ei-lobby-announcement.is-object{border-color:#f59e0b!important;background:#fef3c7!important;color:#451a03!important;box-shadow:0 0 0 3px rgba(245,158,11,.18),0 14px 30px rgba(146,64,14,.22)!important;}
.ei-lobby .ei-lobby-announcement.is-private,
.ei-lobby .ei-lobby-announcement.is-private-available{border-color:#fb923c!important;background:#ffedd5!important;color:#7c2d12!important;box-shadow:0 0 0 3px rgba(251,146,60,.20),0 14px 30px rgba(194,65,12,.20)!important;}
.ei-lobby .ei-lobby-announcement.is-blocked{border-color:#ef4444!important;background:#fee2e2!important;color:#7f1d1d!important;box-shadow:0 0 0 3px rgba(239,68,68,.20),0 14px 30px rgba(153,27,27,.20)!important;}
.ei-lobby .ei-lobby-announcement.is-portal{border-color:#6366f1!important;background:#e0e7ff!important;color:#312e81!important;box-shadow:0 0 0 3px rgba(99,102,241,.20),0 14px 30px rgba(49,46,129,.18)!important;}
.ei-lobby .ei-lobby-announcement.is-prompt{border-color:var(--ei-frame-accent)!important;background:var(--ei-frame-bg-strong)!important;box-shadow:0 0 0 4px rgba(214,165,69,.20),var(--ei-frame-shadow)!important;}
.ei-lobby-announcement-fx-glow .ei-lobby-announcement:not(.is-default){animation:eiLobbyAnnGlow 1.2s ease-in-out infinite alternate!important;}
.ei-lobby-announcement-fx-pulse .ei-lobby-announcement:not(.is-default){animation:eiLobbyAnnPulse .9s ease-in-out infinite!important;}
.ei-lobby-announcement-fx-system .ei-lobby-announcement:not(.is-default){outline:2px solid var(--ei-frame-accent)!important;outline-offset:3px!important;}
.ei-lobby-announcement-fx-ink .ei-lobby-announcement:not(.is-default){background-image:radial-gradient(circle at 12% 18%,rgba(0,0,0,.10),transparent 24%),radial-gradient(circle at 88% 80%,rgba(0,0,0,.08),transparent 26%)!important;}
.ei-lobby-announcement-fx-terminal .ei-lobby-announcement:not(.is-default){background-image:linear-gradient(rgba(255,255,255,.08) 50%,rgba(0,0,0,.06) 50%)!important;background-size:100% 6px!important;}
@keyframes eiLobbyAnnGlow{from{filter:brightness(1);box-shadow:0 0 0 3px rgba(214,165,69,.18),0 12px 28px rgba(15,23,42,.14)}to{filter:brightness(1.08);box-shadow:0 0 18px rgba(214,165,69,.34),0 0 0 5px rgba(214,165,69,.16),0 18px 34px rgba(15,23,42,.18)}}
@keyframes eiLobbyAnnPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.012)}}

@media (max-width:860px){
  .ei-lobby .ei-lobby-stage-wrap{scroll-margin-top:0!important;}
  .ei-lobby .ei-lobby-bottom-bar{grid-template-columns:158px minmax(0,1fr)!important;gap:14px!important;align-items:stretch!important;margin-top:10px!important;}
  .ei-lobby .ei-lobby-pad-panel{min-height:150px!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;border-radius:0!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:visible!important;}
  .ei-lobby .ei-lobby-pad-panel .ei-lobby-controls{width:146px!important;height:146px!important;grid-template-columns:46px 46px 46px!important;grid-template-rows:46px 46px 46px!important;gap:4px!important;transform:none!important;margin:0!important;padding:6px!important;}
  .ei-lobby .ei-lobby-pad-panel .ei-lobby-dpad{width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;}
  .ei-lobby .ei-lobby-announcement{min-height:150px!important;padding:12px 13px!important;justify-content:center!important;}
  .ei-lobby .ei-lobby-announcement-title{font-size:12px!important;margin-bottom:6px!important;}
  .ei-lobby .ei-lobby-announcement-text{font-size:13px!important;line-height:1.48!important;}
  .ei-lobby .ei-lobby-announcement-actions{justify-content:flex-start!important;}
  .ei-lobby .ei-lobby-announcement-actions button{font-size:12px!important;padding:7px 10px!important;}
}
@media (max-width:480px){
  .ei-lobby .ei-lobby-bottom-bar{grid-template-columns:148px minmax(0,1fr)!important;gap:12px!important;}
  .ei-lobby .ei-lobby-pad-panel{min-height:140px!important;}
  .ei-lobby .ei-lobby-pad-panel .ei-lobby-controls{width:136px!important;height:136px!important;grid-template-columns:42px 42px 42px!important;grid-template-rows:42px 42px 42px!important;gap:4px!important;padding:5px!important;}
  .ei-lobby .ei-lobby-pad-panel .ei-lobby-dpad{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;border-radius:14px!important;}
  .ei-lobby .ei-lobby-announcement{min-height:140px!important;padding:10px 11px!important;}
}
@media (max-width:374px){
  .ei-lobby .ei-lobby-bottom-bar{grid-template-columns:1fr!important;gap:10px!important;}
  .ei-lobby .ei-lobby-pad-panel{justify-content:flex-start!important;min-height:auto!important;}
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-chat-form input,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-chat-form button,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-private-resume,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-online-private-action,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement-actions button{
  border-color:var(--ei-frame-border)!important;
  border-radius:calc(var(--ei-frame-radius) * .72)!important;
  font-family:var(--ei-frame-font)!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-chat-form button,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement-actions .ei-lobby-announcement-confirm,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-online-private-action{
  background:var(--ei-frame-accent)!important;
  color:var(--ei-frame-bg-strong)!important;
}

/* v0.3.36: strengthen contrast inheritance for frame style text. */
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-welcome,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-online-box,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-chat-box,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-modal-card,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-messages,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-online,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-online-user,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-chat-mode,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-chat-private-banner{
  color:var(--ei-frame-text)!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-welcome :where(p,span,div,strong,em,small),
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-online-box :where(p,span,div,strong,em,small,label),
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-chat-box :where(p,span,div,strong,em,small,label),
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-modal-card :where(p,span,div,strong,em,small,label),
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement :where(p,span,div,strong,em,small,label),
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-messages :where(p,span,div,strong,em,small,label),
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-online :where(p,span,div,strong,em,small,label){
  color:inherit!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-panel h3,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement-title,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-private-mode-label{
  color:var(--ei-frame-accent)!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-empty,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-hint,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-chat-meta,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-online-role{
  color:var(--ei-frame-muted)!important;
}

/* v0.3.37: deterministic contrast layer for mixed light/dark surfaces.
   Do not infer text color only from the selected frame style. Each surface state owns its own foreground. */
.ei-lobby{
  --ei-surface-light-bg:#ffffff;
  --ei-surface-light-bg-soft:#f8fafc;
  --ei-surface-light-text:#0f172a;
  --ei-surface-light-muted:#64748b;
  --ei-surface-dark-bg:rgba(15,23,42,.90);
  --ei-surface-dark-text:#f8fafc;
  --ei-surface-dark-muted:#cbd5e1;
}

/* Main styled frames use frame variables. */
.ei-lobby[class*="ei-lobby-frame-style-"] :is(.ei-lobby-welcome,.ei-lobby-online-box,.ei-lobby-chat-box,.ei-lobby-modal-card,.ei-lobby-announcement:not(.is-object):not(.is-private):not(.is-private-available):not(.is-blocked):not(.is-portal)){
  color:var(--ei-frame-text)!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] :is(.ei-lobby-welcome,.ei-lobby-online-box,.ei-lobby-chat-box,.ei-lobby-modal-card,.ei-lobby-announcement:not(.is-object):not(.is-private):not(.is-private-available):not(.is-blocked):not(.is-portal)) :where(p,span,div,strong,em,small,label){
  color:inherit!important;
}

/* Chat log viewport is intentionally a light inner sheet unless overridden by future style settings. */
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-messages{
  background:var(--ei-surface-light-bg-soft)!important;
  color:var(--ei-surface-light-text)!important;
  border-color:rgba(15,23,42,.12)!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-message strong{
  color:#334155!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-message span{
  background:var(--ei-surface-light-bg)!important;
  border-color:rgba(15,23,42,.10)!important;
  color:var(--ei-surface-light-text)!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-message.is-private strong{
  color:#7c2d12!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-message.is-private span{
  background:#fff7ed!important;
  border-color:rgba(251,146,60,.38)!important;
  color:#431407!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-message.is-private span b{
  color:#9a3412!important;
}

/* Private chat status and resume controls are light chips, so they keep dark text regardless of frame style. */
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-private-status,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-private-resume,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-private-exit{
  background:#fff7ed!important;
  color:#7c2d12!important;
  border-color:rgba(251,146,60,.42)!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-private-status :where(span,strong,em,small,button){
  color:inherit!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-chat-form input{
  background:#fff!important;
  color:#0f172a!important;
  border-color:rgba(15,23,42,.16)!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-chat-form input::placeholder{
  color:#64748b!important;
  opacity:1!important;
}

/* Announcement state cards own their foreground because their backgrounds are fixed light state colors. */
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement.is-object{
  background:#fef3c7!important;
  color:#451a03!important;
  border-color:#f59e0b!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement.is-private,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement.is-private-available{
  background:#ffedd5!important;
  color:#7c2d12!important;
  border-color:#fb923c!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement.is-blocked{
  background:#fee2e2!important;
  color:#7f1d1d!important;
  border-color:#ef4444!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement.is-portal{
  background:#e0e7ff!important;
  color:#312e81!important;
  border-color:#6366f1!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement.is-prompt{
  background:var(--ei-frame-bg-strong)!important;
  color:var(--ei-frame-text)!important;
  border-color:var(--ei-frame-accent)!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement:is(.is-object,.is-private,.is-private-available,.is-blocked,.is-portal,.is-prompt) :where(p,span,div,strong,em,small,label){
  color:inherit!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement.is-object .ei-lobby-announcement-title{color:#92400e!important;}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement:is(.is-private,.is-private-available) .ei-lobby-announcement-title{color:#c2410c!important;}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement.is-blocked .ei-lobby-announcement-title{color:#b91c1c!important;}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement.is-portal .ei-lobby-announcement-title{color:#4338ca!important;}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement.is-prompt .ei-lobby-announcement-title{color:var(--ei-frame-accent)!important;}

/* Button text must contrast with the button background, not with the outer frame. */
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-chat-form button,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-online-private-action,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement-actions .ei-lobby-announcement-confirm{
  color:#fff!important;
  text-shadow:0 1px 0 rgba(0,0,0,.22);
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-announcement-actions .ei-lobby-announcement-cancel{
  background:#fff!important;
  color:#334155!important;
  border-color:rgba(15,23,42,.18)!important;
  text-shadow:none!important;
}


/* v0.3.38: hard-fix readable chat/private/announcement text on mixed surfaces.
   Some nested descendants were still inheriting light text inside light chips/sheets.
   Force exact foregrounds on the actual readable surfaces instead of trusting inheritance. */
.ei-lobby .ei-lobby-chat-box .ei-lobby-private-status,
.ei-lobby .ei-lobby-chat-box .ei-lobby-private-status :where(span,strong,small,em,div){
  background:#fff7ed!important;
  color:#7c2d12!important;
  opacity:1!important;
}
.ei-lobby .ei-lobby-chat-box .ei-lobby-private-exit{
  background:#fff!important;
  color:#7c2d12!important;
  border-color:rgba(124,45,18,.30)!important;
  opacity:1!important;
}
.ei-lobby .ei-lobby-chat-box .ei-lobby-private-resume,
.ei-lobby .ei-lobby-chat-box .ei-lobby-private-resume :where(span,strong,small,em){
  background:#fff7ed!important;
  color:#7c2d12!important;
  border-color:rgba(251,146,60,.42)!important;
  opacity:1!important;
}
.ei-lobby .ei-lobby-chat-box .ei-lobby-messages{
  background:#f8fafc!important;
  color:#0f172a!important;
}
.ei-lobby .ei-lobby-chat-box .ei-lobby-message,
.ei-lobby .ei-lobby-chat-box .ei-lobby-message :where(div,span,strong,b,small,em){
  opacity:1!important;
}
.ei-lobby .ei-lobby-chat-box .ei-lobby-message strong{
  color:#334155!important;
}
.ei-lobby .ei-lobby-chat-box .ei-lobby-message span{
  background:#ffffff!important;
  color:#0f172a!important;
  border-color:rgba(15,23,42,.10)!important;
}
.ei-lobby .ei-lobby-chat-box .ei-lobby-message.is-private strong,
.ei-lobby .ei-lobby-chat-box .ei-lobby-message.is-private strong :where(span,b,small,em){
  color:#7c2d12!important;
}
.ei-lobby .ei-lobby-chat-box .ei-lobby-message.is-private span,
.ei-lobby .ei-lobby-chat-box .ei-lobby-message.is-private span :where(span,b,small,em){
  background:#fff7ed!important;
  color:#431407!important;
  border-color:rgba(251,146,60,.38)!important;
}
.ei-lobby .ei-lobby-chat-box .ei-lobby-message.is-private span b{
  color:#9a3412!important;
}
.ei-lobby .ei-lobby-chat-box .ei-lobby-chat-form input{
  background:#ffffff!important;
  color:#0f172a!important;
  border-color:rgba(15,23,42,.16)!important;
  opacity:1!important;
}
.ei-lobby .ei-lobby-chat-box .ei-lobby-chat-form input::placeholder{
  color:#64748b!important;
  opacity:1!important;
}
.ei-lobby .ei-lobby-chat-box .ei-lobby-chat-form button:not(:disabled){
  color:#ffffff!important;
  background:var(--ei-frame-accent)!important;
}
.ei-lobby .ei-lobby-announcement,
.ei-lobby .ei-lobby-announcement :where(span,div,p,strong,small,em,label){
  opacity:1!important;
}
.ei-lobby .ei-lobby-announcement:not(.is-object):not(.is-private):not(.is-private-available):not(.is-blocked):not(.is-portal):not(.is-prompt),
.ei-lobby .ei-lobby-announcement:not(.is-object):not(.is-private):not(.is-private-available):not(.is-blocked):not(.is-portal):not(.is-prompt) :where(span,div,p,strong,small,em,label){
  color:var(--ei-frame-text)!important;
}
.ei-lobby .ei-lobby-announcement-title{
  color:var(--ei-frame-accent)!important;
}


/* v0.3.39: Safari/high-contrast safety net for chat surfaces.
   Use -webkit-text-fill-color as well as color, because mobile Safari/theme CSS can keep text visually pale even when color is overridden. */
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-private-status,
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-private-status *{
  color:#7c2d12!important;
  -webkit-text-fill-color:#7c2d12!important;
  opacity:1!important;
  text-shadow:none!important;
}
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-private-exit,
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-private-exit *{
  color:#7c2d12!important;
  -webkit-text-fill-color:#7c2d12!important;
  opacity:1!important;
  text-shadow:none!important;
}
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-messages,
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-messages *{
  opacity:1!important;
  text-shadow:none!important;
}
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-message strong{
  color:#334155!important;
  -webkit-text-fill-color:#334155!important;
}
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-message > span{
  color:#0f172a!important;
  -webkit-text-fill-color:#0f172a!important;
  background:#ffffff!important;
}
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-message > span *{
  color:#0f172a!important;
  -webkit-text-fill-color:#0f172a!important;
}
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-message.is-private strong{
  color:#7c2d12!important;
  -webkit-text-fill-color:#7c2d12!important;
}
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-message.is-private > span{
  color:#431407!important;
  -webkit-text-fill-color:#431407!important;
  background:#fff7ed!important;
  border-color:rgba(251,146,60,.42)!important;
}
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-message.is-private > span *{
  color:#431407!important;
  -webkit-text-fill-color:#431407!important;
}
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-message.is-private > span b{
  color:#9a3412!important;
  -webkit-text-fill-color:#9a3412!important;
}
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-chat-form input,
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-chat-form input *{
  color:#0f172a!important;
  -webkit-text-fill-color:#0f172a!important;
  opacity:1!important;
}
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-chat-form input::placeholder{
  color:#64748b!important;
  -webkit-text-fill-color:#64748b!important;
  opacity:1!important;
}
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-chat-form button,
.ei-lobby.ei-lobby.ei-lobby .ei-lobby-chat-box .ei-lobby-chat-form button *{
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  opacity:1!important;
}

/* v0.3.40 - GM Contract / GM Offer cards */
.ei-lobby-online-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:flex-end;}
.ei-lobby-online-user.has-private-contact,.ei-lobby-online-user{column-gap:8px;}
.ei-lobby-gm-offer-action{border:1px solid rgba(99,102,241,.45)!important;border-radius:999px!important;background:#312e81!important;color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:11px!important;line-height:1!important;padding:5px 8px!important;white-space:nowrap!important;cursor:pointer!important;font-weight:800!important;}
.ei-lobby-gm-offer-action:hover{background:#1e1b4b!important;border-color:#818cf8!important;}
.ei-lobby-gm-offer-form{display:flex;flex-direction:column;gap:12px;min-width:min(620px,80vw);color:#0f172a!important;-webkit-text-fill-color:#0f172a!important;}
.ei-lobby-gm-offer-form label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:800;color:#334155!important;-webkit-text-fill-color:#334155!important;}
.ei-lobby-gm-offer-form input,.ei-lobby-gm-offer-form textarea,.ei-lobby-gm-offer-form select{width:100%;box-sizing:border-box;border:1px solid rgba(15,23,42,.16);border-radius:12px;padding:8px 10px;background:#fff;color:#0f172a!important;-webkit-text-fill-color:#0f172a!important;font:inherit;}
.ei-lobby-gm-offer-form select{-webkit-text-fill-color:#0f172a!important;}
.ei-lobby-gm-offer-help{margin:0;color:#475569!important;-webkit-text-fill-color:#475569!important;line-height:1.55;}
.ei-lobby-gm-offer-grid{display:grid;grid-template-columns:1.2fr 1fr .7fr;gap:10px;align-items:end;}
.ei-lobby-gm-offer-create{background:#312e81!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:#312e81!important;}
.ei-lobby-gm-offer-card{border:1px solid rgba(99,102,241,.35);border-radius:16px;background:linear-gradient(180deg,#eef2ff,#fff);box-shadow:0 12px 30px rgba(49,46,129,.14);padding:12px;margin:0 0 10px;color:#1e1b4b!important;-webkit-text-fill-color:#1e1b4b!important;}
.ei-lobby-gm-offer-card *{opacity:1!important;text-shadow:none!important;}
.ei-lobby-gm-offer-card .ei-lobby-gm-offer-kicker{font-size:12px;font-weight:900;color:#4338ca!important;-webkit-text-fill-color:#4338ca!important;letter-spacing:.03em;margin-bottom:4px;}
.ei-lobby-gm-offer-card>strong{display:block;font-size:15px;color:#1e1b4b!important;-webkit-text-fill-color:#1e1b4b!important;margin-bottom:4px;}
.ei-lobby-gm-offer-card p{margin:0 0 10px;color:#334155!important;-webkit-text-fill-color:#334155!important;line-height:1.55;}
.ei-lobby-gm-offer-card dl{margin:0;display:grid;gap:7px;}
.ei-lobby-gm-offer-card dl div{display:grid;grid-template-columns:48px 1fr;gap:8px;align-items:start;border:1px solid rgba(99,102,241,.14);border-radius:12px;background:rgba(255,255,255,.72);padding:7px 8px;}
.ei-lobby-gm-offer-card dt{font-weight:900;color:#4338ca!important;-webkit-text-fill-color:#4338ca!important;}
.ei-lobby-gm-offer-card dd{margin:0;color:#0f172a!important;-webkit-text-fill-color:#0f172a!important;}
.ei-lobby-gm-offer-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px;flex-wrap:wrap;}
.ei-lobby-gm-offer-actions button{border:1px solid rgba(49,46,129,.25)!important;border-radius:999px!important;padding:7px 12px!important;font-weight:900!important;cursor:pointer!important;}
.ei-lobby-gm-offer-reject{background:#fff!important;color:#475569!important;-webkit-text-fill-color:#475569!important;}
.ei-lobby-gm-offer-accept{background:#312e81!important;color:#fff!important;-webkit-text-fill-color:#fff!important;}
@media(max-width:640px){.ei-lobby-gm-offer-grid{grid-template-columns:1fr}.ei-lobby-gm-offer-form{min-width:0;width:100%}.ei-lobby-online-actions{grid-column:2 / 3;justify-content:flex-start}.ei-lobby-gm-offer-card dl div{grid-template-columns:1fr}.ei-lobby-gm-offer-actions{justify-content:stretch}.ei-lobby-gm-offer-actions button{flex:1 1 auto}}


/* v0.3.41: GM contract delivery modes and searchable GamiPress option rows. */
.ei-lobby-gm-search-row{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;align-items:end;border:1px dashed rgba(99,102,241,.22);border-radius:14px;padding:10px;background:rgba(99,102,241,.06);}
.ei-lobby-gm-search-row[hidden]{display:none!important;}
.ei-lobby-gm-search-row label{margin:0!important;}
.ei-lobby-gm-offer-receive{min-width:min(560px,82vw);}
.ei-lobby-gm-offer-receive .ei-lobby-gm-offer-card{margin-top:12px;}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-gm-offer-receive{color:var(--ei-frame-text)!important;-webkit-text-fill-color:var(--ei-frame-text)!important;}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-gm-offer-form{color:var(--ei-frame-text)!important;-webkit-text-fill-color:var(--ei-frame-text)!important;}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-gm-offer-form label{color:var(--ei-frame-text)!important;-webkit-text-fill-color:var(--ei-frame-text)!important;}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-gm-offer-help{color:var(--ei-frame-muted)!important;-webkit-text-fill-color:var(--ei-frame-muted)!important;}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-gm-offer-card{background:var(--ei-frame-bg-strong)!important;border-color:var(--ei-frame-border)!important;color:var(--ei-frame-text)!important;-webkit-text-fill-color:var(--ei-frame-text)!important;box-shadow:var(--ei-frame-shadow)!important;}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-gm-offer-card :where(p,strong,dt,dd,div){color:inherit!important;-webkit-text-fill-color:inherit!important;opacity:1!important;}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-gm-offer-kicker{color:var(--ei-frame-accent)!important;-webkit-text-fill-color:var(--ei-frame-accent)!important;}
@media(max-width:640px){.ei-lobby-gm-search-row{grid-template-columns:1fr}.ei-lobby-gm-offer-grid{grid-template-columns:1fr!important}}


/* v0.3.42 - GM contract send/receive stability and button hover states. */
.ei-lobby-gm-offer-cancel{background:#fff!important;color:#475569!important;-webkit-text-fill-color:#475569!important;border:1px solid rgba(71,85,105,.28)!important;transition:transform .14s ease,box-shadow .14s ease,background .14s ease,border-color .14s ease!important;}
.ei-lobby-gm-offer-create{transition:transform .14s ease,box-shadow .14s ease,background .14s ease,border-color .14s ease!important;}
.ei-lobby-gm-offer-create:hover:not(:disabled){background:#1e1b4b!important;border-color:#818cf8!important;box-shadow:0 10px 24px rgba(49,46,129,.24)!important;transform:translateY(-1px)!important;}
.ei-lobby-gm-offer-cancel:hover:not(:disabled){background:#f8fafc!important;border-color:rgba(71,85,105,.48)!important;box-shadow:0 8px 18px rgba(15,23,42,.12)!important;transform:translateY(-1px)!important;}
.ei-lobby-gm-offer-accept,.ei-lobby-gm-offer-reject{transition:transform .14s ease,box-shadow .14s ease,background .14s ease,border-color .14s ease!important;}
.ei-lobby-gm-offer-accept:hover:not(:disabled){background:#1e1b4b!important;border-color:#818cf8!important;box-shadow:0 10px 22px rgba(49,46,129,.22)!important;transform:translateY(-1px)!important;}
.ei-lobby-gm-offer-reject:hover:not(:disabled){background:#f8fafc!important;border-color:rgba(71,85,105,.48)!important;box-shadow:0 8px 18px rgba(15,23,42,.12)!important;transform:translateY(-1px)!important;}
.ei-lobby-gm-offer-create:disabled,.ei-lobby-gm-offer-accept:disabled,.ei-lobby-gm-offer-reject:disabled{opacity:.58!important;cursor:not-allowed!important;transform:none!important;box-shadow:none!important;}


/* v0.3.43 - GM contract readability and GamiPress delta fix visual polish. */
.ei-lobby.ei-lobby .ei-lobby-gm-offer-card dl div{
  background:rgba(15,23,42,.86)!important;
  border-color:rgba(250,204,21,.55)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 18px rgba(0,0,0,.18)!important;
}
.ei-lobby.ei-lobby .ei-lobby-gm-offer-card dl div dt{
  color:#86efac!important;
  -webkit-text-fill-color:#86efac!important;
  text-shadow:none!important;
}
.ei-lobby.ei-lobby .ei-lobby-gm-offer-card dl div dd{
  color:#f8fafc!important;
  -webkit-text-fill-color:#f8fafc!important;
  text-shadow:none!important;
  font-weight:800!important;
}
.ei-lobby.ei-lobby .ei-lobby-gm-offer-card dl div dd *{
  color:#f8fafc!important;
  -webkit-text-fill-color:#f8fafc!important;
}
.ei-lobby.ei-lobby .ei-lobby-gm-offer-receive .ei-lobby-gm-offer-card dl div,
.ei-lobby.ei-lobby .ei-lobby-announcement .ei-lobby-gm-offer-card dl div{
  background:rgba(15,23,42,.90)!important;
}

/* v0.3.44: image-based interactive objects / NPCs and contract-object UI. */
.ei-lobby-object.is-image-object{background:transparent!important;border-color:transparent!important;box-shadow:none!important;overflow:visible!important;}
.ei-lobby-object.is-image-object:hover{background:transparent!important;}
.ei-lobby-object-img{display:block;max-width:100%;max-height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 8px 14px rgba(0,0,0,.28));transform:scale(var(--ei-object-image-scale,1));transform-origin:center center;}
.ei-lobby-object.is-floating-object .ei-lobby-object-img{animation:eiLobbyObjectFloat var(--ei-object-float-speed,350ms) infinite ease-in-out alternate;}
@keyframes eiLobbyObjectFloat{from{transform:translateY(0) scale(var(--ei-object-image-scale,1))}to{transform:translateY(-6px) scale(var(--ei-object-image-scale,1))}}
.ei-lobby-object.is-image-object span{position:absolute;left:50%;bottom:-18px;transform:translateX(-50%);}
.ei-lobby-object-contract-card .ei-lobby-gm-offer-line{display:grid;grid-template-columns:54px 1fr;gap:8px;align-items:center;border:1px solid rgba(99,102,241,.24);border-radius:12px;background:#111827!important;padding:8px 10px;margin:7px 0;}
.ei-lobby-object-contract-card .ei-lobby-gm-offer-line b{color:#4ade80!important;-webkit-text-fill-color:#4ade80!important;}
.ei-lobby-object-contract-card .ei-lobby-gm-offer-line span{color:#f8fafc!important;-webkit-text-fill-color:#f8fafc!important;}
.ei-lobby-object-contract-cancel:hover,.ei-lobby-gm-offer-reject:hover{background:#f1f5f9!important;border-color:#64748b!important;color:#0f172a!important;-webkit-text-fill-color:#0f172a!important;}
.ei-lobby-object-contract-accept:hover,.ei-lobby-gm-offer-accept:hover,.ei-lobby-gm-offer-create:hover{background:#1e1b4b!important;border-color:#818cf8!important;color:#fff!important;-webkit-text-fill-color:#fff!important;transform:translateY(-1px);}
.ei-lobby-object-contract-accept:disabled{opacity:.45!important;cursor:not-allowed!important;transform:none!important;}


/* v0.3.46: object image opacity control.
   Image objects default to opaque so NPC / chest / item images do not inherit quiet hotspot translucency. */
.ei-lobby-object.is-image-object.is-image-opaque,
.ei-lobby-object.is-image-object.is-image-opaque.is-quiet{
  opacity:1!important;
}
.ei-lobby-object.is-image-object.is-image-opaque .ei-lobby-object-img{
  opacity:1!important;
  filter:drop-shadow(0 7px 14px rgba(0,0,0,.30));
}
.ei-lobby-object.is-image-object.is-image-transparent{
  opacity:.62!important;
}
.ei-lobby-object.is-image-object.is-image-transparent .ei-lobby-object-img{
  opacity:.72!important;
}


/* v0.3.47: object image background mode.
   "transparent" removes the helper shadow/halo so uploaded NPC images can sit cleanly on the map. */
.ei-lobby-object.is-image-object.is-image-bg-transparent,
.ei-lobby-object.is-image-object.is-image-bg-transparent:hover,
.ei-lobby-object.is-image-object.is-image-bg-transparent:focus{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.ei-lobby-object.is-image-object.is-image-bg-transparent .ei-lobby-object-img{
  filter:none!important;
}
.ei-lobby-object.is-image-object.is-image-bg-soft .ei-lobby-object-img{
  filter:drop-shadow(0 7px 14px rgba(0,0,0,.30));
}


/* v0.3.48: contract button readable normal/disabled states. */
.ei-lobby.ei-lobby .ei-lobby-gm-offer-actions button,
.ei-lobby.ei-lobby .ei-lobby-interaction-actions button{
  opacity:1!important;
  text-shadow:none!important;
}
.ei-lobby.ei-lobby .ei-lobby-object-contract-cancel,
.ei-lobby.ei-lobby .ei-lobby-gm-offer-reject,
.ei-lobby.ei-lobby .ei-lobby-gm-offer-cancel,
.ei-lobby.ei-lobby .ei-lobby-interaction-cancel{
  background:#f8fafc!important;
  border:1px solid rgba(148,163,184,.72)!important;
  color:#0f172a!important;
  -webkit-text-fill-color:#0f172a!important;
  box-shadow:0 6px 16px rgba(15,23,42,.18)!important;
}
.ei-lobby.ei-lobby .ei-lobby-object-contract-accept,
.ei-lobby.ei-lobby .ei-lobby-gm-offer-accept,
.ei-lobby.ei-lobby .ei-lobby-gm-offer-create,
.ei-lobby.ei-lobby .ei-lobby-interaction-confirm{
  background:#4f46e5!important;
  border:1px solid rgba(129,140,248,.88)!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  box-shadow:0 8px 20px rgba(79,70,229,.28)!important;
}
.ei-lobby.ei-lobby .ei-lobby-object-contract-accept:disabled,
.ei-lobby.ei-lobby .ei-lobby-gm-offer-accept:disabled,
.ei-lobby.ei-lobby .ei-lobby-gm-offer-create:disabled,
.ei-lobby.ei-lobby .ei-lobby-interaction-confirm:disabled{
  background:#e2e8f0!important;
  border-color:#94a3b8!important;
  color:#334155!important;
  -webkit-text-fill-color:#334155!important;
  opacity:.88!important;
  box-shadow:none!important;
  cursor:not-allowed!important;
}
.ei-lobby.ei-lobby .ei-lobby-object-contract-cancel:hover,
.ei-lobby.ei-lobby .ei-lobby-gm-offer-reject:hover,
.ei-lobby.ei-lobby .ei-lobby-gm-offer-cancel:hover,
.ei-lobby.ei-lobby .ei-lobby-interaction-cancel:hover{
  background:#ffffff!important;
  border-color:#475569!important;
  color:#0f172a!important;
  -webkit-text-fill-color:#0f172a!important;
  transform:translateY(-1px);
}
.ei-lobby.ei-lobby .ei-lobby-object-contract-accept:not(:disabled):hover,
.ei-lobby.ei-lobby .ei-lobby-gm-offer-accept:not(:disabled):hover,
.ei-lobby.ei-lobby .ei-lobby-gm-offer-create:not(:disabled):hover,
.ei-lobby.ei-lobby .ei-lobby-interaction-confirm:not(:disabled):hover{
  background:#312e81!important;
  border-color:#a5b4fc!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  transform:translateY(-1px);
}

/* v0.3.50: RPG Shop embedded in Lobby should keep merchant/dialog panels fixed-width.
   Long merchant dialogue text must wrap inside the dialogue box instead of stretching the whole shop layout. */
.ei-lobby .ei-lobby-module-layer .ei-rpg-shop-wrap,
.ei-lobby .ei-lobby-modal .ei-rpg-shop-wrap,
.ei-lobby .ei-rpg-shop-wrap{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.ei-lobby .ei-rpg-shop-inner{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  align-items:stretch!important;
}
.ei-lobby .ei-shop-merchant{
  flex:0 0 36%!important;
  width:36%!important;
  max-width:36%!important;
  min-width:min(240px, 36%)!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.ei-lobby .ei-shop-panel{
  min-width:0!important;
  max-width:64%!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.ei-lobby .ei-merchant-dialog,
.ei-lobby .ei-merchant-dialog.ei-merchant-box-dq,
.ei-lobby .ei-merchant-dialog.ei-merchant-box-plain{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.ei-lobby .ei-merchant-line,
.ei-lobby .ei-merchant-dialog,
.ei-lobby .ei-shop-detail,
.ei-lobby .ei-detail-desc,
.ei-lobby .ei-detail-note,
.ei-lobby .ei-item-name{
  white-space:pre-wrap!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
  max-width:100%!important;
  min-width:0!important;
}
.ei-lobby .ei-shop-columns,
.ei-lobby .ei-shop-items,
.ei-lobby .ei-shop-detail{
  min-width:0!important;
  box-sizing:border-box!important;
}
@media (max-width:1100px){
  .ei-lobby .ei-shop-merchant,
  .ei-lobby .ei-shop-panel{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    flex:1 1 auto!important;
  }
}


/* v0.3.51: stronger RPG Shop embedded-width lock.
   v0.3.50 stopped long text from overflowing, but the Shop frame/merchant column could still scale with a wide browser.
   Lock the embedded shop frame and merchant dialogue to fixed max widths, then wrap text inside. */
.ei-lobby-module-layer.is-type-shop .ei-lobby-module-frame-shop{
  width:min(1120px, calc(100vw - 56px))!important;
  max-width:calc(100vw - 56px)!important;
  min-width:0!important;
  max-height:calc(100dvh - 86px)!important;
  overflow:auto!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-layer.is-type-shop .ei-rpg-shop-wrap{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
@media (min-width:761px){
  .ei-lobby-module-layer.is-type-shop .ei-rpg-shop-inner{
    display:grid!important;
    grid-template-columns:minmax(280px, 420px) minmax(0, 1fr)!important;
    gap:12px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    align-items:stretch!important;
    box-sizing:border-box!important;
  }
  .ei-lobby-module-layer.is-type-shop .ei-rpg-shop-wrap.merchant_right .ei-rpg-shop-inner{
    grid-template-columns:minmax(0, 1fr) minmax(280px, 420px)!important;
  }
  .ei-lobby-module-layer.is-type-shop .ei-rpg-shop-wrap.merchant_right .ei-shop-panel{grid-column:1!important;grid-row:1!important;}
  .ei-lobby-module-layer.is-type-shop .ei-rpg-shop-wrap.merchant_right .ei-shop-merchant{grid-column:2!important;grid-row:1!important;}
}
.ei-lobby-module-layer.is-type-shop .ei-shop-merchant{
  width:100%!important;
  max-width:420px!important;
  min-width:0!important;
  flex:0 0 auto!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.ei-lobby-module-layer.is-type-shop .ei-shop-panel{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  flex:1 1 auto!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.ei-lobby-module-layer.is-type-shop .ei-merchant-dialog,
.ei-lobby-module-layer.is-type-shop .ei-merchant-dialog.ei-merchant-box-dq,
.ei-lobby-module-layer.is-type-shop .ei-merchant-dialog.ei-merchant-box-plain{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.ei-lobby-module-layer.is-type-shop .ei-merchant-line,
.ei-lobby-module-layer.is-type-shop .ei-merchant-line *,
.ei-lobby-module-layer.is-type-shop .ei-detail-desc,
.ei-lobby-module-layer.is-type-shop .ei-detail-note,
.ei-lobby-module-layer.is-type-shop .ei-detail-title,
.ei-lobby-module-layer.is-type-shop .ei-item-name,
.ei-lobby-module-layer.is-type-shop .ei-item-row-left,
.ei-lobby-module-layer.is-type-shop .ei-item-row-right{
  max-width:100%!important;
  min-width:0!important;
  white-space:pre-wrap!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-layer.is-type-shop .ei-shop-columns,
.ei-lobby-module-layer.is-type-shop .ei-shop-items,
.ei-lobby-module-layer.is-type-shop .ei-shop-list,
.ei-lobby-module-layer.is-type-shop .ei-shop-detail{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
@media (max-width:760px){
  .ei-lobby-module-layer.is-type-shop .ei-lobby-module-frame-shop{
    width:calc(100vw - 20px)!important;
    max-width:calc(100vw - 20px)!important;
    max-height:calc(100dvh - 74px)!important;
  }
  .ei-lobby-module-layer.is-type-shop .ei-rpg-shop-inner{
    display:flex!important;
    flex-direction:column!important;
  }
  .ei-lobby-module-layer.is-type-shop .ei-shop-merchant,
  .ei-lobby-module-layer.is-type-shop .ei-shop-panel{
    max-width:100%!important;
    width:100%!important;
  }
}


/* v0.3.52: RPG Shop item-list readability fix.
   The v0.3.51 width lock kept the shop frame stable, but product rows could shrink the name column too far.
   Keep the item name beside the icon with a usable text column, while still wrapping long names safely. */
.ei-lobby-module-layer.is-type-shop .ei-shop-columns,
.ei-lobby .ei-rpg-shop-wrap .ei-shop-columns{
  display:flex!important;
  align-items:stretch!important;
  gap:10px!important;
  min-width:0!important;
}
.ei-lobby-module-layer.is-type-shop .ei-shop-items,
.ei-lobby .ei-rpg-shop-wrap .ei-shop-items{
  flex:0 0 min(46%, 420px)!important;
  width:min(46%, 420px)!important;
  min-width:300px!important;
  max-width:420px!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-layer.is-type-shop .ei-shop-detail,
.ei-lobby .ei-rpg-shop-wrap .ei-shop-detail{
  flex:1 1 0!important;
  min-width:260px!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-layer.is-type-shop .ei-item-row,
.ei-lobby .ei-rpg-shop-wrap .ei-item-row{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-layer.is-type-shop .ei-item-row-left,
.ei-lobby .ei-rpg-shop-wrap .ei-item-row-left{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex:1 1 0!important;
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-layer.is-type-shop .ei-item-row-left img,
.ei-lobby .ei-rpg-shop-wrap .ei-item-row-left img{
  flex:0 0 38px!important;
  width:38px!important;
  height:38px!important;
}
.ei-lobby-module-layer.is-type-shop .ei-item-prefix,
.ei-lobby .ei-rpg-shop-wrap .ei-item-prefix{
  flex:0 0 auto!important;
  white-space:nowrap!important;
}
.ei-lobby-module-layer.is-type-shop .ei-item-name,
.ei-lobby .ei-rpg-shop-wrap .ei-item-name{
  display:block!important;
  flex:1 1 auto!important;
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  white-space:normal!important;
  overflow-wrap:break-word!important;
  word-break:keep-all!important;
  line-height:1.35!important;
  text-align:left!important;
}
.ei-lobby-module-layer.is-type-shop .ei-item-row-right,
.ei-lobby .ei-rpg-shop-wrap .ei-item-row-right{
  flex:0 0 auto!important;
  min-width:max-content!important;
  max-width:42%!important;
  text-align:right!important;
  white-space:nowrap!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-layer.is-type-shop .ei-item-price,
.ei-lobby .ei-rpg-shop-wrap .ei-item-price{
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
@media (max-width:900px){
  .ei-lobby-module-layer.is-type-shop .ei-shop-columns,
  .ei-lobby .ei-rpg-shop-wrap .ei-shop-columns{
    flex-direction:column!important;
  }
  .ei-lobby-module-layer.is-type-shop .ei-shop-items,
  .ei-lobby-module-layer.is-type-shop .ei-shop-detail,
  .ei-lobby .ei-rpg-shop-wrap .ei-shop-items,
  .ei-lobby .ei-rpg-shop-wrap .ei-shop-detail{
    flex:1 1 auto!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
}


/* v0.3.53: RPG Shop item row recovery.
   v0.3.52 over-constrained the product list, causing CJK names to stack vertically and images to be clipped.
   Product rows should remain: [image] [name] [price/status], with one-line names and ellipsis if needed. */
.ei-lobby-module-layer.is-type-shop .ei-shop-items,
.ei-lobby .ei-rpg-shop-wrap .ei-shop-items{
  flex:0 0 min(48%, 430px)!important;
  width:min(48%, 430px)!important;
  min-width:320px!important;
  max-width:430px!important;
  overflow:hidden!important;
}
.ei-lobby-module-layer.is-type-shop .ei-shop-list,
.ei-lobby .ei-rpg-shop-wrap .ei-shop-list{
  min-width:0!important;
  width:100%!important;
  overflow:auto!important;
}
.ei-lobby-module-layer.is-type-shop .ei-item-row,
.ei-lobby .ei-rpg-shop-wrap .ei-item-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content!important;
  align-items:center!important;
  justify-content:normal!important;
  column-gap:10px!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-layer.is-type-shop .ei-item-row-left,
.ei-lobby .ei-rpg-shop-wrap .ei-item-row-left{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex:none!important;
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  writing-mode:horizontal-tb!important;
}
.ei-lobby-module-layer.is-type-shop .ei-item-row-left img,
.ei-lobby .ei-rpg-shop-wrap .ei-item-row-left img{
  display:block!important;
  flex:0 0 38px!important;
  width:38px!important;
  min-width:38px!important;
  height:38px!important;
  opacity:1!important;
  visibility:visible!important;
  object-fit:cover!important;
  writing-mode:horizontal-tb!important;
}
.ei-lobby-module-layer.is-type-shop .ei-item-prefix,
.ei-lobby .ei-rpg-shop-wrap .ei-item-prefix{
  display:inline-block!important;
  flex:0 0 auto!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  writing-mode:horizontal-tb!important;
}
.ei-lobby-module-layer.is-type-shop .ei-item-name,
.ei-lobby .ei-rpg-shop-wrap .ei-item-name{
  display:block!important;
  flex:1 1 auto!important;
  min-width:0!important;
  max-width:100%!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  line-height:1.35!important;
  text-align:left!important;
  writing-mode:horizontal-tb!important;
}
.ei-lobby-module-layer.is-type-shop .ei-item-row-right,
.ei-lobby .ei-rpg-shop-wrap .ei-item-row-right{
  justify-self:end!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  min-width:max-content!important;
  max-width:none!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  writing-mode:horizontal-tb!important;
}
.ei-lobby-module-layer.is-type-shop .ei-item-price,
.ei-lobby .ei-rpg-shop-wrap .ei-item-price{
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  writing-mode:horizontal-tb!important;
}
@media (max-width:900px){
  .ei-lobby-module-layer.is-type-shop .ei-shop-items,
  .ei-lobby .ei-rpg-shop-wrap .ei-shop-items{
    flex:1 1 auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
}


/* v0.3.54: RPG Shop embedded list/entry correction.
   v0.3.53 forced item thumbnails visible, which made hidden entry-view lists show before entering the shop.
   Also place the owned checkmark in the item row's right slot instead of letting the original floated pseudo-element drift. */
.ei-lobby-module-layer.is-type-shop .ei-rpg-shop-wrap.is-entry .ei-rpg-shop-inner,
.ei-lobby-module-layer.is-type-shop .ei-rpg-shop-wrap.is-entry .ei-rpg-shop-inner *{
  visibility:hidden!important;
  pointer-events:none!important;
}
.ei-lobby-module-layer.is-type-shop .ei-rpg-shop-wrap:not(.is-entry) .ei-item-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content max-content!important;
  align-items:center!important;
  column-gap:10px!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-layer.is-type-shop .ei-rpg-shop-wrap:not(.is-entry) .ei-item-row-left{
  grid-column:1!important;
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr)!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  writing-mode:horizontal-tb!important;
}
.ei-lobby-module-layer.is-type-shop .ei-rpg-shop-wrap:not(.is-entry) .ei-item-row-left img{
  grid-column:1!important;
  display:block!important;
  width:38px!important;
  min-width:38px!important;
  height:38px!important;
  max-width:38px!important;
  max-height:38px!important;
  object-fit:cover!important;
  visibility:visible!important;
  opacity:1!important;
  writing-mode:horizontal-tb!important;
}
.ei-lobby-module-layer.is-type-shop .ei-rpg-shop-wrap:not(.is-entry) .ei-item-name{
  grid-column:2!important;
  display:block!important;
  min-width:0!important;
  max-width:100%!important;
  width:100%!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  writing-mode:horizontal-tb!important;
}
.ei-lobby-module-layer.is-type-shop .ei-rpg-shop-wrap:not(.is-entry) .ei-item-row-right{
  grid-column:2!important;
  justify-self:end!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  min-width:max-content!important;
  max-width:none!important;
  white-space:nowrap!important;
  writing-mode:horizontal-tb!important;
}
.ei-lobby-module-layer.is-type-shop .ei-rpg-shop-wrap:not(.is-entry) .ei-item-row.is-owned::after{
  content:'✓'!important;
  grid-column:3!important;
  grid-row:1!important;
  justify-self:end!important;
  align-self:center!important;
  display:block!important;
  float:none!important;
  margin-left:2px!important;
  opacity:.9!important;
  color:var(--ei-panel-text,#fff)!important;
  -webkit-text-fill-color:var(--ei-panel-text,#fff)!important;
  line-height:1!important;
  writing-mode:horizontal-tb!important;
}
.ei-lobby-module-layer.is-type-shop .ei-rpg-shop-wrap:not(.is-entry) .ei-item-prefix{
  display:none!important;
}

/* v0.3.61: object proximity SVG alert bubble */
.ei-lobby-object .ei-lobby-object-alert{
  position:absolute!important;
  right:-18px!important;
  top:-28px!important;
  width:34px!important;
  height:30px!important;
  padding:0!important;
  margin:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  max-width:none!important;
  overflow:visible!important;
  display:block!important;
  opacity:0!important;
  transform:translateY(4px) scale(.72)!important;
  pointer-events:none!important;
  z-index:8!important;
  transition:opacity .16s ease,transform .16s cubic-bezier(.2,1.35,.3,1)!important;
}
.ei-lobby-object .ei-lobby-object-alert svg{display:block!important;width:100%!important;height:100%!important;filter:drop-shadow(0 4px 6px rgba(0,0,0,.38));overflow:visible!important;}
.ei-lobby-object .ei-lobby-object-alert path{fill:#fff7ed;stroke:#f97316;stroke-width:4;stroke-linejoin:round;}
.ei-lobby-object .ei-lobby-object-alert text{font:900 34px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;fill:#ef4444;stroke:#7f1d1d;stroke-width:.9;paint-order:stroke;dominant-baseline:middle;}
.ei-lobby-object.is-proximity-alert-active .ei-lobby-object-alert{opacity:1!important;transform:translateY(0) scale(1)!important;animation:eiLobbyAlertPop 950ms ease-in-out infinite alternate!important;}
@keyframes eiLobbyAlertPop{0%{transform:translateY(0) scale(1)!important;}100%{transform:translateY(-3px) scale(1.06)!important;}}
.ei-lobby-object.is-image-object .ei-lobby-object-alert{left:auto!important;right:-18px!important;bottom:auto!important;top:-28px!important;}
.ei-lobby-object.is-image-object .ei-lobby-object-label{position:absolute!important;left:50%!important;bottom:-18px!important;transform:translateX(-50%)!important;}

/* v0.3.61: GM public chat clear button */
.ei-lobby-chat-box h3{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.ei-lobby-chat-tools{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;max-width:72%;}
.ei-lobby-chat-tool,.ei-lobby-chat-clear{appearance:none;border:1px solid rgba(148,163,184,.45);border-radius:999px;background:rgba(15,23,42,.76);color:#f8fafc!important;-webkit-text-fill-color:#f8fafc!important;font-size:12px;font-weight:700;line-height:1;padding:6px 9px;cursor:pointer;white-space:nowrap;}
.ei-lobby-chat-tool:hover,.ei-lobby-chat-clear:hover{background:#f8fafc;color:#0f172a!important;-webkit-text-fill-color:#0f172a!important;}
.ei-lobby-chat-tool:disabled,.ei-lobby-chat-clear:disabled{opacity:.55;cursor:not-allowed;}
.ei-lobby-chat-tool-all{border-color:rgba(239,68,68,.42);background:rgba(127,29,29,.82);}
.ei-lobby-chat-tool-download{background:rgba(21,94,117,.82);}
@media(max-width:640px){.ei-lobby-chat-box h3{flex-direction:column;align-items:stretch}.ei-lobby-chat-tools{max-width:none;justify-content:flex-start}.ei-lobby-chat-tool{font-size:11px;padding:6px 8px}}


/* v0.3.62: make proximity alert bubble survive hidden labels / quiet image objects. */
.ei-lobby-object.is-label-hidden > .ei-lobby-object-alert,
.ei-lobby-object.is-label-hidden.is-proximity-alert-active > .ei-lobby-object-alert{
  display:block!important;
}
.ei-lobby-object.is-label-hidden > .ei-lobby-object-label{
  display:none!important;
}
.ei-lobby-object.is-proximity-alert-active{
  overflow:visible!important;
  z-index:80!important;
}
.ei-lobby-object.is-proximity-alert-active > .ei-lobby-object-alert,
.ei-lobby-object.is-quiet.is-proximity-alert-active > .ei-lobby-object-alert,
.ei-lobby-object.is-image-object.is-proximity-alert-active > .ei-lobby-object-alert{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  z-index:120!important;
  pointer-events:none!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  white-space:normal!important;
  max-width:none!important;
  overflow:visible!important;
  transform:translateY(0) scale(1)!important;
  animation:eiLobbyAlertPop 950ms ease-in-out infinite alternate!important;
}
.ei-lobby-object.is-proximity-alert-active > .ei-lobby-object-alert svg{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}


/* v0.3.68: full-screen scene transition loading overlay, inspired by EI Smart Loading */
.ei-lobby-scene-loading{
  position:fixed!important;
  inset:0!important;
  z-index:2147483000!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:24px!important;
  background:
    radial-gradient(circle at 50% 38%,rgba(255,199,77,.18),transparent 24%),
    radial-gradient(circle at 50% 82%,rgba(59,130,246,.16),transparent 34%),
    linear-gradient(180deg,rgba(7,12,25,.94),rgba(2,6,23,.98))!important;
  color:#f8fafc!important;
  opacity:1!important;
  pointer-events:all!important;
  transition:opacity .24s ease!important;
  -webkit-text-fill-color:currentColor!important;
}
.ei-lobby-scene-loading.is-hiding{opacity:0!important;pointer-events:none!important;}
.ei-lobby-scene-loading:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,transparent,rgba(255,255,255,.04),transparent),
    repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0,rgba(255,255,255,.035) 1px,transparent 1px,transparent 5px);
  opacity:.5;
  pointer-events:none;
}
.ei-lobby-scene-loading-inner{
  position:relative;
  width:min(520px,86vw);
  padding:34px 30px 32px!important;
  border-radius:24px!important;
  text-align:center!important;
  background:rgba(15,23,42,.78)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:0 28px 90px rgba(0,0,0,.52),inset 0 1px 0 rgba(255,255,255,.12)!important;
  backdrop-filter:blur(16px) saturate(130%)!important;
  -webkit-backdrop-filter:blur(16px) saturate(130%)!important;
}
.ei-lobby-scene-loading-orb{
  width:78px!important;
  height:78px!important;
  margin:0 auto 18px!important;
  border-radius:999px!important;
  background:radial-gradient(circle at 35% 30%,#fff7cc 0,#ffd65a 28%,#f59e0b 62%,#92400e 100%)!important;
  box-shadow:0 0 0 6px rgba(250,204,21,.16),0 0 32px rgba(250,204,21,.72),0 0 84px rgba(245,158,11,.35)!important;
  animation:eiLobbySceneOrbPulse 1.35s ease-in-out infinite!important;
}
.ei-lobby-scene-loading-text{
  font-size:20px!important;
  font-weight:800!important;
  letter-spacing:.08em!important;
  line-height:1.35!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:0 2px 12px rgba(0,0,0,.46)!important;
}
.ei-lobby-scene-loading-subtext{
  margin-top:10px!important;
  font-size:14px!important;
  line-height:1.6!important;
  color:rgba(226,232,240,.86)!important;
  -webkit-text-fill-color:rgba(226,232,240,.86)!important;
}
html.ei-lobby-is-scene-loading,body.ei-lobby-is-scene-loading{overflow:hidden!important;}
@keyframes eiLobbySceneOrbPulse{
  0%,100%{transform:scale(1);filter:brightness(1)}
  50%{transform:scale(1.08);filter:brightness(1.14)}
}
@media (max-width:640px){
  .ei-lobby-scene-loading-inner{width:min(420px,90vw);padding:28px 20px 26px!important;border-radius:20px!important;}
  .ei-lobby-scene-loading-orb{width:64px!important;height:64px!important;margin-bottom:14px!important;}
  .ei-lobby-scene-loading-text{font-size:18px!important;}
  .ei-lobby-scene-loading-subtext{font-size:13px!important;}
}

/* v0.3.69: configurable portal loading visual styles */
.ei-lobby-scene-loading-style-ring .ei-lobby-scene-loading-orb{
  background:transparent!important;
  border:6px solid rgba(255,255,255,.18)!important;
  border-top-color:#facc15!important;
  border-right-color:#60a5fa!important;
  box-shadow:0 0 30px rgba(96,165,250,.42),0 0 68px rgba(250,204,21,.28)!important;
  animation:eiLobbySceneLoadingSpin .95s linear infinite!important;
}
.ei-lobby-scene-loading-style-crystal .ei-lobby-scene-loading-orb{
  border-radius:20px!important;
  transform:rotate(45deg)!important;
  background:linear-gradient(135deg,#dbeafe 0,#60a5fa 28%,#7c3aed 64%,#1e1b4b 100%)!important;
  box-shadow:0 0 0 8px rgba(96,165,250,.12),0 0 36px rgba(96,165,250,.68),0 0 86px rgba(124,58,237,.36)!important;
  animation:eiLobbySceneCrystalPulse 1.45s ease-in-out infinite!important;
}
.ei-lobby-scene-loading-style-rune .ei-lobby-scene-loading-orb{
  display:grid!important;
  place-items:center!important;
  background:radial-gradient(circle,rgba(255,255,255,.92),rgba(250,204,21,.5) 42%,rgba(251,146,60,.12) 70%,transparent 100%)!important;
  box-shadow:0 0 42px rgba(250,204,21,.72), inset 0 0 0 3px rgba(255,255,255,.36)!important;
  animation:eiLobbySceneOrbPulse 1.35s ease-in-out infinite!important;
}
.ei-lobby-scene-loading-style-rune .ei-lobby-scene-loading-orb:before{
  content:"✦";
  font-size:42px;
  line-height:1;
  color:#78350f;
  -webkit-text-fill-color:#78350f;
  text-shadow:0 1px 8px rgba(255,255,255,.75);
}
.ei-lobby-scene-loading-style-portal .ei-lobby-scene-loading-orb{
  background:conic-gradient(from 0deg,#38bdf8,#818cf8,#facc15,#38bdf8)!important;
  box-shadow:0 0 34px rgba(56,189,248,.62),0 0 80px rgba(129,140,248,.36)!important;
  animation:eiLobbySceneLoadingSpin 1.2s linear infinite!important;
  position:relative!important;
}
.ei-lobby-scene-loading-style-portal .ei-lobby-scene-loading-orb:after{
  content:"";
  position:absolute;
  inset:14px;
  border-radius:999px;
  background:rgba(15,23,42,.92);
  box-shadow:inset 0 0 18px rgba(56,189,248,.38);
}
.ei-lobby-scene-loading-style-dots .ei-lobby-scene-loading-orb{
  width:96px!important;
  height:30px!important;
  border-radius:0!important;
  background:radial-gradient(circle,#fff 0 34%,transparent 36%) 0 50%/30px 30px no-repeat,radial-gradient(circle,#fff 0 34%,transparent 36%) 33px 50%/30px 30px no-repeat,radial-gradient(circle,#fff 0 34%,transparent 36%) 66px 50%/30px 30px no-repeat!important;
  box-shadow:none!important;
  animation:eiLobbyLoadingDots 1.05s ease-in-out infinite!important;
}
.ei-lobby-scene-loading-style-pulse .ei-lobby-scene-loading-orb,
.ei-lobby-scene-loading-style-minimal .ei-lobby-scene-loading-orb{
  background:transparent!important;
  border:3px solid rgba(255,255,255,.82)!important;
  box-shadow:0 0 0 0 rgba(255,255,255,.28)!important;
  animation:eiLobbyLoadingPulseRing 1.22s ease-out infinite!important;
}
.ei-lobby-scene-loading-style-scan .ei-lobby-scene-loading-orb{
  width:104px!important;
  height:64px!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,rgba(15,23,42,.92),rgba(30,41,59,.88))!important;
  border:1px solid rgba(103,232,249,.72)!important;
  box-shadow:0 0 34px rgba(103,232,249,.32)!important;
  position:relative!important;
  overflow:hidden!important;
  animation:none!important;
}
.ei-lobby-scene-loading-style-scan .ei-lobby-scene-loading-orb:before{
  content:"";
  position:absolute;
  left:8px;right:8px;top:0;height:3px;
  background:linear-gradient(90deg,transparent,#67e8f9,transparent);
  box-shadow:0 0 18px rgba(103,232,249,.9);
  animation:eiLobbyLoadingScan 1.15s ease-in-out infinite!important;
}
.ei-lobby-scene-loading-style-pixel .ei-lobby-scene-loading-orb{
  width:72px!important;
  height:72px!important;
  border-radius:0!important;
  background:#fff!important;
  box-shadow:24px 0 #facc15,48px 0 #38bdf8,0 24px #38bdf8,24px 24px #fff,48px 24px #facc15,0 48px #facc15,24px 48px #38bdf8,48px 48px #fff!important;
  animation:eiLobbyLoadingPixel 900ms steps(2,end) infinite!important;
}
@keyframes eiLobbyLoadingDots{
  0%,100%{filter:opacity(.52);transform:translateY(0)}
  35%{filter:opacity(1);transform:translateY(-5px)}
  70%{filter:opacity(.78);transform:translateY(2px)}
}
@keyframes eiLobbyLoadingPulseRing{
  0%{transform:scale(.86);box-shadow:0 0 0 0 rgba(255,255,255,.34)}
  70%{transform:scale(1.1);box-shadow:0 0 0 16px rgba(255,255,255,0)}
  100%{transform:scale(.86);box-shadow:0 0 0 0 rgba(255,255,255,0)}
}
@keyframes eiLobbyLoadingScan{
  0%,100%{top:6px;opacity:.45}
  50%{top:55px;opacity:1}
}
@keyframes eiLobbyLoadingPixel{
  0%{transform:scale(.88);filter:brightness(.92)}
  50%{transform:scale(1.02);filter:brightness(1.18)}
  100%{transform:scale(.88);filter:brightness(.92)}
}
.ei-lobby-scene-loading-custom{
  width:92px!important;
  height:92px!important;
  margin:0 auto 18px!important;
  display:grid!important;
  place-items:center!important;
  filter:drop-shadow(0 0 20px rgba(250,204,21,.48)) drop-shadow(0 0 42px rgba(96,165,250,.26))!important;
  animation:eiLobbySceneOrbPulse 1.35s ease-in-out infinite!important;
}
.ei-lobby-scene-loading-custom img{
  max-width:100%!important;
  max-height:100%!important;
  width:auto!important;
  height:auto!important;
  object-fit:contain!important;
  display:block!important;
}
@keyframes eiLobbySceneLoadingSpin{to{transform:rotate(360deg)}}
@keyframes eiLobbySceneCrystalPulse{
  0%,100%{transform:rotate(45deg) scale(1);filter:brightness(1)}
  50%{transform:rotate(45deg) scale(1.09);filter:brightness(1.16)}
}
@media (max-width:640px){
  .ei-lobby-scene-loading-custom{width:72px!important;height:72px!important;margin-bottom:14px!important;}
}


/* v0.3.70: configurable enter-gate text and visual */
.ei-lobby-enter-custom{
  width:72px;height:72px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;
  filter:drop-shadow(0 0 16px rgba(251,191,36,.35));
}
.ei-lobby-enter-custom img{max-width:100%;max-height:100%;display:block;object-fit:contain;}
.ei-lobby-enter-style-ring .ei-lobby-loader{border-color:rgba(255,255,255,.18)!important;border-top-color:#fbbf24!important;box-shadow:0 0 0 5px rgba(251,191,36,.12),0 0 20px rgba(251,191,36,.25)!important;}
.ei-lobby-enter-style-crystal .ei-lobby-loader{border:none!important;width:42px!important;height:42px!important;border-radius:12px!important;background:linear-gradient(135deg,#fde68a,#f59e0b)!important;transform:rotate(45deg);box-shadow:0 0 20px rgba(251,191,36,.34)!important;animation:eiLobbyPulse 1.1s ease-in-out infinite!important;}
.ei-lobby-enter-style-rune .ei-lobby-loader{border:3px solid rgba(250,204,21,.85)!important;box-shadow:0 0 20px rgba(250,204,21,.28)!important;position:relative;}
.ei-lobby-enter-style-rune .ei-lobby-loader:after{content:"";position:absolute;inset:7px;border:2px dashed rgba(255,255,255,.45);border-radius:50%;animation:eiLobbySpin 2.2s linear infinite reverse;}
.ei-lobby-enter-style-portal .ei-lobby-loader{border-width:4px!important;border-color:rgba(96,165,250,.24)!important;border-top-color:#a78bfa!important;border-right-color:#60a5fa!important;box-shadow:0 0 24px rgba(96,165,250,.24)!important;}
.ei-lobby-enter-gate.is-ready.ei-lobby-enter-style-ring .ei-lobby-loader,
.ei-lobby-enter-gate.is-ready.ei-lobby-enter-style-crystal .ei-lobby-loader,
.ei-lobby-enter-gate.is-ready.ei-lobby-enter-style-rune .ei-lobby-loader,
.ei-lobby-enter-gate.is-ready.ei-lobby-enter-style-portal .ei-lobby-loader{animation:none!important;}
@keyframes eiLobbyPulse{0%,100%{transform:rotate(45deg) scale(1);}50%{transform:rotate(45deg) scale(1.08);}}
@media (max-width:480px){.ei-lobby-enter-custom{width:64px;height:64px;}}

/* v0.3.71: object-triggered bottom echo dialogue in the announcement area. */
.ei-lobby .ei-lobby-announcement.is-echo-dialogue{
  border-color:var(--ei-frame-accent,#d6a545)!important;
  background:linear-gradient(180deg,rgba(255,251,235,.98),rgba(254,243,199,.96))!important;
  color:#451a03!important;
  box-shadow:0 0 0 4px rgba(214,165,69,.20),0 18px 42px rgba(120,53,15,.24)!important;
}
.ei-lobby .ei-lobby-announcement.is-echo-dialogue .ei-lobby-announcement-title{
  color:#92400e!important;
}
.ei-lobby .ei-lobby-echo-dialogue{
  display:flex!important;
  align-items:stretch!important;
  gap:14px!important;
  width:100%!important;
  min-width:0!important;
}
.ei-lobby .ei-lobby-echo-dialogue.no-portrait{
  display:block!important;
}
.ei-lobby .ei-lobby-echo-portrait{
  flex:0 0 92px!important;
  width:92px!important;
  min-width:92px!important;
  height:92px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
}
.ei-lobby .ei-lobby-echo-portrait img{
  display:block!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:cover!important;
}
.ei-lobby .ei-lobby-echo-portrait.is-frame{
  border:3px solid #d6a545!important;
  border-radius:10px!important;
  background:linear-gradient(135deg,#fff7dc,#d6a545)!important;
  box-shadow:inset 0 0 0 2px rgba(69,26,3,.18),0 8px 18px rgba(120,53,15,.22)!important;
  padding:4px!important;
}
.ei-lobby .ei-lobby-echo-portrait.is-frame img{
  width:100%!important;
  height:100%!important;
  border-radius:5px!important;
  object-fit:cover!important;
}
.ei-lobby .ei-lobby-echo-portrait.is-direct{
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.ei-lobby .ei-lobby-echo-portrait.is-direct img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
}
.ei-lobby .ei-lobby-echo-main{
  flex:1 1 auto!important;
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
}
.ei-lobby .ei-lobby-echo-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  font-size:13px!important;
  color:#78350f!important;
}
.ei-lobby .ei-lobby-echo-head strong{
  font-size:15px!important;
  color:#78350f!important;
  letter-spacing:.02em!important;
}
.ei-lobby .ei-lobby-echo-progress{
  flex:0 0 auto!important;
  font-size:11px!important;
  color:#92400e!important;
  background:rgba(255,255,255,.56)!important;
  border:1px solid rgba(146,64,14,.20)!important;
  border-radius:999px!important;
  padding:2px 8px!important;
}
.ei-lobby .ei-lobby-echo-content{
  color:#451a03!important;
  font-size:15px!important;
  line-height:1.72!important;
  white-space:normal!important;
  word-break:break-word!important;
}
.ei-lobby .ei-lobby-echo-actions{
  display:flex!important;
  justify-content:flex-end!important;
  margin-top:2px!important;
}
.ei-lobby .ei-lobby-echo-next{
  appearance:none!important;
  border:1px solid rgba(120,53,15,.25)!important;
  border-radius:999px!important;
  background:#451a03!important;
  color:#fff7ed!important;
  -webkit-text-fill-color:#fff7ed!important;
  padding:8px 18px!important;
  font-size:13px!important;
  font-weight:800!important;
  cursor:pointer!important;
  box-shadow:0 8px 18px rgba(69,26,3,.22)!important;
}
.ei-lobby .ei-lobby-echo-next:hover{
  filter:brightness(1.08)!important;
}
@media(max-width:640px){
  .ei-lobby .ei-lobby-echo-dialogue{gap:10px!important;align-items:flex-start!important;}
  .ei-lobby .ei-lobby-echo-portrait{flex-basis:64px!important;width:64px!important;min-width:64px!important;height:64px!important;}
  .ei-lobby .ei-lobby-echo-content{font-size:13px!important;line-height:1.55!important;}
  .ei-lobby .ei-lobby-echo-head strong{font-size:13px!important;}
  .ei-lobby .ei-lobby-echo-actions{justify-content:flex-start!important;}
  .ei-lobby .ei-lobby-echo-next{padding:7px 14px!important;font-size:12px!important;}
}

/* v0.3.75: DQ-style pop-up bridge window for Shop / Battle / Dialogue modules.
   The module layer remains a fixed safety container, but the actual bridge UI is now a centered pop-up panel,
   leaving the Lobby stage visible behind it instead of visually replacing the whole page. */
html.ei-lobby-module-open,
body.ei-lobby-module-open{
  overflow:hidden!important;
}
.ei-lobby-module-layer[hidden]{display:none!important;}
.ei-lobby-module-layer{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  z-index:2147483000!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  padding:clamp(12px,4vw,42px)!important;
  background:radial-gradient(circle at center, rgba(8,18,38,.44), rgba(2,6,23,.72) 58%, rgba(0,0,0,.82))!important;
  color:#fff!important;
  overflow:hidden!important;
  transform:none!important;
  backdrop-filter:blur(4px) saturate(1.08)!important;
  -webkit-backdrop-filter:blur(4px) saturate(1.08)!important;
  animation:eiLobbyModuleBackdropIn .18s ease-out both!important;
}
.ei-lobby-module-layer.is-closing{
  animation:eiLobbyModuleBackdropOut .18s ease-in both!important;
}
.ei-lobby-module-layer .ei-lobby-module-bar,
.ei-lobby-module-layer .ei-lobby-module-body{
  position:relative!important;
  z-index:1!important;
  width:min(94vw, 1040px)!important;
  max-width:94vw!important;
  box-sizing:border-box!important;
  animation:eiLobbyModulePopIn .24s cubic-bezier(.18,.9,.28,1.18) both!important;
  transform-origin:center center!important;
}
.ei-lobby-module-layer.is-closing .ei-lobby-module-bar,
.ei-lobby-module-layer.is-closing .ei-lobby-module-body{
  animation:eiLobbyModulePopOut .16s ease-in both!important;
}
.ei-lobby-module-layer .ei-lobby-module-bar{
  flex:0 0 auto!important;
  min-height:50px!important;
  padding:8px 12px!important;
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  background:linear-gradient(180deg, rgba(30,41,82,.98), rgba(12,18,38,.98))!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-bottom:0!important;
  border-radius:18px 18px 0 0!important;
  box-shadow:0 -1px 0 rgba(255,255,255,.08) inset, 0 18px 54px rgba(0,0,0,.34)!important;
}
.ei-lobby-module-layer .ei-lobby-module-title{
  flex:1 1 auto!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.ei-lobby-module-layer .ei-lobby-module-title.is-hidden,
.ei-lobby-module-layer .ei-lobby-module-back.is-hidden{display:none!important;}
.ei-lobby-module-layer .ei-lobby-module-bar-extra{
  flex:0 1 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  min-width:0!important;
  margin-left:auto!important;
}
.ei-lobby-module-layer .ei-lobby-module-back,
.ei-lobby-module-layer .ei-lobby-module-close{
  appearance:none!important;
  border:1px solid rgba(255,255,255,.20)!important;
  background:linear-gradient(180deg,#f8fafc,#dbeafe)!important;
  color:#0f172a!important;
  -webkit-text-fill-color:#0f172a!important;
  border-radius:12px!important;
  padding:8px 13px!important;
  font-weight:900!important;
  line-height:1.2!important;
  cursor:pointer!important;
  box-shadow:0 8px 20px rgba(0,0,0,.22)!important;
}
.ei-lobby-module-layer .ei-lobby-module-close{
  width:38px!important;
  height:38px!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:24px!important;
  line-height:1!important;
  border-radius:999px!important;
}
.ei-lobby-module-layer .ei-lobby-module-back:hover,
.ei-lobby-module-layer .ei-lobby-module-close:hover{
  filter:brightness(1.06)!important;
  transform:translateY(-1px)!important;
}
.ei-lobby-module-layer .ei-lobby-module-body{
  flex:0 1 auto!important;
  height:min(76vh, 650px)!important;
  max-height:calc(100dvh - 120px)!important;
  min-height:260px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  padding:12px!important;
  background:radial-gradient(circle at top, rgba(30,43,87,.98), rgba(13,21,43,.98) 58%, rgba(5,8,22,.98) 100%)!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-top:0!important;
  border-radius:0 0 18px 18px!important;
  box-shadow:0 30px 80px rgba(0,0,0,.48), inset 0 0 0 1px rgba(255,255,255,.04)!important;
}
.ei-lobby-module-layer .ei-lobby-module-frame{
  max-width:100%!important;
  max-height:100%!important;
  overflow:hidden!important;
  border-radius:14px!important;
  box-shadow:0 20px 54px rgba(0,0,0,.38), inset 0 0 0 1px rgba(255,255,255,.06)!important;
}
.ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-bar,
.ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-body{
  width:min(94vw, 1040px)!important;
}
.ei-lobby-module-layer.is-type-battle .ei-lobby-module-bar,
.ei-lobby-module-layer.is-type-battle .ei-lobby-module-body{
  width:min(92vw, 900px)!important;
}
.ei-lobby-module-layer.is-type-shop .ei-lobby-module-bar,
.ei-lobby-module-layer.is-type-shop .ei-lobby-module-body{
  width:min(96vw, 1180px)!important;
}
.ei-lobby-module-layer.is-type-shop .ei-lobby-module-body{
  height:min(82vh, 760px)!important;
  overflow:auto!important;
  align-items:stretch!important;
}
.ei-lobby-module-layer.is-type-shop .ei-lobby-module-frame-shop{
  width:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  overflow:auto!important;
}
.ei-lobby-module-layer.is-type-battle .ei-lobby-module-body{
  overflow:auto!important;
  align-items:flex-start!important;
  justify-content:center!important;
}
.ei-lobby-module-layer.is-type-battle .ei-lobby-module-frame-battle{
  overflow:visible!important;
}
.ei-lobby.is-module-open .ei-lobby-stage{
  filter:saturate(.78) brightness(.62)!important;
}
@media(max-width:760px){
  .ei-lobby-module-layer{
    padding:8px!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .ei-lobby-module-layer .ei-lobby-module-bar,
  .ei-lobby-module-layer .ei-lobby-module-body,
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-bar,
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-body,
  .ei-lobby-module-layer.is-type-battle .ei-lobby-module-bar,
  .ei-lobby-module-layer.is-type-battle .ei-lobby-module-body,
  .ei-lobby-module-layer.is-type-shop .ei-lobby-module-bar,
  .ei-lobby-module-layer.is-type-shop .ei-lobby-module-body{
    width:calc(100vw - 16px)!important;
    max-width:calc(100vw - 16px)!important;
  }
  .ei-lobby-module-layer .ei-lobby-module-bar{
    min-height:48px!important;
    padding:6px 8px!important;
    gap:8px!important;
    border-radius:14px 14px 0 0!important;
  }
  .ei-lobby-module-layer .ei-lobby-module-back{
    padding:7px 9px!important;
    font-size:13px!important;
    white-space:nowrap!important;
  }
  .ei-lobby-module-layer .ei-lobby-module-close{
    width:34px!important;
    height:34px!important;
    font-size:22px!important;
  }
  .ei-lobby-module-layer .ei-lobby-module-body{
    height:calc(100dvh - 68px)!important;
    max-height:calc(100dvh - 68px)!important;
    min-height:320px!important;
    padding:6px!important;
    border-radius:0 0 14px 14px!important;
  }
  .ei-lobby-module-layer.is-type-shop .ei-lobby-module-body{
    overflow:auto!important;
  }
  .ei-lobby-module-layer.is-type-battle{
    overflow:auto!important;
    align-items:center!important;
    justify-content:flex-start!important;
  }
  .ei-lobby-module-layer.is-type-battle .ei-lobby-module-body{
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    align-items:flex-start!important;
    justify-content:center!important;
  }
  .ei-lobby-module-layer.is-type-battle .ei-lobby-module-frame-battle{
    width:100%!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .ei-lobby-module-layer.is-type-battle .ei-dq-root-wrapper,
  .ei-lobby-module-layer.is-type-battle .dq-root{
    max-height:none!important;
  }
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    aspect-ratio:auto!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .ei-lobby-module-layer,
  .ei-lobby-module-layer .ei-lobby-module-bar,
  .ei-lobby-module-layer .ei-lobby-module-body{
    animation:none!important;
  }
}
@keyframes eiLobbyModuleBackdropIn{
  from{opacity:0;}
  to{opacity:1;}
}
@keyframes eiLobbyModuleBackdropOut{
  from{opacity:1;}
  to{opacity:0;}
}
@keyframes eiLobbyModulePopIn{
  from{opacity:0; transform:scale(.78) translateY(26px); filter:blur(2px);}
  70%{opacity:1; transform:scale(1.018) translateY(0); filter:blur(0);}
  to{opacity:1; transform:scale(1) translateY(0); filter:blur(0);}
}
@keyframes eiLobbyModulePopOut{
  from{opacity:1; transform:scale(1) translateY(0);}
  to{opacity:0; transform:scale(.94) translateY(12px);}
}


/* v0.3.77: Dialogue bridge iframe. EI Dialogue initializes more reliably in its own document while still appearing as a Lobby pop-up. */
.ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue.is-iframe-frame{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:100%!important;
  overflow:hidden!important;
  background:#000!important;
}
.ei-lobby-module-iframe{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  border:0!important;
  margin:0!important;
  padding:0!important;
  background:#000!important;
}
@media(max-width:760px){
  .ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue.is-iframe-frame{
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
  }
}

/* v0.3.81: flat white Lobby BGM toggle. */
.ei-lobby-stage-wrap{position:relative;}
.ei-lobby-audio-toggle{position:absolute;right:12px;top:12px;z-index:25;display:inline-flex!important;align-items:center!important;justify-content:center!important;width:38px;height:38px;padding:0!important;border:1.5px solid rgba(255,255,255,.86)!important;border-radius:999px!important;background:rgba(0,0,0,.16)!important;color:#fff!important;box-shadow:none!important;text-shadow:none!important;line-height:1!important;appearance:none;-webkit-appearance:none;cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease,opacity .16s ease;}
.ei-lobby-audio-toggle:hover{transform:translateY(-1px);background:rgba(0,0,0,.24)!important;border-color:#fff!important;}
.ei-lobby-audio-toggle:focus-visible{outline:2px solid rgba(255,255,255,.95)!important;outline-offset:3px;}
.ei-lobby-audio-toggle[hidden]{display:none!important;}
.ei-lobby-audio-toggle-icon{display:block;width:22px;height:22px;background-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M4%209v6h4l5%204V5L8%209H4z%27%2F%3E%3Cpath%20fill%3D%27none%27%20stroke%3D%27white%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20d%3D%27M16%208.5c1%20.9%201.5%202.1%201.5%203.5s-.5%202.6-1.5%203.5M18.8%206c1.8%201.5%202.8%203.6%202.8%206s-1%204.5-2.8%206%27%2F%3E%3C%2Fsvg%3E');background-repeat:no-repeat;background-position:center;background-size:contain;filter:none;pointer-events:none;}
.ei-lobby-audio-toggle.is-muted .ei-lobby-audio-toggle-icon{background-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M4%209v6h4l5%204V5L8%209H4z%27%2F%3E%3Cpath%20fill%3D%27none%27%20stroke%3D%27white%27%20stroke-width%3D%272.2%27%20stroke-linecap%3D%27round%27%20d%3D%27M18.5%208.5l-7%207M20.5%204.5l-17%2015%27%2F%3E%3C%2Fsvg%3E');opacity:.92;}
.ei-lobby-audio-toggle.is-on .ei-lobby-audio-toggle-icon{opacity:1;}
@media(max-width:860px){.ei-lobby-audio-toggle{right:8px;top:8px;width:34px;height:34px;}.ei-lobby-audio-toggle-icon{width:20px;height:20px;}}

/* v0.3.82: anti-stuck rescue button moved to the stage bottom-right corner. */
.ei-lobby .ei-lobby-announcement-title-row{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
  margin:0 0 8px!important;
}
.ei-lobby .ei-lobby-announcement-title-row .ei-lobby-announcement-title{
  margin:0!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-rescue-button{
  position:absolute!important;
  right:12px!important;
  bottom:12px!important;
  z-index:26!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:38px!important;
  height:38px!important;
  max-width:min(44%, 180px)!important;
  padding:0 12px!important;
  border:1.5px solid rgba(255,255,255,.86)!important;
  border-radius:999px!important;
  background:rgba(0,0,0,.16)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:none!important;
  text-shadow:none!important;
  font-size:13px!important;
  line-height:1!important;
  font-weight:800!important;
  letter-spacing:.04em!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  cursor:pointer!important;
  transition:transform .16s ease,background .16s ease,border-color .16s ease,opacity .16s ease!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-rescue-button:hover{
  transform:translateY(-1px)!important;
  background:rgba(0,0,0,.24)!important;
  border-color:#fff!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-rescue-button:focus-visible{
  outline:2px solid rgba(255,255,255,.95)!important;
  outline-offset:3px!important;
}
@media(max-width:860px){
  .ei-lobby .ei-lobby-stage .ei-lobby-rescue-button{
    right:8px!important;
    bottom:8px!important;
    min-width:34px!important;
    height:34px!important;
    padding:0 10px!important;
    font-size:12px!important;
  }
}

/* v0.3.83: Shop entry bridge window adapts to its actual content height.
   The previous fixed shop body height left a large black empty area under the welcome screen. */
.ei-lobby-module-layer.is-type-shop.is-shop-entry .ei-lobby-module-body{
  height:auto!important;
  min-height:0!important;
  max-height:calc(100dvh - 120px)!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:visible!important;
}
.ei-lobby-module-layer.is-type-shop.is-shop-entry .ei-lobby-module-frame-shop{
  height:auto!important;
  min-height:0!important;
  max-height:calc(100dvh - 144px)!important;
  overflow:hidden!important;
  background:transparent!important;
}
.ei-lobby-module-layer.is-type-shop.is-shop-entry .ei-rpg-shop-wrap{
  height:auto!important;
  min-height:0!important;
  max-height:calc(100dvh - 144px)!important;
  overflow:hidden!important;
}
.ei-lobby-module-layer.is-type-shop.is-shop-entry .ei-rpg-shop-wrap.is-entry .ei-shop-entry{
  inset:0!important;
}
@media(max-width:760px){
  .ei-lobby-module-layer.is-type-shop.is-shop-entry .ei-lobby-module-body{
    height:auto!important;
    min-height:0!important;
    max-height:calc(100dvh - 68px)!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .ei-lobby-module-layer.is-type-shop.is-shop-entry .ei-lobby-module-frame-shop,
  .ei-lobby-module-layer.is-type-shop.is-shop-entry .ei-rpg-shop-wrap{
    max-height:calc(100dvh - 86px)!important;
  }
}


/* v0.3.84: Shop formal view also adapts to rendered content height.
   v0.3.83 only fixed the entry screen; after pressing enter, the old fixed 82vh body still left a black empty tail. */
.ei-lobby-module-layer.is-type-shop:not(.is-shop-entry) .ei-lobby-module-body{
  flex:0 1 auto!important;
  height:auto!important;
  min-height:0!important;
  max-height:calc(100dvh - 96px)!important;
  overflow:auto!important;
  align-items:center!important;
  justify-content:center!important;
}
.ei-lobby-module-layer.is-type-shop:not(.is-shop-entry) .ei-lobby-module-frame-shop{
  height:auto!important;
  min-height:0!important;
  max-height:calc(100dvh - 118px)!important;
  overflow:auto!important;
  background:transparent!important;
}
.ei-lobby-module-layer.is-type-shop:not(.is-shop-entry) .ei-rpg-shop-wrap:not(.is-entry){
  height:auto!important;
  min-height:0!important;
  max-height:calc(100dvh - 122px)!important;
  overflow:auto!important;
}
@media(max-width:760px){
  .ei-lobby-module-layer.is-type-shop:not(.is-shop-entry) .ei-lobby-module-body{
    max-height:calc(100dvh - 68px)!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .ei-lobby-module-layer.is-type-shop:not(.is-shop-entry) .ei-lobby-module-frame-shop,
  .ei-lobby-module-layer.is-type-shop:not(.is-shop-entry) .ei-rpg-shop-wrap:not(.is-entry){
    max-height:calc(100dvh - 86px)!important;
  }
}

/* v0.3.87: Lobby entry Dialogue action buttons moved to the top module bar */
.ei-lobby-module-layer.is-entry-dialogue .ei-lobby-module-body{
  gap:0;
}
.ei-lobby-entry-dialogue-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  align-items:center;
  gap:8px;
  margin:0;
  padding:0;
  background:transparent;
  border:0;
  opacity:0;
  transform:translateY(-4px);
  transition:opacity .18s ease,transform .18s ease;
}
.ei-lobby-entry-dialogue-actions[hidden]{display:none!important;}
.ei-lobby-entry-dialogue-actions.is-visible{opacity:1;transform:translateY(0);}
.ei-lobby-entry-dialogue-btn{
  appearance:none;
  border:1px solid rgba(255,255,255,.72);
  border-radius:999px;
  background:rgba(15,23,42,.42);
  color:#fff;
  -webkit-text-fill-color:#fff;
  padding:8px 14px;
  min-height:36px;
  font-size:14px;
  font-weight:800;
  line-height:1.15;
  cursor:pointer;
  box-shadow:none;
  transition:transform .15s ease,background .15s ease,border-color .15s ease,opacity .15s ease;
}
.ei-lobby-entry-dialogue-btn:hover{background:rgba(255,255,255,.14);border-color:#fff;transform:translateY(-1px);}
.ei-lobby-entry-dialogue-btn:disabled{opacity:.55;cursor:wait;transform:none;}
.ei-lobby-entry-style-minimal{border-radius:10px;background:transparent;}
.ei-lobby-entry-style-pixel{border-radius:0;box-shadow:0 0 0 2px rgba(0,0,0,.32);font-family:monospace;}
.ei-lobby-entry-style-windows{border-radius:6px;background:#e8eef8;color:#0f172a;-webkit-text-fill-color:#0f172a;border-color:#fff;}
.ei-lobby-entry-style-mac{border-radius:999px;background:rgba(255,255,255,.88);color:#111827;-webkit-text-fill-color:#111827;border-color:rgba(255,255,255,.95);}
.ei-lobby-entry-style-chinese{border-color:#facc15;background:rgba(127,29,29,.72);}
.ei-lobby-entry-style-japanese{border-color:#f8fafc;background:rgba(127,29,29,.42);letter-spacing:.06em;}
.ei-lobby-entry-style-european{border-color:#d6b36a;background:rgba(70,38,12,.62);}
.ei-lobby-entry-style-cyberpunk{border-color:#67e8f9;background:rgba(8,47,73,.65);text-shadow:0 0 8px rgba(103,232,249,.7);}
.ei-lobby-entry-style-nasapunk{border-color:#bfdbfe;background:rgba(30,41,59,.72);text-transform:uppercase;letter-spacing:.08em;}
.ei-lobby-entry-style-steampunk{border-color:#f59e0b;background:rgba(120,53,15,.72);}
.ei-lobby-entry-style-dq{border-color:#93c5fd;background:linear-gradient(180deg,#1d4ed8,#172554);box-shadow:inset 0 0 0 2px rgba(255,255,255,.16);}
.ei-lobby-entry-style-wabisabi{border-color:#d6d3d1;background:rgba(68,64,60,.62);border-radius:12px;}
@media(max-width:760px){
  .ei-lobby-module-layer .ei-lobby-module-bar-extra{gap:6px!important;}
  .ei-lobby-entry-dialogue-actions{justify-content:flex-end;gap:6px;}
  .ei-lobby-entry-dialogue-btn{padding:7px 10px;min-height:34px;font-size:12px;}
}


/* v0.3.98 participant aura / battle-spirit visuals */
.ei-lobby-avatar.has-aura{overflow:visible!important;}
.ei-lobby-wp-avatar-person{
  position:absolute!important;
  left:0!important;
  top:0!important;
  width:42px!important;
  height:42px!important;
  overflow:visible!important;
}
.ei-lobby-wp-avatar-person img.ei-lobby-character-img{
  position:absolute!important;
  left:0!important;
  top:0!important;
  width:42px!important;
  height:42px!important;
  z-index:2!important;
}
.ei-lobby-auto-avatar-person.has-aura img.ei-lobby-auto-avatar-sprite,
.ei-lobby-wp-avatar-person.has-aura img.ei-lobby-character-img{position:relative!important;z-index:3!important;}
.ei-lobby-avatar-aura{
  position:absolute!important;
  left:50%!important;
  top:56%!important;
  width:calc(var(--ei-lobby-character-size,84px) * var(--ei-aura-size,1.35))!important;
  height:calc(var(--ei-lobby-character-size,84px) * var(--ei-aura-size,1.35))!important;
  transform:translate(-50%,-50%)!important;
  transform-origin:center center!important;
  pointer-events:none!important;
  z-index:1!important;
  opacity:var(--ei-aura-opacity,.85)!important;
  mix-blend-mode:screen;
}
.ei-lobby-avatar.has-wp-avatar .ei-lobby-avatar-aura{
  top:50%!important;
  width:calc(42px * var(--ei-aura-size,1.45))!important;
  height:calc(42px * var(--ei-aura-size,1.45))!important;
}
.ei-lobby-avatar-aura:before,
.ei-lobby-avatar-aura:after,
.ei-lobby-avatar-aura i{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;}
.ei-lobby-aura-soft_glow:before{background:radial-gradient(circle,rgba(var(--ei-aura-secondary-rgb,255,255,255),.52) 0%,rgba(var(--ei-aura-color-rgb,250,204,21),.48) 35%,rgba(var(--ei-aura-color-rgb,250,204,21),.14) 62%,rgba(var(--ei-aura-color-rgb,250,204,21),0) 78%);filter:blur(2px);animation:eiLobbyAuraPulse var(--ei-aura-speed,1600ms) ease-in-out infinite;}
.ei-lobby-aura-soft_glow:after{inset:18%;border:1px solid rgba(var(--ei-aura-secondary-rgb,255,255,255),.45);box-shadow:0 0 18px rgba(var(--ei-aura-color-rgb,250,204,21),.45);animation:eiLobbyAuraSpin calc(var(--ei-aura-speed,1600ms) * 2) linear infinite;}
.ei-lobby-aura-flame:before{inset:4% 12% -2%;border-radius:50% 50% 46% 46%;background:radial-gradient(circle at 50% 78%,rgba(var(--ei-aura-secondary-rgb,255,255,255),.34) 0 13%,rgba(var(--ei-aura-color-rgb,249,115,22),.50) 32%,rgba(var(--ei-aura-color-rgb,249,115,22),.16) 62%,rgba(var(--ei-aura-color-rgb,249,115,22),0) 80%);filter:blur(1.5px);animation:eiLobbyAuraFlame var(--ei-aura-speed,1500ms) ease-in-out infinite;}
.ei-lobby-aura-flame:after{inset:10% 24% 6%;border-radius:48% 52% 40% 60%;background:linear-gradient(180deg,rgba(var(--ei-aura-secondary-rgb,255,255,255),.30),rgba(var(--ei-aura-color-rgb,249,115,22),.44),rgba(var(--ei-aura-color-rgb,249,115,22),0));filter:blur(1px);animation:eiLobbyAuraFlame calc(var(--ei-aura-speed,1500ms) * .74) ease-in-out infinite reverse;}
.ei-lobby-aura-electric:before{inset:8%;border:2px dashed rgba(var(--ei-aura-color-rgb,56,189,248),.78);box-shadow:0 0 18px rgba(var(--ei-aura-color-rgb,56,189,248),.72),inset 0 0 14px rgba(var(--ei-aura-color-rgb,56,189,248),.30);animation:eiLobbyAuraJitter calc(var(--ei-aura-speed,1200ms) * .42) steps(2,end) infinite;}
.ei-lobby-aura-electric:after{inset:22%;border:1px solid rgba(var(--ei-aura-secondary-rgb,255,255,255),.7);clip-path:polygon(50% 0,62% 38%,100% 42%,68% 58%,80% 100%,48% 68%,18% 100%,30% 58%,0 42%,38% 38%);background:rgba(var(--ei-aura-color-rgb,56,189,248),.12);animation:eiLobbyAuraSpin var(--ei-aura-speed,1200ms) linear infinite;}
.ei-lobby-aura-rune_ring:before{inset:14%;border:2px solid rgba(var(--ei-aura-color-rgb,167,139,250),.74);box-shadow:0 0 14px rgba(var(--ei-aura-color-rgb,167,139,250),.62),inset 0 0 12px rgba(var(--ei-aura-secondary-rgb,255,255,255),.25);animation:eiLobbyAuraSpin calc(var(--ei-aura-speed,2200ms) * 1.2) linear infinite;}
.ei-lobby-aura-rune_ring:after{inset:4%;border:1px dashed rgba(var(--ei-aura-secondary-rgb,255,255,255),.64);box-shadow:0 0 18px rgba(var(--ei-aura-color-rgb,167,139,250),.44);animation:eiLobbyAuraSpin var(--ei-aura-speed,2200ms) linear infinite reverse;}
.ei-lobby-aura-holy:before{background:conic-gradient(from 0deg,rgba(var(--ei-aura-secondary-rgb,255,255,255),0),rgba(var(--ei-aura-color-rgb,250,204,21),.45),rgba(var(--ei-aura-secondary-rgb,255,255,255),.26),rgba(var(--ei-aura-color-rgb,250,204,21),0));filter:blur(1px);animation:eiLobbyAuraSpin calc(var(--ei-aura-speed,1800ms) * 1.4) linear infinite;}
.ei-lobby-aura-holy:after{inset:18%;background:radial-gradient(circle,rgba(var(--ei-aura-secondary-rgb,255,255,255),.36),rgba(var(--ei-aura-color-rgb,250,204,21),.18) 44%,rgba(var(--ei-aura-color-rgb,250,204,21),0) 72%);animation:eiLobbyAuraPulse var(--ei-aura-speed,1800ms) ease-in-out infinite;}
.ei-lobby-aura-shadow{mix-blend-mode:multiply;}
.ei-lobby-aura-shadow:before{background:radial-gradient(circle,rgba(var(--ei-aura-color-rgb,88,28,135),.40) 0%,rgba(var(--ei-aura-color-rgb,88,28,135),.34) 46%,rgba(15,23,42,.24) 66%,rgba(15,23,42,0) 80%);filter:blur(3px);animation:eiLobbyAuraPulse calc(var(--ei-aura-speed,1800ms) * 1.1) ease-in-out infinite;}
.ei-lobby-aura-pulse_ring:before{inset:20%;border:2px solid rgba(var(--ei-aura-color-rgb,34,197,94),.72);animation:eiLobbyAuraExpand var(--ei-aura-speed,1500ms) ease-out infinite;}
.ei-lobby-aura-pulse_ring:after{inset:34%;border:2px solid rgba(var(--ei-aura-secondary-rgb,255,255,255),.56);animation:eiLobbyAuraExpand calc(var(--ei-aura-speed,1500ms) * 1.05) ease-out infinite .28s;}
.ei-lobby-aura-ki_burst:before{inset:-10% 4% -16%;border-radius:48% 48% 38% 38%;background:radial-gradient(circle at 50% 82%,rgba(var(--ei-aura-secondary-rgb,255,255,255),.48) 0 9%,rgba(var(--ei-aura-color-rgb,250,204,21),.48) 24%,rgba(var(--ei-aura-color-rgb,250,204,21),.24) 54%,rgba(var(--ei-aura-color-rgb,250,204,21),0) 78%),linear-gradient(180deg,rgba(var(--ei-aura-secondary-rgb,255,255,255),.16),rgba(var(--ei-aura-color-rgb,250,204,21),.54),rgba(var(--ei-aura-color-rgb,250,204,21),0));clip-path:polygon(50% 0,58% 20%,72% 6%,68% 31%,88% 18%,78% 47%,100% 45%,79% 63%,91% 88%,63% 76%,52% 100%,42% 76%,13% 90%,25% 64%,0 47%,24% 46%,12% 18%,33% 31%,29% 7%,43% 20%);filter:blur(1.2px) drop-shadow(0 0 14px rgba(var(--ei-aura-color-rgb,250,204,21),.72));animation:eiLobbyAuraKiBurst var(--ei-aura-speed,950ms) ease-in-out infinite;}
.ei-lobby-aura-ki_burst:after{inset:8% 20% 0;border-radius:50%;background:linear-gradient(180deg,rgba(var(--ei-aura-secondary-rgb,255,255,255),.70) 0 7%,rgba(var(--ei-aura-color-rgb,250,204,21),.54) 10% 24%,transparent 28% 100%);filter:blur(.6px);animation:eiLobbyAuraKiRays calc(var(--ei-aura-speed,950ms) * .72) linear infinite;}
.ei-lobby-aura-ki_burst i{inset:34% 18% 12%;border:2px solid rgba(var(--ei-aura-secondary-rgb,255,255,255),.46);box-shadow:0 0 18px rgba(var(--ei-aura-color-rgb,250,204,21),.52),inset 0 0 12px rgba(var(--ei-aura-color-rgb,250,204,21),.22);animation:eiLobbyAuraKiRing calc(var(--ei-aura-speed,950ms) * 1.25) ease-out infinite;}
.ei-lobby-aura-nebula:before{background:radial-gradient(circle at 28% 34%,rgba(var(--ei-aura-secondary-rgb,255,255,255),.42),transparent 18%),radial-gradient(circle at 72% 30%,rgba(var(--ei-aura-color-rgb,168,85,247),.42),transparent 24%),radial-gradient(circle at 50% 72%,rgba(var(--ei-aura-color-rgb,168,85,247),.32),transparent 28%),radial-gradient(circle,rgba(var(--ei-aura-color-rgb,168,85,247),.18),transparent 72%);filter:blur(1.2px);animation:eiLobbyAuraNebula calc(var(--ei-aura-speed,2600ms) * 1.2) ease-in-out infinite;}
.ei-lobby-aura-scan:before{inset:8%;border:1px solid rgba(var(--ei-aura-color-rgb,16,185,129),.64);box-shadow:0 0 16px rgba(var(--ei-aura-color-rgb,16,185,129),.45),inset 0 0 10px rgba(var(--ei-aura-color-rgb,16,185,129),.22);}
.ei-lobby-aura-scan:after{inset:12% 8%;border-radius:10px;background:linear-gradient(180deg,transparent 0 42%,rgba(var(--ei-aura-secondary-rgb,255,255,255),.62) 48%,rgba(var(--ei-aura-color-rgb,16,185,129),.32) 54%,transparent 60% 100%);animation:eiLobbyAuraScan var(--ei-aura-speed,1500ms) linear infinite;}
.ei-lobby-aura-double_ring:before{inset:8%;border:2px solid rgba(var(--ei-aura-color-rgb,96,165,250),.62);box-shadow:0 0 14px rgba(var(--ei-aura-color-rgb,96,165,250),.46);animation:eiLobbyAuraSpin var(--ei-aura-speed,1800ms) linear infinite;}
.ei-lobby-aura-double_ring:after{inset:24%;border:2px dashed rgba(var(--ei-aura-secondary-rgb,255,255,255),.55);box-shadow:inset 0 0 12px rgba(var(--ei-aura-color-rgb,96,165,250),.26);animation:eiLobbyAuraSpin calc(var(--ei-aura-speed,1800ms) * .7) linear infinite reverse;}
@keyframes eiLobbyAuraPulse{0%,100%{transform:scale(.94);opacity:.72}50%{transform:scale(1.08);opacity:1}}
@keyframes eiLobbyAuraSpin{to{transform:rotate(360deg)}}
@keyframes eiLobbyAuraFlame{0%,100%{transform:translateY(5%) scaleX(.90) scaleY(.96)}50%{transform:translateY(-4%) scaleX(1.08) scaleY(1.08)}}
@keyframes eiLobbyAuraJitter{0%,100%{transform:translate(-1px,0) rotate(0deg)}25%{transform:translate(1px,-1px) rotate(5deg)}50%{transform:translate(0,1px) rotate(-4deg)}75%{transform:translate(-1px,1px) rotate(3deg)}}
@keyframes eiLobbyAuraExpand{0%{transform:scale(.62);opacity:.95}100%{transform:scale(1.52);opacity:0}}
@keyframes eiLobbyAuraNebula{0%,100%{transform:scale(.95) rotate(0deg);opacity:.72}50%{transform:scale(1.1) rotate(8deg);opacity:1}}
@keyframes eiLobbyAuraScan{0%{transform:translateY(42%);opacity:.12}18%,70%{opacity:1}100%{transform:translateY(-42%);opacity:.1}}
@keyframes eiLobbyAuraKiBurst{0%,100%{transform:translateY(4%) scaleX(.92) scaleY(.96);opacity:.76}35%{transform:translateY(-6%) scaleX(1.10) scaleY(1.12);opacity:1}70%{transform:translateY(-2%) scaleX(.98) scaleY(1.06);opacity:.9}}
@keyframes eiLobbyAuraKiRays{0%{transform:translateY(14%) scaleY(.68);opacity:.18}35%{opacity:1}100%{transform:translateY(-18%) scaleY(1.08);opacity:.05}}
@keyframes eiLobbyAuraKiRing{0%{transform:scale(.72);opacity:.78}100%{transform:scale(1.42);opacity:0}}
@media (prefers-reduced-motion: reduce){.ei-lobby-avatar-aura:before,.ei-lobby-avatar-aura:after,.ei-lobby-avatar-aura i{animation:none!important;}}

/* v0.4.0 corner quick action dock */
.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock{
  position:absolute!important;
  bottom:12px!important;
  z-index:28!important;
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  max-width:min(46%,220px)!important;
  pointer-events:auto!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-right{right:12px!important;align-items:flex-end!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-left{left:12px!important;align-items:flex-start!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:42px!important;
  height:38px!important;
  max-width:100%!important;
  padding:0 13px!important;
  border:1px solid rgba(255,255,255,.72)!important;
  border-radius:999px!important;
  background:rgba(15,23,42,.34)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  backdrop-filter:blur(10px)!important;
  box-shadow:0 10px 24px rgba(15,23,42,.22),inset 0 1px 0 rgba(255,255,255,.18)!important;
  text-shadow:0 1px 3px rgba(0,0,0,.35)!important;
  font-size:13px!important;
  line-height:1!important;
  font-weight:850!important;
  letter-spacing:.03em!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  cursor:pointer!important;
  transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button span{display:block!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button:hover{
  transform:translateY(-1px)!important;
  background:rgba(15,23,42,.52)!important;
  border-color:rgba(255,255,255,.95)!important;
  box-shadow:0 14px 28px rgba(15,23,42,.28),inset 0 1px 0 rgba(255,255,255,.24)!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button:focus-visible{
  outline:2px solid rgba(255,255,255,.95)!important;
  outline-offset:3px!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-action-memory_library{background:rgba(30,64,175,.42)!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-action-rescue{background:rgba(0,0,0,.24)!important;}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-body{align-items:center!important;justify-content:center!important;overflow:auto!important;}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-frame-memory_library{width:min(1180px,calc(100vw - 42px))!important;max-width:calc(100vw - 42px)!important;max-height:calc(100dvh - 86px)!important;overflow:auto!important;background:transparent!important;}
.ei-lobby-module-layer.is-type-memory_library .ei-seed-library{margin:0 auto!important;max-width:100%!important;}
@media(max-width:860px){
  .ei-lobby .ei-lobby-stage .ei-lobby-quick-dock{bottom:8px!important;gap:6px!important;max-width:min(54%,190px)!important;}
  .ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-right{right:8px!important;}
  .ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-left{left:8px!important;}
  .ei-lobby .ei-lobby-stage .ei-lobby-quick-button{height:34px!important;min-width:36px!important;padding:0 10px!important;font-size:12px!important;}
  .ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-frame-memory_library{width:calc(100vw - 20px)!important;max-width:calc(100vw - 20px)!important;max-height:calc(100dvh - 72px)!important;}
}
.ei-lobby:not(.is-entered) .ei-lobby-quick-dock{display:none!important;}


/* v0.4.1: per-button dual-side quick docks, style presets and safer embedded module sizing. */
.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-left,.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-right{bottom:12px!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-left{left:12px!important;right:auto!important;}.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-right{right:12px!important;left:auto!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button{background:var(--ei-lobby-quick-bg, rgba(15,23,42,.34))!important;color:var(--ei-lobby-quick-text, #fff)!important;-webkit-text-fill-color:var(--ei-lobby-quick-text, #fff)!important;border-color:var(--ei-lobby-quick-border, rgba(255,255,255,.72))!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button:hover{background:var(--ei-lobby-quick-hover-bg, rgba(15,23,42,.52))!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-style-glass{--ei-lobby-quick-bg:rgba(15,23,42,.36);--ei-lobby-quick-border:rgba(255,255,255,.72);box-shadow:0 10px 24px rgba(15,23,42,.22),inset 0 1px 0 rgba(255,255,255,.18)!important;backdrop-filter:blur(10px)!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-style-rpg{--ei-lobby-quick-bg:#3a2512;--ei-lobby-quick-hover-bg:#5a391b;--ei-lobby-quick-border:#d6aa55;--ei-lobby-quick-text:#ffeec2;border-radius:12px!important;box-shadow:0 10px 0 rgba(0,0,0,.18), inset 0 2px 0 rgba(255,255,255,.2)!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-style-chinese{--ei-lobby-quick-bg:#7f1d1d;--ei-lobby-quick-hover-bg:#991b1b;--ei-lobby-quick-border:#f5c76a;--ei-lobby-quick-text:#fff0c2;border-radius:999px!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-style-japanese{--ei-lobby-quick-bg:#f8f1e4;--ei-lobby-quick-hover-bg:#efe1cc;--ei-lobby-quick-border:#2f2922;--ei-lobby-quick-text:#2a241d;text-shadow:none!important;border-radius:8px!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-style-pixel{--ei-lobby-quick-bg:#3b3b3b;--ei-lobby-quick-hover-bg:#555;--ei-lobby-quick-border:#111;--ei-lobby-quick-text:#fff;border-radius:0!important;box-shadow:inset 3px 3px 0 rgba(255,255,255,.24),inset -3px -3px 0 rgba(0,0,0,.36)!important;image-rendering:pixelated!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-style-windows{--ei-lobby-quick-bg:#e5e7eb;--ei-lobby-quick-hover-bg:#dbeafe;--ei-lobby-quick-border:#6b7280;--ei-lobby-quick-text:#111827;text-shadow:none!important;border-radius:4px!important;box-shadow:inset 1px 1px 0 #fff,inset -1px -1px 0 #64748b!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-style-mac{--ei-lobby-quick-bg:#f8fafc;--ei-lobby-quick-hover-bg:#eef2ff;--ei-lobby-quick-border:#cbd5e1;--ei-lobby-quick-text:#0f172a;text-shadow:none!important;border-radius:999px!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-style-cyberpunk{--ei-lobby-quick-bg:#13002e;--ei-lobby-quick-hover-bg:#26004d;--ei-lobby-quick-border:#00e5ff;--ei-lobby-quick-text:#faff00;box-shadow:0 0 0 1px rgba(255,0,255,.45),0 0 18px rgba(0,229,255,.35)!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-style-nasapunk{--ei-lobby-quick-bg:#111827;--ei-lobby-quick-hover-bg:#1e293b;--ei-lobby-quick-border:#e5e7eb;--ei-lobby-quick-text:#f8fafc;border-radius:6px!important;letter-spacing:.08em!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-style-steampunk{--ei-lobby-quick-bg:#4b2e13;--ei-lobby-quick-hover-bg:#6f451d;--ei-lobby-quick-border:#c28b45;--ei-lobby-quick-text:#ffe4b5;border-radius:10px!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-style-minimal{--ei-lobby-quick-bg:#fff;--ei-lobby-quick-hover-bg:#f1f5f9;--ei-lobby-quick-border:#cbd5e1;--ei-lobby-quick-text:#0f172a;text-shadow:none!important;box-shadow:0 8px 18px rgba(15,23,42,.12)!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-style-wabisabi{--ei-lobby-quick-bg:#eee6d8;--ei-lobby-quick-hover-bg:#e3d7c5;--ei-lobby-quick-border:#8a7967;--ei-lobby-quick-text:#3a332b;text-shadow:none!important;border-radius:14px 8px 16px 10px!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-style-basic{--ei-lobby-quick-bg:rgba(0,0,0,.24);--ei-lobby-quick-hover-bg:rgba(0,0,0,.38);--ei-lobby-quick-border:rgba(255,255,255,.7);--ei-lobby-quick-text:#fff;}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-bar,.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-body{width:min(96vw,1280px)!important;max-width:96vw!important;}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-body{height:min(84vh,820px)!important;max-height:calc(100dvh - 104px)!important;overflow:auto!important;align-items:flex-start!important;justify-content:center!important;-webkit-overflow-scrolling:touch!important;}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-frame-memory_library{width:100%!important;max-width:100%!important;min-width:0!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;}
.ei-lobby-module-layer.is-type-memory_library .ei-seed-library{width:100%!important;max-width:1200px!important;margin:0 auto!important;box-sizing:border-box!important;}
.ei-lobby-module-layer.is-type-memory_library .ei-memory-game-ui .ei-game-window{width:100%!important;max-width:100%!important;box-sizing:border-box!important;}
.ei-lobby-module-layer.is-type-memory_library .ei-memory-game-ui .ei-game-panel,.ei-lobby-module-layer.is-type-memory_library .ei-memory-game-ui .ei-game-bottom{min-width:0!important;box-sizing:border-box!important;}
.ei-lobby-module-layer.is-type-memory_library .ei-memory-game-ui .ei-game-panel{grid-template-columns:minmax(0,1fr) minmax(300px,360px)!important;}
.ei-lobby-module-layer.is-type-memory_library .ei-memory-game-ui .ei-game-grid,.ei-lobby-module-layer.is-type-memory_library .ei-memory-game-ui .ei-game-detail{min-width:0!important;}
@media(max-width:980px){.ei-lobby-module-layer.is-type-memory_library .ei-memory-game-ui .ei-game-panel{grid-template-columns:1fr!important;}.ei-lobby-module-layer.is-type-memory_library .ei-memory-game-ui .ei-game-bottom{grid-template-columns:1fr!important;}}
@media(max-width:760px){.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-bar,.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-body{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;}.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-body{height:calc(100dvh - 68px)!important;max-height:calc(100dvh - 68px)!important;}}
.ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-bar,.ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-body{width:min(92vw,960px)!important;max-width:92vw!important;}
.ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-body{height:min(72vh,620px)!important;}
.ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-frame-dialogue{max-width:100%!important;max-height:100%!important;}
@media(max-width:760px){.ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-bar,.ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-body{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;}.ei-lobby-module-layer.is-type-dialogue .ei-lobby-module-body{height:calc(100dvh - 68px)!important;max-height:calc(100dvh - 68px)!important;}}

/* v0.4.2: horizontal quick docks and Memory Classic bridge polish */
.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-horizontal{flex-direction:row!important;align-items:center!important;max-width:min(82%,560px)!important;overflow:visible!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-horizontal.ei-lobby-quick-dock-right{justify-content:flex-end!important;align-items:center!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-horizontal.ei-lobby-quick-dock-left{justify-content:flex-start!important;align-items:center!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-horizontal .ei-lobby-quick-button{max-width:180px!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-vertical.ei-lobby-quick-dock-lifted{bottom:60px!important;}
@media(max-width:860px){.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-horizontal{max-width:min(86%,420px)!important;gap:6px!important}.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-horizontal .ei-lobby-quick-button{max-width:136px!important}.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock-vertical.ei-lobby-quick-dock-lifted{bottom:50px!important;}}

.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-frame-memory_library .ei-seed-library:not(.ei-memory-game-ui){
  width:100%!important;
  max-width:1120px!important;
  margin:0 auto!important;
  padding:24px!important;
  border-radius:22px!important;
  background:rgba(248,250,252,.96)!important;
  color:#0f172a!important;
  box-shadow:0 18px 46px rgba(15,23,42,.16)!important;
  font-family:Inter,"Noto Sans TC",system-ui,sans-serif!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-frame-memory_library .ei-seed-library:not(.ei-memory-game-ui) *{box-sizing:border-box!important;}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-frame-memory_library .ei-seed-library:not(.ei-memory-game-ui) .ei-seed-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important;
  gap:14px!important;
  width:100%!important;
}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-frame-memory_library .ei-seed-library:not(.ei-memory-game-ui) .ei-seed-card{
  display:flex!important;
  flex-direction:column!important;
  gap:10px!important;
  min-height:150px!important;
  padding:16px!important;
  border:1px solid #dbe3ef!important;
  border-radius:18px!important;
  background:#fff!important;
  color:#0f172a!important;
  box-shadow:0 10px 24px rgba(15,23,42,.07)!important;
}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-frame-memory_library .ei-seed-library:not(.ei-memory-game-ui) .ei-seed-card strong{color:#0f172a!important;font-size:16px!important;line-height:1.35!important;}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-frame-memory_library .ei-seed-library:not(.ei-memory-game-ui) .ei-seed-card p{color:#475569!important;margin:0!important;line-height:1.6!important;}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-frame-memory_library .ei-seed-library:not(.ei-memory-game-ui) .ei-seed-button,
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-frame-memory_library .ei-seed-library:not(.ei-memory-game-ui) button{
  width:100%!important;
  margin-top:auto!important;
  min-height:38px!important;
  border:0!important;
  border-radius:12px!important;
  background:#2563eb!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-weight:850!important;
  box-shadow:0 8px 16px rgba(37,99,235,.24)!important;
}
@media(max-width:760px){.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-frame-memory_library .ei-seed-library:not(.ei-memory-game-ui){padding:14px!important;border-radius:16px!important}.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-frame-memory_library .ei-seed-library:not(.ei-memory-game-ui) .ei-seed-grid{grid-template-columns:1fr!important;}}

/* v0.4.5: Memory Library bridge returns to v0.4.2 sizing with an intentionally visible scroll bar. */
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-body{
  overflow-y:scroll!important;
  overflow-x:hidden!important;
  scrollbar-width:auto!important;
  scrollbar-color:rgba(96,165,250,.95) rgba(15,23,42,.28)!important;
  scrollbar-gutter:stable both-edges!important;
  position:relative!important;
}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-body::-webkit-scrollbar{
  width:16px!important;
  height:16px!important;
}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-body::-webkit-scrollbar-track{
  background:rgba(15,23,42,.34)!important;
  border-left:1px solid rgba(255,255,255,.18)!important;
  border-radius:999px!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)!important;
}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-body::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,rgba(147,197,253,.98),rgba(37,99,235,.98))!important;
  border:3px solid rgba(15,23,42,.34)!important;
  border-radius:999px!important;
  box-shadow:0 0 12px rgba(96,165,250,.55)!important;
}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-body::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,rgba(191,219,254,1),rgba(59,130,246,1))!important;
}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-body::after{
  content:'可滾動'!important;
  position:sticky!important;
  right:8px!important;
  bottom:10px!important;
  float:right!important;
  z-index:6!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:4px 8px!important;
  border-radius:999px!important;
  background:rgba(15,23,42,.72)!important;
  border:1px solid rgba(147,197,253,.5)!important;
  color:#dbeafe!important;
  -webkit-text-fill-color:#dbeafe!important;
  font-size:11px!important;
  font-weight:800!important;
  letter-spacing:.04em!important;
  pointer-events:none!important;
  box-shadow:0 8px 18px rgba(15,23,42,.28)!important;
}


/* v0.4.7: Memory Library themed in-window scrollbar controls. */
.ei-lobby-module-layer.is-type-memory_library{
  position:fixed!important;
}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-body{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding-right:58px!important;
  scrollbar-width:none!important;
  -ms-overflow-style:none!important;
  position:relative!important;
}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-body::-webkit-scrollbar{
  width:0!important;
  height:0!important;
}
.ei-lobby-module-layer.is-type-memory_library .ei-lobby-module-body::after{
  content:none!important;
  display:none!important;
}

.ei-lobby-module-layer.is-type-memory_library.is-memory-control-none .ei-lobby-module-body{
  padding-right:0!important;
  scrollbar-width:auto!important;
  -ms-overflow-style:auto!important;
}
.ei-lobby-module-layer.is-type-memory_library.is-memory-control-none .ei-lobby-module-body::-webkit-scrollbar{
  width:16px!important;
  height:16px!important;
}
.ei-lobby-module-layer.is-type-memory_library.is-memory-control-arrow .ei-lobby-module-body{
  padding-right:0!important;
}
.ei-lobby-module-layer.is-type-memory_library.is-memory-control-scrollbar .ei-lobby-module-body,
.ei-lobby-module-layer.is-type-memory_library.is-memory-control-both .ei-lobby-module-body{
  padding-right:58px!important;
}
.ei-lobby-memory-scrollbar{
  --ei-mem-scroll-bg:#c0c0c0;
  --ei-mem-scroll-border:#0f172a;
  --ei-mem-scroll-track-a:#e5e7eb;
  --ei-mem-scroll-track-b:#cbd5e1;
  --ei-mem-scroll-button:#d9d9d9;
  --ei-mem-scroll-button-active:#b8b8b8;
  --ei-mem-scroll-text:#111827;
  --ei-mem-scroll-thumb-a:#f8fafc;
  --ei-mem-scroll-thumb-b:#a7b3c5;
  --ei-mem-scroll-thumb-active-a:#dbeafe;
  --ei-mem-scroll-thumb-active-b:#60a5fa;
  --ei-mem-scroll-grip:#334155;
  --ei-mem-scroll-radius:0;
  --ei-mem-scroll-shadow:inset 1px 1px 0 rgba(255,255,255,.95),inset -1px -1px 0 rgba(0,0,0,.55),0 8px 18px rgba(0,0,0,.34);
  position:fixed!important;
  top:var(--ei-lobby-memory-scrollbar-top,64px)!important;
  left:var(--ei-lobby-memory-scrollbar-left,auto)!important;
  height:var(--ei-lobby-memory-scrollbar-height,calc(100dvh - 90px))!important;
  width:26px!important;
  z-index:999999!important;
  display:grid!important;
  grid-template-rows:26px minmax(40px,1fr) 26px!important;
  gap:2px!important;
  padding:2px!important;
  border:2px solid var(--ei-mem-scroll-border)!important;
  border-radius:var(--ei-mem-scroll-radius)!important;
  background:var(--ei-mem-scroll-bg)!important;
  box-shadow:var(--ei-mem-scroll-shadow)!important;
  box-sizing:border-box!important;
  user-select:none!important;
  -webkit-user-select:none!important;
  pointer-events:auto!important;
}
.ei-lobby-memory-scrollbar-button{
  width:100%!important;
  height:26px!important;
  min-height:26px!important;
  padding:0!important;
  border:2px solid var(--ei-mem-scroll-border)!important;
  border-radius:var(--ei-mem-scroll-radius)!important;
  background:var(--ei-mem-scroll-button)!important;
  color:var(--ei-mem-scroll-text)!important;
  -webkit-text-fill-color:var(--ei-mem-scroll-text)!important;
  font-size:13px!important;
  line-height:1!important;
  font-weight:900!important;
  cursor:pointer!important;
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.95),inset -1px -1px 0 rgba(0,0,0,.42)!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
.ei-lobby-memory-scrollbar-button:active{
  background:var(--ei-mem-scroll-button-active)!important;
  box-shadow:inset -1px -1px 0 rgba(255,255,255,.92),inset 1px 1px 0 rgba(0,0,0,.42)!important;
  transform:translate(1px,1px)!important;
}
.ei-lobby-memory-scrollbar-track{
  position:relative!important;
  min-height:40px!important;
  border:2px solid var(--ei-mem-scroll-border)!important;
  border-radius:var(--ei-mem-scroll-radius)!important;
  background:repeating-linear-gradient(45deg,var(--ei-mem-scroll-track-a) 0,var(--ei-mem-scroll-track-a) 4px,var(--ei-mem-scroll-track-b) 4px,var(--ei-mem-scroll-track-b) 8px)!important;
  box-shadow:inset 1px 1px 0 rgba(0,0,0,.38),inset -1px -1px 0 rgba(255,255,255,.55)!important;
  overflow:hidden!important;
  cursor:pointer!important;
}
.ei-lobby-memory-scrollbar-thumb{
  position:absolute!important;
  left:1px!important;
  right:1px!important;
  top:0!important;
  min-height:34px!important;
  border:2px solid var(--ei-mem-scroll-border)!important;
  border-radius:var(--ei-mem-scroll-radius)!important;
  background:linear-gradient(180deg,var(--ei-mem-scroll-thumb-a),var(--ei-mem-scroll-thumb-b))!important;
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.92),inset -1px -1px 0 rgba(0,0,0,.42)!important;
  cursor:grab!important;
  box-sizing:border-box!important;
}
.ei-lobby-memory-scrollbar-thumb::before{
  content:''!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:10px!important;
  height:18px!important;
  transform:translate(-50%,-50%)!important;
  background:repeating-linear-gradient(180deg,var(--ei-mem-scroll-grip) 0,var(--ei-mem-scroll-grip) 2px,transparent 2px,transparent 5px)!important;
  opacity:.72!important;
}
.ei-lobby-memory-scrollbar.is-dragging .ei-lobby-memory-scrollbar-thumb{
  cursor:grabbing!important;
  background:linear-gradient(180deg,var(--ei-mem-scroll-thumb-active-a),var(--ei-mem-scroll-thumb-active-b))!important;
}
.ei-lobby-memory-scrollbar.is-disabled{
  opacity:.42!important;
  pointer-events:none!important;
}
.ei-lobby-memory-scrollbar-theme-pixel,
.ei-lobby-memory-scrollbar-theme-windows95{
  --ei-mem-scroll-bg:#c0c0c0;--ei-mem-scroll-border:#111;--ei-mem-scroll-track-a:#e8e8e8;--ei-mem-scroll-track-b:#c7c7c7;--ei-mem-scroll-button:#d9d9d9;--ei-mem-scroll-button-active:#b7b7b7;--ei-mem-scroll-text:#111;--ei-mem-scroll-thumb-a:#f4f4f4;--ei-mem-scroll-thumb-b:#a5a5a5;--ei-mem-scroll-thumb-active-a:#dbeafe;--ei-mem-scroll-thumb-active-b:#6aa6ff;--ei-mem-scroll-grip:#333;--ei-mem-scroll-radius:0;
}
.ei-lobby-memory-scrollbar-theme-dragon{--ei-mem-scroll-bg:#78a85a;--ei-mem-scroll-border:#203d16;--ei-mem-scroll-track-a:#e7ffd3;--ei-mem-scroll-track-b:#c8eda6;--ei-mem-scroll-button:#8bd765;--ei-mem-scroll-button-active:#5e9d3f;--ei-mem-scroll-text:#1f3516;--ei-mem-scroll-thumb-a:#fff9c5;--ei-mem-scroll-thumb-b:#7fc35b;--ei-mem-scroll-thumb-active-a:#fff8d8;--ei-mem-scroll-thumb-active-b:#ef8d3a;--ei-mem-scroll-grip:#203d16;--ei-mem-scroll-radius:10px;}
.ei-lobby-memory-scrollbar-theme-classical{--ei-mem-scroll-bg:#a97b3d;--ei-mem-scroll-border:#3e270f;--ei-mem-scroll-track-a:#f3dfaa;--ei-mem-scroll-track-b:#c7a86a;--ei-mem-scroll-button:#c49a50;--ei-mem-scroll-button-active:#8c5b25;--ei-mem-scroll-text:#2a1608;--ei-mem-scroll-thumb-a:#f7e6b6;--ei-mem-scroll-thumb-b:#a67739;--ei-mem-scroll-thumb-active-a:#f8e7bd;--ei-mem-scroll-thumb-active-b:#8c5b25;--ei-mem-scroll-grip:#3a2614;--ei-mem-scroll-radius:2px;}
.ei-lobby-memory-scrollbar-theme-medieval{--ei-mem-scroll-bg:#211914;--ei-mem-scroll-border:#0d0a08;--ei-mem-scroll-track-a:#3e3328;--ei-mem-scroll-track-b:#1f1a16;--ei-mem-scroll-button:#5a4937;--ei-mem-scroll-button-active:#2a2119;--ei-mem-scroll-text:#ead7b0;--ei-mem-scroll-thumb-a:#8a755b;--ei-mem-scroll-thumb-b:#2e251d;--ei-mem-scroll-thumb-active-a:#c69a55;--ei-mem-scroll-thumb-active-b:#5a4937;--ei-mem-scroll-grip:#ffe9bf;--ei-mem-scroll-radius:0;}
.ei-lobby-memory-scrollbar-theme-european{--ei-mem-scroll-bg:#e8dcc6;--ei-mem-scroll-border:#b9944a;--ei-mem-scroll-track-a:#fffaf0;--ei-mem-scroll-track-b:#efe5d4;--ei-mem-scroll-button:#fff;--ei-mem-scroll-button-active:#e3c98c;--ei-mem-scroll-text:#3b2d22;--ei-mem-scroll-thumb-a:#fff;--ei-mem-scroll-thumb-b:#c49b50;--ei-mem-scroll-thumb-active-a:#fff7e6;--ei-mem-scroll-thumb-active-b:#b9944a;--ei-mem-scroll-grip:#7a5521;--ei-mem-scroll-radius:8px;}
.ei-lobby-memory-scrollbar-theme-chinese{--ei-mem-scroll-bg:#260707;--ei-mem-scroll-border:#170404;--ei-mem-scroll-track-a:#7c1515;--ei-mem-scroll-track-b:#3a0808;--ei-mem-scroll-button:#8e1f1f;--ei-mem-scroll-button-active:#4e0d0d;--ei-mem-scroll-text:#f8e7c4;--ei-mem-scroll-thumb-a:#d6aa55;--ei-mem-scroll-thumb-b:#9c2323;--ei-mem-scroll-thumb-active-a:#ffd95e;--ei-mem-scroll-thumb-active-b:#d6aa55;--ei-mem-scroll-grip:#3a0808;--ei-mem-scroll-radius:0;}
.ei-lobby-memory-scrollbar-theme-japanese{--ei-mem-scroll-bg:#2d2a24;--ei-mem-scroll-border:#171512;--ei-mem-scroll-track-a:#f3eee2;--ei-mem-scroll-track-b:#d7cbb8;--ei-mem-scroll-button:#403b32;--ei-mem-scroll-button-active:#5b5143;--ei-mem-scroll-text:#f3eee2;--ei-mem-scroll-thumb-a:#f8f3e8;--ei-mem-scroll-thumb-b:#b84b3a;--ei-mem-scroll-thumb-active-a:#fff4df;--ei-mem-scroll-thumb-active-b:#b84b3a;--ei-mem-scroll-grip:#2d2a24;--ei-mem-scroll-radius:6px;}
.ei-lobby-memory-scrollbar-theme-wabi{--ei-mem-scroll-bg:#8b806b;--ei-mem-scroll-border:#5a5144;--ei-mem-scroll-track-a:#eee8dc;--ei-mem-scroll-track-b:#c7bca7;--ei-mem-scroll-button:#afa38d;--ei-mem-scroll-button-active:#8b806b;--ei-mem-scroll-text:#fff8ec;--ei-mem-scroll-thumb-a:#e8decc;--ei-mem-scroll-thumb-b:#9b8e77;--ei-mem-scroll-thumb-active-a:#efe7d7;--ei-mem-scroll-thumb-active-b:#8b806b;--ei-mem-scroll-grip:#37322a;--ei-mem-scroll-radius:14px;}
.ei-lobby-memory-scrollbar-theme-cyberpunk{--ei-mem-scroll-bg:#050515;--ei-mem-scroll-border:#00e5ff;--ei-mem-scroll-track-a:#0d1230;--ei-mem-scroll-track-b:#12002a;--ei-mem-scroll-button:#13002e;--ei-mem-scroll-button-active:#26004d;--ei-mem-scroll-text:#faff00;--ei-mem-scroll-thumb-a:#17f1ff;--ei-mem-scroll-thumb-b:#ff2bd6;--ei-mem-scroll-thumb-active-a:#faff00;--ei-mem-scroll-thumb-active-b:#00e5ff;--ei-mem-scroll-grip:#050515;--ei-mem-scroll-radius:0;--ei-mem-scroll-shadow:0 0 0 1px rgba(255,0,255,.55),0 0 18px rgba(0,229,255,.45)!important;}
.ei-lobby-memory-scrollbar-theme-minimal{--ei-mem-scroll-bg:#ffffff;--ei-mem-scroll-border:#d1d5db;--ei-mem-scroll-track-a:#f8fafc;--ei-mem-scroll-track-b:#e2e8f0;--ei-mem-scroll-button:#f1f5f9;--ei-mem-scroll-button-active:#e2e8f0;--ei-mem-scroll-text:#0f172a;--ei-mem-scroll-thumb-a:#ffffff;--ei-mem-scroll-thumb-b:#cbd5e1;--ei-mem-scroll-thumb-active-a:#e2e8f0;--ei-mem-scroll-thumb-active-b:#94a3b8;--ei-mem-scroll-grip:#475569;--ei-mem-scroll-radius:12px;}
.ei-lobby-memory-scrollbar-theme-windows{--ei-mem-scroll-bg:#eff6ff;--ei-mem-scroll-border:#6b7280;--ei-mem-scroll-track-a:#dbeafe;--ei-mem-scroll-track-b:#bfdbfe;--ei-mem-scroll-button:#e5e7eb;--ei-mem-scroll-button-active:#cbd5e1;--ei-mem-scroll-text:#111827;--ei-mem-scroll-thumb-a:#f8fafc;--ei-mem-scroll-thumb-b:#94a3b8;--ei-mem-scroll-thumb-active-a:#dbeafe;--ei-mem-scroll-thumb-active-b:#2563eb;--ei-mem-scroll-grip:#111827;--ei-mem-scroll-radius:4px;}
.ei-lobby-memory-scrollbar-theme-macclassic{--ei-mem-scroll-bg:#fff;--ei-mem-scroll-border:#111;--ei-mem-scroll-track-a:#fff;--ei-mem-scroll-track-b:#ddd;--ei-mem-scroll-button:#fff;--ei-mem-scroll-button-active:#d8d8d8;--ei-mem-scroll-text:#111;--ei-mem-scroll-thumb-a:#fff;--ei-mem-scroll-thumb-b:#cfcfcf;--ei-mem-scroll-thumb-active-a:#e5e5e5;--ei-mem-scroll-thumb-active-b:#999;--ei-mem-scroll-grip:#111;--ei-mem-scroll-radius:0;}
.ei-lobby-memory-scrollbar-theme-macos{--ei-mem-scroll-bg:rgba(255,255,255,.78);--ei-mem-scroll-border:#cbd5e1;--ei-mem-scroll-track-a:rgba(255,255,255,.45);--ei-mem-scroll-track-b:rgba(226,232,240,.65);--ei-mem-scroll-button:#f8fafc;--ei-mem-scroll-button-active:#e0f2fe;--ei-mem-scroll-text:#007aff;--ei-mem-scroll-thumb-a:#ffffff;--ei-mem-scroll-thumb-b:#007aff;--ei-mem-scroll-thumb-active-a:#bfdbfe;--ei-mem-scroll-thumb-active-b:#007aff;--ei-mem-scroll-grip:#0f172a;--ei-mem-scroll-radius:999px;}
.ei-lobby-memory-scrollbar-theme-terminal{--ei-mem-scroll-bg:#020805;--ei-mem-scroll-border:#39ff88;--ei-mem-scroll-track-a:#010402;--ei-mem-scroll-track-b:#06220f;--ei-mem-scroll-button:#020805;--ei-mem-scroll-button-active:#0b2d17;--ei-mem-scroll-text:#9dffb8;--ei-mem-scroll-thumb-a:#39ff88;--ei-mem-scroll-thumb-b:#0b2d17;--ei-mem-scroll-thumb-active-a:#c7ffd5;--ei-mem-scroll-thumb-active-b:#39ff88;--ei-mem-scroll-grip:#020805;--ei-mem-scroll-radius:0;--ei-mem-scroll-shadow:0 0 14px rgba(57,255,136,.35)!important;}
.ei-lobby-memory-scrollbar-theme-arcane{--ei-mem-scroll-bg:#21113b;--ei-mem-scroll-border:#a06cff;--ei-mem-scroll-track-a:#12071f;--ei-mem-scroll-track-b:#2d1550;--ei-mem-scroll-button:#21113b;--ei-mem-scroll-button-active:#3d2470;--ei-mem-scroll-text:#f2eaff;--ei-mem-scroll-thumb-a:#d6b0ff;--ei-mem-scroll-thumb-b:#6d43aa;--ei-mem-scroll-thumb-active-a:#ffffff;--ei-mem-scroll-thumb-active-b:#a06cff;--ei-mem-scroll-grip:#12071f;--ei-mem-scroll-radius:10px;}
.ei-lobby-memory-scrollbar-theme-steampunk{--ei-mem-scroll-bg:#3a2312;--ei-mem-scroll-border:#110904;--ei-mem-scroll-track-a:#6f451d;--ei-mem-scroll-track-b:#211308;--ei-mem-scroll-button:#4b2e13;--ei-mem-scroll-button-active:#6f451d;--ei-mem-scroll-text:#ffe4b0;--ei-mem-scroll-thumb-a:#c88a35;--ei-mem-scroll-thumb-b:#4b2e13;--ei-mem-scroll-thumb-active-a:#ffe4b0;--ei-mem-scroll-thumb-active-b:#c88a35;--ei-mem-scroll-grip:#211308;--ei-mem-scroll-radius:8px;}
.ei-lobby-memory-scrollbar-theme-kawaii{--ei-mem-scroll-bg:#fff2f8;--ei-mem-scroll-border:#ff9fc7;--ei-mem-scroll-track-a:#fff7fb;--ei-mem-scroll-track-b:#ffd6e8;--ei-mem-scroll-button:#ffe1ef;--ei-mem-scroll-button-active:#ffb8d7;--ei-mem-scroll-text:#7a5264;--ei-mem-scroll-thumb-a:#ffffff;--ei-mem-scroll-thumb-b:#ff8dbc;--ei-mem-scroll-thumb-active-a:#fff;--ei-mem-scroll-thumb-active-b:#ff5fa2;--ei-mem-scroll-grip:#7a5264;--ei-mem-scroll-radius:999px;}
.ei-lobby-memory-scrollbar-theme-ink{--ei-mem-scroll-bg:#ffffff;--ei-mem-scroll-border:#111;--ei-mem-scroll-track-a:#fff;--ei-mem-scroll-track-b:#ececec;--ei-mem-scroll-button:#fff;--ei-mem-scroll-button-active:#e5e5e5;--ei-mem-scroll-text:#111;--ei-mem-scroll-thumb-a:#ffffff;--ei-mem-scroll-thumb-b:#111;--ei-mem-scroll-thumb-active-a:#f2f2f2;--ei-mem-scroll-thumb-active-b:#333;--ei-mem-scroll-grip:#fff;--ei-mem-scroll-radius:2px;}
.ei-lobby-memory-scrollbar-theme-glass{--ei-mem-scroll-bg:rgba(255,255,255,.14);--ei-mem-scroll-border:#7bdcff;--ei-mem-scroll-track-a:rgba(255,255,255,.12);--ei-mem-scroll-track-b:rgba(123,220,255,.18);--ei-mem-scroll-button:rgba(255,255,255,.22);--ei-mem-scroll-button-active:rgba(123,220,255,.32);--ei-mem-scroll-text:#ecfbff;--ei-mem-scroll-thumb-a:rgba(255,255,255,.72);--ei-mem-scroll-thumb-b:#7bdcff;--ei-mem-scroll-thumb-active-a:#ffffff;--ei-mem-scroll-thumb-active-b:#9befff;--ei-mem-scroll-grip:#081524;--ei-mem-scroll-radius:999px;backdrop-filter:blur(12px)!important;}

/* v0.4.8: Memory Library floating down arrow control. */
.ei-lobby-memory-scroll-arrow{
  --ei-mem-arrow-bg:var(--ei-mem-scroll-thumb-b,#0e74b8);
  --ei-mem-arrow-bg-2:var(--ei-mem-scroll-thumb-active-b,#075985);
  --ei-mem-arrow-text:var(--ei-mem-scroll-text,#ffffff);
  --ei-mem-arrow-border:var(--ei-mem-scroll-border,rgba(255,255,255,.38));
  position:fixed!important;
  left:var(--ei-lobby-memory-arrow-left,50vw)!important;
  bottom:var(--ei-lobby-memory-arrow-bottom,22px)!important;
  width:72px!important;
  height:64px!important;
  transform:translateX(-50%)!important;
  z-index:1000000!important;
  display:grid!important;
  place-items:center!important;
  border:2px solid var(--ei-mem-arrow-border)!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,var(--ei-mem-arrow-bg),var(--ei-mem-arrow-bg-2))!important;
  color:var(--ei-mem-arrow-text)!important;
  -webkit-text-fill-color:var(--ei-mem-arrow-text)!important;
  box-shadow:0 16px 34px rgba(0,0,0,.34),inset 1px 1px 0 rgba(255,255,255,.45),inset -1px -1px 0 rgba(0,0,0,.32)!important;
  cursor:pointer!important;
  user-select:none!important;
  -webkit-user-select:none!important;
  pointer-events:auto!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  animation:ei-lobby-memory-arrow-bob 1.35s ease-in-out infinite!important;
}
.ei-lobby-memory-scroll-arrow span{font-size:34px!important;line-height:1!important;font-weight:900!important;filter:drop-shadow(0 2px 1px rgba(0,0,0,.24))!important;}
.ei-lobby-memory-scroll-arrow:hover{filter:brightness(1.08)!important;}
.ei-lobby-memory-scroll-arrow:active{transform:translateX(-50%) translateY(2px) scale(.98)!important;}
.ei-lobby-memory-scroll-arrow.is-disabled{opacity:.36!important;pointer-events:none!important;animation:none!important;}
.ei-lobby-memory-scroll-arrow.is-hidden{display:none!important;}
.ei-lobby-memory-scroll-arrow.is-up span{transform:translateY(-1px)!important;}
.ei-lobby-memory-scroll-arrow.is-at-bottom{opacity:.5!important;}
@keyframes ei-lobby-memory-arrow-bob{0%,100%{margin-bottom:0}50%{margin-bottom:7px}}
.ei-lobby-memory-scroll-arrow-theme-floating{--ei-mem-scroll-thumb-b:#0e74b8;--ei-mem-scroll-thumb-active-b:#075985;--ei-mem-scroll-text:#fff;--ei-mem-scroll-border:rgba(255,255,255,.34);}
.ei-lobby-memory-scroll-arrow-theme-glass{--ei-mem-scroll-thumb-b:rgba(14,116,184,.7);--ei-mem-scroll-thumb-active-b:rgba(2,132,199,.85);--ei-mem-scroll-text:#ecfbff;--ei-mem-scroll-border:#7bdcff;backdrop-filter:blur(14px)!important;}
.ei-lobby-memory-scroll-arrow-theme-pixel,.ei-lobby-memory-scroll-arrow-theme-windows95{--ei-mem-scroll-thumb-b:#a5a5a5;--ei-mem-scroll-thumb-active-b:#6aa6ff;--ei-mem-scroll-text:#111;--ei-mem-scroll-border:#111;border-radius:0!important;box-shadow:inset 2px 2px 0 #fff,inset -2px -2px 0 #111,0 10px 24px rgba(0,0,0,.35)!important;}
.ei-lobby-memory-scroll-arrow-theme-windows{--ei-mem-scroll-thumb-b:#94a3b8;--ei-mem-scroll-thumb-active-b:#2563eb;--ei-mem-scroll-text:#111827;--ei-mem-scroll-border:#6b7280;border-radius:8px!important;}
.ei-lobby-memory-scroll-arrow-theme-macos{--ei-mem-scroll-thumb-b:#007aff;--ei-mem-scroll-thumb-active-b:#007aff;--ei-mem-scroll-text:#fff;--ei-mem-scroll-border:rgba(255,255,255,.55);}
.ei-lobby-memory-scroll-arrow-theme-minimal{--ei-mem-scroll-thumb-b:#cbd5e1;--ei-mem-scroll-thumb-active-b:#94a3b8;--ei-mem-scroll-text:#0f172a;--ei-mem-scroll-border:#d1d5db;}
.ei-lobby-memory-scroll-arrow-theme-cyberpunk{--ei-mem-scroll-thumb-b:#ff2bd6;--ei-mem-scroll-thumb-active-b:#00e5ff;--ei-mem-scroll-text:#faff00;--ei-mem-scroll-border:#00e5ff;border-radius:0!important;box-shadow:0 0 0 1px rgba(255,0,255,.55),0 0 26px rgba(0,229,255,.55),0 16px 34px rgba(0,0,0,.34)!important;}
.ei-lobby-memory-scroll-arrow-theme-terminal{--ei-mem-scroll-thumb-b:#0b2d17;--ei-mem-scroll-thumb-active-b:#39ff88;--ei-mem-scroll-text:#9dffb8;--ei-mem-scroll-border:#39ff88;border-radius:0!important;box-shadow:0 0 18px rgba(57,255,136,.45),0 16px 34px rgba(0,0,0,.34)!important;}
.ei-lobby-memory-scroll-arrow-theme-arcane{--ei-mem-scroll-thumb-b:#6d43aa;--ei-mem-scroll-thumb-active-b:#a06cff;--ei-mem-scroll-text:#f2eaff;--ei-mem-scroll-border:#a06cff;}
.ei-lobby-memory-scroll-arrow-theme-steampunk{--ei-mem-scroll-thumb-b:#4b2e13;--ei-mem-scroll-thumb-active-b:#c88a35;--ei-mem-scroll-text:#ffe4b0;--ei-mem-scroll-border:#110904;}
.ei-lobby-memory-scroll-arrow-theme-chinese{--ei-mem-scroll-thumb-b:#9c2323;--ei-mem-scroll-thumb-active-b:#d6aa55;--ei-mem-scroll-text:#f8e7c4;--ei-mem-scroll-border:#170404;border-radius:0!important;}
.ei-lobby-memory-scroll-arrow-theme-japanese{--ei-mem-scroll-thumb-b:#b84b3a;--ei-mem-scroll-thumb-active-b:#b84b3a;--ei-mem-scroll-text:#f3eee2;--ei-mem-scroll-border:#171512;}
.ei-lobby-memory-scroll-arrow-theme-wabi{--ei-mem-scroll-thumb-b:#9b8e77;--ei-mem-scroll-thumb-active-b:#8b806b;--ei-mem-scroll-text:#fff8ec;--ei-mem-scroll-border:#5a5144;}
.ei-lobby-memory-scroll-arrow-theme-ink{--ei-mem-scroll-thumb-b:#111;--ei-mem-scroll-thumb-active-b:#333;--ei-mem-scroll-text:#fff;--ei-mem-scroll-border:#111;border-radius:2px!important;}
@media(max-width:760px){.ei-lobby-memory-scroll-arrow{width:60px!important;height:54px!important}.ei-lobby-memory-scroll-arrow span{font-size:30px!important}.ei-lobby-module-layer.is-type-memory_library.is-memory-control-scrollbar .ei-lobby-module-body,.ei-lobby-module-layer.is-type-memory_library.is-memory-control-both .ei-lobby-module-body{padding-right:42px!important;}}

@media(max-width:760px){
  .ei-lobby-module-layer.is-type-memory_library.is-memory-control-scrollbar .ei-lobby-module-body,.ei-lobby-module-layer.is-type-memory_library.is-memory-control-both .ei-lobby-module-body{padding-right:42px!important;}
  .ei-lobby-memory-scrollbar{width:22px!important;grid-template-rows:22px minmax(34px,1fr) 22px!important;}
  .ei-lobby-memory-scrollbar-button{height:22px!important;min-height:22px!important;font-size:11px!important;}
  .ei-lobby-memory-scrollbar-thumb{min-height:30px!important;}
}


/* v0.4.11: EI Academy bridge uses the same module-layer popup system as Dialogue / Battle / Shop. */
.ei-lobby-module-layer.is-type-academy .ei-lobby-module-bar,
.ei-lobby-module-layer.is-type-academy .ei-lobby-module-body{
  width:min(96vw,1180px)!important;
}
.ei-lobby-module-layer.is-type-academy .ei-lobby-module-body{
  height:min(82vh,760px)!important;
  overflow:auto!important;
  align-items:flex-start!important;
  justify-content:center!important;
}
.ei-lobby-module-layer.is-type-academy .ei-lobby-module-frame-academy{
  width:100%!important;
  max-width:100%!important;
  max-height:none!important;
  overflow:visible!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.ei-lobby-module-layer.is-type-academy .ei-academy{
  width:100%!important;
  max-width:100%!important;
  margin:0 auto!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-layer.is-type-academy .ei-academy *{
  box-sizing:border-box!important;
}
@media(max-width:760px){
  .ei-lobby-module-layer.is-type-academy .ei-lobby-module-bar,
  .ei-lobby-module-layer.is-type-academy .ei-lobby-module-body{
    width:calc(100vw - 16px)!important;
    max-width:calc(100vw - 16px)!important;
  }
  .ei-lobby-module-layer.is-type-academy .ei-lobby-module-body{
    height:calc(100dvh - 64px)!important;
    max-height:calc(100dvh - 64px)!important;
    padding:8px!important;
  }
}

/* v0.4.18: transparent PNG scenes and slow floating background layer */
.ei-lobby-bg-transparent.ei-lobby-grid-subtle .ei-lobby-grid-mask,
.ei-lobby-bg-transparent.ei-lobby-grid-visible .ei-lobby-grid-mask,
.ei-lobby-bg-transparent .ei-lobby-grid-mask{background:none!important;}
.ei-lobby-bg-layer{border-radius:inherit;}


/* v0.4.19: clean transparent PNG scenes without frame clipping */
.ei-lobby-stage.ei-lobby-bg-transparent{
  overflow:visible!important;
  border:0!important;
  box-shadow:none!important;
  outline:0!important;
  background:transparent!important;
  border-radius:0!important;
}
.ei-lobby-stage.ei-lobby-bg-transparent .ei-lobby-bg-layer{
  overflow:visible!important;
  border-radius:0!important;
}
.ei-lobby-stage.ei-lobby-bg-transparent .ei-lobby-bg-layer img{
  border:0!important;
  box-shadow:none!important;
  outline:0!important;
}
.ei-lobby-stage.ei-lobby-bg-transparent.ei-lobby-bg-float-on{
  margin-top:var(--ei-lobby-bg-float-amp,6px)!important;
  margin-bottom:var(--ei-lobby-bg-float-amp,6px)!important;
}
.ei-lobby-stage-wrap:has(.ei-lobby-stage.ei-lobby-bg-transparent){
  overflow:visible!important;
}

.ei-lobby-stage-wrap.is-transparent-scene{overflow:visible!important;}


/* v0.4.20: object hover comic bubbles. Appended to the stage, not the object, so it avoids hotspot clipping. */
.ei-lobby-stage .ei-lobby-object-hover-bubble{position:absolute!important;z-index:72!important;max-width:min(320px,72vw)!important;min-width:96px!important;pointer-events:none!important;opacity:0!important;transform:translateY(4px) scale(.94)!important;transform-origin:50% 100%!important;transition:opacity 160ms ease-out, transform 160ms ease-out!important;line-height:1.25!important;white-space:normal!important;overflow:visible!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-visible{opacity:1!important;transform:translateY(0) scale(1)!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble-inner{position:relative!important;display:block!important;box-sizing:border-box!important;padding:9px 13px!important;border-radius:16px!important;font:800 13px/1.28 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;letter-spacing:.01em!important;white-space:pre-wrap!important;word-break:break-word!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble::before,.ei-lobby-stage .ei-lobby-object-hover-bubble::after{content:""!important;position:absolute!important;width:0!important;height:0!important;pointer-events:none!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="top"]::before{left:50%!important;bottom:-15px!important;transform:translateX(-50%)!important;border-width:15px 11px 0 11px!important;border-style:solid!important;}.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="top"]::after{left:50%!important;bottom:-10px!important;transform:translateX(-50%)!important;border-width:11px 8px 0 8px!important;border-style:solid!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="bottom"]::before{left:50%!important;top:-15px!important;transform:translateX(-50%)!important;border-width:0 11px 15px 11px!important;border-style:solid!important;}.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="bottom"]::after{left:50%!important;top:-10px!important;transform:translateX(-50%)!important;border-width:0 8px 11px 8px!important;border-style:solid!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="left"]::before{right:-15px!important;top:50%!important;transform:translateY(-50%)!important;border-width:11px 0 11px 15px!important;border-style:solid!important;}.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="left"]::after{right:-10px!important;top:50%!important;transform:translateY(-50%)!important;border-width:8px 0 8px 11px!important;border-style:solid!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="right"]::before{left:-15px!important;top:50%!important;transform:translateY(-50%)!important;border-width:11px 15px 11px 0!important;border-style:solid!important;}.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="right"]::after{left:-10px!important;top:50%!important;transform:translateY(-50%)!important;border-width:8px 11px 8px 0!important;border-style:solid!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-original .ei-lobby-object-hover-bubble-inner,.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-classic .ei-lobby-object-hover-bubble-inner{background:#fffef7!important;color:#111827!important;border:3px solid #111827!important;box-shadow:4px 4px 0 #111827!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-manga_black .ei-lobby-object-hover-bubble-inner{background:#fff!important;color:#050505!important;border:4px solid #050505!important;border-radius:8px!important;box-shadow:6px 6px 0 rgba(0,0,0,.95)!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-rpg_gold .ei-lobby-object-hover-bubble-inner{background:linear-gradient(180deg,#fff7c2,#d9992c)!important;color:#4a2603!important;border:2px solid #7c3f00!important;border-radius:12px!important;box-shadow:0 8px 18px rgba(84,44,0,.32), inset 0 1px 0 rgba(255,255,255,.6)!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-parchment .ei-lobby-object-hover-bubble-inner{background:#f5e1b4!important;color:#4a2a0b!important;border:2px solid #8a5a20!important;border-radius:10px!important;box-shadow:0 5px 0 rgba(74,42,11,.22)!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-glass_blue .ei-lobby-object-hover-bubble-inner{background:rgba(219,242,255,.82)!important;color:#082f49!important;border:1px solid rgba(14,116,144,.48)!important;border-radius:18px!important;box-shadow:0 12px 30px rgba(8,47,73,.18), inset 0 1px 0 rgba(255,255,255,.72)!important;backdrop-filter:blur(8px)!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-neon_dark .ei-lobby-object-hover-bubble-inner{background:#0b1020!important;color:#e0f2fe!important;border:1px solid #22d3ee!important;border-radius:14px!important;box-shadow:0 0 0 1px rgba(34,211,238,.25),0 0 18px rgba(34,211,238,.42)!important;text-shadow:0 0 6px rgba(34,211,238,.55)!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-cute_pink .ei-lobby-object-hover-bubble-inner{background:#fff1f7!important;color:#7a123b!important;border:3px solid #fb7185!important;border-radius:22px!important;box-shadow:4px 5px 0 #fda4af!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-pixel .ei-lobby-object-hover-bubble-inner{background:#f8fafc!important;color:#111827!important;border:4px solid #111827!important;border-radius:0!important;box-shadow:4px 4px 0 #64748b!important;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace!important;font-weight:900!important;image-rendering:pixelated!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-minimal .ei-lobby-object-hover-bubble-inner{background:rgba(255,255,255,.94)!important;color:#0f172a!important;border:1px solid rgba(15,23,42,.12)!important;border-radius:999px!important;box-shadow:0 10px 24px rgba(15,23,42,.14)!important;font-weight:700!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-original,.is-style-classic)::before{border-color:#111827 transparent transparent transparent!important;}.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-original,.is-style-classic)::after{border-color:#fffef7 transparent transparent transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-manga_black)::before{border-color:#050505 transparent transparent transparent!important;}.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-manga_black)::after{border-color:#fff transparent transparent transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-rpg_gold)::before{border-color:#7c3f00 transparent transparent transparent!important;}.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-rpg_gold)::after{border-color:#d9992c transparent transparent transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-parchment)::before{border-color:#8a5a20 transparent transparent transparent!important;}.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-parchment)::after{border-color:#f5e1b4 transparent transparent transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-glass_blue)::before{border-color:rgba(14,116,144,.48) transparent transparent transparent!important;}.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-glass_blue)::after{border-color:rgba(219,242,255,.82) transparent transparent transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-neon_dark)::before{border-color:#22d3ee transparent transparent transparent!important;}.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-neon_dark)::after{border-color:#0b1020 transparent transparent transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-cute_pink)::before{border-color:#fb7185 transparent transparent transparent!important;}.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-cute_pink)::after{border-color:#fff1f7 transparent transparent transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-pixel)::before{border-color:#111827 transparent transparent transparent!important;}.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-pixel)::after{border-color:#f8fafc transparent transparent transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-minimal)::before{border-color:rgba(15,23,42,.12) transparent transparent transparent!important;}.ei-lobby-stage .ei-lobby-object-hover-bubble:is(.is-style-minimal)::after{border-color:rgba(255,255,255,.94) transparent transparent transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="bottom"]::before{border-color:transparent transparent currentColor transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="bottom"]::after{border-color:transparent transparent #fffef7 transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="left"]::before{border-color:transparent transparent transparent currentColor!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="left"]::after{border-color:transparent transparent transparent #fffef7!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="right"]::before{border-color:transparent currentColor transparent transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="right"]::after{border-color:transparent #fffef7 transparent transparent!important;}
@media (max-width:640px){.ei-lobby-stage .ei-lobby-object-hover-bubble{max-width:min(280px,82vw)!important}.ei-lobby-stage .ei-lobby-object-hover-bubble-inner{font-size:12px!important;padding:8px 11px!important;}}

/* v0.4.20 final arrow normalization: keep arrow colors synced with each bubble skin. */
.ei-lobby-stage .ei-lobby-object-hover-bubble{--ei-hover-bubble-bg:#fffef7;--ei-hover-bubble-border:#111827;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-original,.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-classic{--ei-hover-bubble-bg:#fffef7;--ei-hover-bubble-border:#111827;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-manga_black{--ei-hover-bubble-bg:#fff;--ei-hover-bubble-border:#050505;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-rpg_gold{--ei-hover-bubble-bg:#d9992c;--ei-hover-bubble-border:#7c3f00;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-parchment{--ei-hover-bubble-bg:#f5e1b4;--ei-hover-bubble-border:#8a5a20;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-glass_blue{--ei-hover-bubble-bg:rgba(219,242,255,.92);--ei-hover-bubble-border:rgba(14,116,144,.56);}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-neon_dark{--ei-hover-bubble-bg:#0b1020;--ei-hover-bubble-border:#22d3ee;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-cute_pink{--ei-hover-bubble-bg:#fff1f7;--ei-hover-bubble-border:#fb7185;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-pixel{--ei-hover-bubble-bg:#f8fafc;--ei-hover-bubble-border:#111827;}
.ei-lobby-stage .ei-lobby-object-hover-bubble.is-style-minimal{--ei-hover-bubble-bg:rgba(255,255,255,.96);--ei-hover-bubble-border:rgba(15,23,42,.16);}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="top"]::before{border-color:var(--ei-hover-bubble-border) transparent transparent transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="top"]::after{border-color:var(--ei-hover-bubble-bg) transparent transparent transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="bottom"]::before{border-color:transparent transparent var(--ei-hover-bubble-border) transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="bottom"]::after{border-color:transparent transparent var(--ei-hover-bubble-bg) transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="left"]::before{border-color:transparent transparent transparent var(--ei-hover-bubble-border)!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="left"]::after{border-color:transparent transparent transparent var(--ei-hover-bubble-bg)!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="right"]::before{border-color:transparent var(--ei-hover-bubble-border) transparent transparent!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="right"]::after{border-color:transparent var(--ei-hover-bubble-bg) transparent transparent!important;}

/* v0.4.21: independent interaction hotspot visual combinations. */
.ei-lobby-object{
  --ei-object-fill-bg:rgba(250,204,21,.14);
  --ei-object-fill-blur:none;
  --ei-object-border-width:1px;
  --ei-object-border-color:rgba(255,255,255,.62);
  --ei-object-inset-shadow:inset 0 0 0 1px rgba(15,23,42,.12);
  --ei-object-glow-shadow:0 0 0 0 rgba(250,204,21,0);
  background:var(--ei-object-fill-bg)!important;
  border:var(--ei-object-border-width) solid var(--ei-object-border-color)!important;
  box-shadow:var(--ei-object-inset-shadow),var(--ei-object-glow-shadow)!important;
  backdrop-filter:var(--ei-object-fill-blur)!important;
  -webkit-backdrop-filter:var(--ei-object-fill-blur)!important;
  filter:none!important;
}
.ei-lobby-object:hover,.ei-lobby-object:focus{
  background:var(--ei-object-fill-bg)!important;
  border:var(--ei-object-border-width) solid var(--ei-object-border-color)!important;
  box-shadow:var(--ei-object-inset-shadow),var(--ei-object-glow-shadow)!important;
  transform:none!important;
}
.ei-lobby-object.is-fill-none{--ei-object-fill-bg:transparent;--ei-object-fill-blur:none;--ei-object-inset-shadow:inset 0 0 0 0 rgba(0,0,0,0);}
.ei-lobby-object.is-fill-soft{--ei-object-fill-bg:rgba(250,204,21,.13);--ei-object-fill-blur:none;--ei-object-inset-shadow:inset 0 0 0 1px rgba(255,255,255,.10);}
.ei-lobby-object.is-fill-blur{--ei-object-fill-bg:rgba(15,23,42,.14);--ei-object-fill-blur:blur(5px);--ei-object-inset-shadow:inset 0 0 0 1px rgba(255,255,255,.10);}
.ei-lobby-object.is-border-strong{--ei-object-border-width:2px;--ei-object-border-color:rgba(255,255,255,.76);}
.ei-lobby-object.is-border-subtle{--ei-object-border-width:1px;--ei-object-border-color:rgba(255,255,255,.24);}
.ei-lobby-object.is-border-none{--ei-object-border-width:0px;--ei-object-border-color:transparent;outline:0!important;}
.ei-lobby-object.is-glow-on,.ei-lobby-object.is-glowing{--ei-object-glow-shadow:0 0 18px rgba(250,204,21,.46);animation:eiLobbyObjectGlow 1.35s ease-in-out infinite!important;}
.ei-lobby-object.is-glow-off,.ei-lobby-object.is-quiet{--ei-object-glow-shadow:0 0 0 0 rgba(250,204,21,0);animation:none!important;opacity:1!important;}
.ei-lobby-object.is-fill-none.is-border-none.is-glow-off,.ei-lobby-object.is-fill-none.is-border-none.is-glow-off:hover,.ei-lobby-object.is-fill-none.is-border-none.is-glow-off:focus{
  background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important;outline:0!important;animation:none!important;
}
.ei-lobby-object.is-visual-hidden,.ei-lobby-object.is-visual-hidden:hover,.ei-lobby-object.is-visual-hidden:focus{
  opacity:0!important;background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important;outline:0!important;animation:none!important;transform:none!important;
}
.ei-lobby-object.is-visual-hidden > *{opacity:0!important;}


/* v0.4.25: avatar name labels must stay readable regardless of the selected overall frame/message style.
   Frame skins can recolor panels and messages, but player name tags are map labels and need a fixed high-contrast treatment. */
.ei-lobby .ei-lobby-stage .ei-lobby-avatar > span,
.ei-lobby.ei-lobby .ei-lobby-stage .ei-lobby-avatar.has-pixel-character > span,
.ei-lobby.ei-lobby .ei-lobby-stage .ei-lobby-avatar.has-custom-avatar > span,
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-stage .ei-lobby-avatar > span{
  color:#111827!important;
  -webkit-text-fill-color:#111827!important;
  background:rgba(255,255,255,.94)!important;
  border:1px solid rgba(15,23,42,.12)!important;
  box-shadow:0 4px 12px rgba(15,23,42,.16)!important;
  text-shadow:none!important;
  mix-blend-mode:normal!important;
  font-weight:700!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-stage .ei-lobby-avatar > span *,
.ei-lobby .ei-lobby-stage .ei-lobby-avatar > span *{
  color:#111827!important;
  -webkit-text-fill-color:#111827!important;
  text-shadow:none!important;
}

/* v0.4.26: global confirm/cancel button order. */
.ei-lobby.ei-lobby-confirm-order-cancel_confirm .ei-lobby-interaction-cancel,
.ei-lobby.ei-lobby-confirm-order-cancel_confirm .ei-lobby-announcement-cancel,
.ei-lobby.ei-lobby-confirm-order-cancel_confirm .ei-lobby-gm-offer-cancel,
.ei-lobby.ei-lobby-confirm-order-cancel_confirm .ei-lobby-gm-offer-reject,
.ei-lobby.ei-lobby-confirm-order-cancel_confirm .ei-lobby-object-contract-cancel,
.ei-lobby.ei-lobby-confirm-order-cancel_confirm .ei-lobby-entry-dialogue-replay{order:1!important;}
.ei-lobby.ei-lobby-confirm-order-cancel_confirm .ei-lobby-interaction-confirm,
.ei-lobby.ei-lobby-confirm-order-cancel_confirm .ei-lobby-announcement-confirm,
.ei-lobby.ei-lobby-confirm-order-cancel_confirm .ei-lobby-gm-offer-create,
.ei-lobby.ei-lobby-confirm-order-cancel_confirm .ei-lobby-gm-offer-accept,
.ei-lobby.ei-lobby-confirm-order-cancel_confirm .ei-lobby-object-contract-accept,
.ei-lobby.ei-lobby-confirm-order-cancel_confirm .ei-lobby-entry-dialogue-never{order:2!important;}
.ei-lobby.ei-lobby-confirm-order-confirm_cancel .ei-lobby-interaction-confirm,
.ei-lobby.ei-lobby-confirm-order-confirm_cancel .ei-lobby-announcement-confirm,
.ei-lobby.ei-lobby-confirm-order-confirm_cancel .ei-lobby-gm-offer-create,
.ei-lobby.ei-lobby-confirm-order-confirm_cancel .ei-lobby-gm-offer-accept,
.ei-lobby.ei-lobby-confirm-order-confirm_cancel .ei-lobby-object-contract-accept,
.ei-lobby.ei-lobby-confirm-order-confirm_cancel .ei-lobby-entry-dialogue-never{order:1!important;}
.ei-lobby.ei-lobby-confirm-order-confirm_cancel .ei-lobby-interaction-cancel,
.ei-lobby.ei-lobby-confirm-order-confirm_cancel .ei-lobby-announcement-cancel,
.ei-lobby.ei-lobby-confirm-order-confirm_cancel .ei-lobby-gm-offer-cancel,
.ei-lobby.ei-lobby-confirm-order-confirm_cancel .ei-lobby-gm-offer-reject,
.ei-lobby.ei-lobby-confirm-order-confirm_cancel .ei-lobby-object-contract-cancel,
.ei-lobby.ei-lobby-confirm-order-confirm_cancel .ei-lobby-entry-dialogue-replay{order:2!important;}
@media(max-width:640px){
  .ei-lobby.ei-lobby-confirm-order-cancel_confirm .ei-lobby-interaction-actions,
  .ei-lobby.ei-lobby-confirm-order-confirm_cancel .ei-lobby-interaction-actions{flex-direction:column!important;}
}

/* v0.4.28: per-object hover bubble arrow position and mobile CTA. */
.ei-lobby-stage .ei-lobby-object-hover-bubble.has-action{pointer-events:auto!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble-text{display:block!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble-action{display:inline-flex!important;align-items:center!important;justify-content:center!important;margin-top:8px!important;min-height:30px!important;padding:6px 12px!important;border-radius:999px!important;border:2px solid rgba(17,24,39,.88)!important;background:#fff!important;color:#111827!important;font:800 12px/1.1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;box-shadow:2px 2px 0 rgba(17,24,39,.85)!important;cursor:pointer!important;pointer-events:auto!important;touch-action:manipulation!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble-action:hover,.ei-lobby-stage .ei-lobby-object-hover-bubble-action:focus{filter:brightness(.96)!important;transform:translateY(1px)!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble-hint{margin-top:7px!important;font:700 11px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;opacity:.72!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="top"][data-arrow="left"]::before,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="top"][data-arrow="left"]::after,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="bottom"][data-arrow="left"]::before,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="bottom"][data-arrow="left"]::after{left:26px!important;transform:translateX(-50%)!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="top"][data-arrow="center"]::before,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="top"][data-arrow="center"]::after,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="bottom"][data-arrow="center"]::before,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="bottom"][data-arrow="center"]::after{left:50%!important;transform:translateX(-50%)!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="top"][data-arrow="right"]::before,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="top"][data-arrow="right"]::after,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="bottom"][data-arrow="right"]::before,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="bottom"][data-arrow="right"]::after{left:calc(100% - 26px)!important;transform:translateX(-50%)!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="left"][data-arrow="left"]::before,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="left"][data-arrow="left"]::after,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="right"][data-arrow="left"]::before,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="right"][data-arrow="left"]::after{top:24px!important;transform:translateY(-50%)!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="left"][data-arrow="center"]::before,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="left"][data-arrow="center"]::after,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="right"][data-arrow="center"]::before,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="right"][data-arrow="center"]::after{top:50%!important;transform:translateY(-50%)!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="left"][data-arrow="right"]::before,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="left"][data-arrow="right"]::after,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="right"][data-arrow="right"]::before,.ei-lobby-stage .ei-lobby-object-hover-bubble[data-position="right"][data-arrow="right"]::after{top:calc(100% - 24px)!important;transform:translateY(-50%)!important;}


/* v0.4.78: compact single OSE object pop-up inside Lobby interactive objects */
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-bar,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-body{
  width:min(calc(var(--ei-lobby-ose-popup-width,240px) + 24px), calc(100vw - 24px))!important;
  max-width:calc(100vw - 24px)!important;
}
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-body{
  height:auto!important;
  min-height:0!important;
  max-height:calc(100dvh - 110px)!important;
  padding:12px!important;
  overflow:auto!important;
  align-items:center!important;
  justify-content:center!important;
}
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-frame-object_state_engine{
  width:min(var(--ei-lobby-ose-popup-width,240px), calc(100vw - 48px))!important;
  max-width:100%!important;
  max-height:none!important;
  overflow:visible!important;
  border:0!important;
  border-radius:18px!important;
  background:transparent!important;
  box-shadow:none!important;
}
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-frame-object_state_engine .ei-ose-object{
  width:100%!important;
  max-width:100%!important;
  margin:0 auto!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-frame-object_state_engine .ei-ose-grid{
  display:block!important;
  margin:0!important;
}
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-title{
  font-size:13px!important;
}
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-back{
  padding:7px 10px!important;
  font-size:13px!important;
  white-space:nowrap!important;
}
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-close{
  width:34px!important;
  height:34px!important;
  font-size:22px!important;
  flex:0 0 auto!important;
}
@media(max-width:760px){
  .ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-bar,
  .ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-body{
    width:min(calc(var(--ei-lobby-ose-popup-width,240px) + 20px), calc(100vw - 16px))!important;
    max-width:calc(100vw - 16px)!important;
  }
  .ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-frame-object_state_engine{
    width:min(var(--ei-lobby-ose-popup-width,240px), calc(100vw - 36px))!important;
  }
}

/* v0.4.79: stronger single OSE object compact popup rules */
.ei-lobby-module-layer.is-ose-single .ei-lobby-module-bar,
.ei-lobby-module-layer.is-ose-single .ei-lobby-module-body,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-bar,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-body{
  width:min(calc(var(--ei-lobby-ose-popup-width,240px) + 24px), calc(100vw - 24px))!important;
  max-width:calc(100vw - 24px)!important;
  box-sizing:border-box!important;
}
.ei-lobby-module-layer.is-ose-single .ei-lobby-module-body,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-body{
  height:auto!important;
  min-height:0!important;
  max-height:calc(100dvh - 110px)!important;
  padding:12px!important;
  overflow:auto!important;
}
.ei-lobby-module-layer.is-ose-single .ei-lobby-module-frame,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-frame-object_state_engine{
  width:min(var(--ei-lobby-ose-popup-width,240px), calc(100vw - 48px))!important;
  max-width:100%!important;
  overflow:visible!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.ei-lobby-module-layer.is-ose-single .ei-ose-object,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-ose-object{
  width:100%!important;
  max-width:100%!important;
  margin:0 auto!important;
  box-sizing:border-box!important;
}


/* v0.4.80: actual compact shell for single OSE object popup
   Previous versions only resized the inner body/frame. The module layer itself remained full-screen, so the user still saw a huge empty window. */
.ei-lobby-module-layer.is-ose-single,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single{
  inset:auto!important;
  left:50%!important;
  top:50%!important;
  right:auto!important;
  bottom:auto!important;
  width:min(calc(var(--ei-lobby-ose-popup-width,240px) + 24px), calc(100vw - 24px))!important;
  height:auto!important;
  min-height:0!important;
  max-width:calc(100vw - 24px)!important;
  max-height:calc(100dvh - 24px)!important;
  transform:translate(-50%,-50%)!important;
  border-radius:20px!important;
  overflow:hidden!important;
  background:rgba(5,10,20,.96)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:0 26px 80px rgba(0,0,0,.48)!important;
}
.ei-lobby-module-layer.is-ose-single .ei-lobby-module-bar,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-bar{
  width:100%!important;
  max-width:100%!important;
  min-height:46px!important;
  padding:7px 10px!important;
  flex:0 0 auto!important;
}
.ei-lobby-module-layer.is-ose-single .ei-lobby-module-body,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-body{
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:calc(100dvh - 86px)!important;
  flex:0 1 auto!important;
  padding:12px!important;
  overflow:auto!important;
  background:rgba(8,15,32,.96)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.ei-lobby-module-layer.is-ose-single .ei-lobby-module-frame,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-frame-object_state_engine{
  width:min(var(--ei-lobby-ose-popup-width,240px), calc(100vw - 48px))!important;
  max-width:100%!important;
  max-height:none!important;
  flex:0 0 auto!important;
  overflow:visible!important;
  border:0!important;
  border-radius:18px!important;
  background:transparent!important;
  box-shadow:none!important;
}
.ei-lobby-module-layer.is-ose-single .ei-ose-object,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-ose-object{
  width:100%!important;
  max-width:100%!important;
  margin:0 auto!important;
  box-sizing:border-box!important;
}

/* v0.4.82: OSE single popup uses auto-height shell without clipping or side drift. */
.ei-lobby-module-layer.is-ose-single,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single{
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  align-items:center!important;
  height:auto!important;
  min-height:0!important;
  background:rgba(5,10,20,.96)!important;
}
.ei-lobby-module-layer.is-ose-single .ei-lobby-module-body,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-body{
  flex:0 1 auto!important;
  padding:12px!important;
  margin:0!important;
  min-height:0!important;
  height:auto!important;
  background:rgba(8,15,32,.96)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:auto!important;
}
.ei-lobby-module-layer.is-ose-single .ei-lobby-module-frame,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-frame-object_state_engine{
  margin:0 auto!important;
  padding:0!important;
  display:block!important;
  align-self:center!important;
  line-height:normal!important;
}
.ei-lobby-module-layer.is-ose-single .ei-ose-object,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-ose-object{
  margin:0 auto!important;
}


/* v0.4.83: single OSE compact popup removes global module padding and trims vertical dark gaps. */
.ei-lobby-module-layer.is-ose-single,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single{
  padding:0!important;
  width:min(calc(var(--ei-lobby-ose-popup-width,240px) + 16px), calc(100vw - 24px))!important;
}
.ei-lobby-module-layer.is-ose-single .ei-lobby-module-body,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-body{
  padding:8px!important;
  min-height:0!important;
}
.ei-lobby-module-layer.is-ose-single .ei-lobby-module-frame,
.ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-frame-object_state_engine{
  width:min(var(--ei-lobby-ose-popup-width,240px), calc(100vw - 32px))!important;
}
@media(max-width:760px){
  .ei-lobby-module-layer.is-ose-single,
  .ei-lobby-module-layer.is-type-object_state_engine.is-ose-single{
    width:min(calc(var(--ei-lobby-ose-popup-width,240px) + 12px), calc(100vw - 16px))!important;
  }
  .ei-lobby-module-layer.is-ose-single .ei-lobby-module-body,
  .ei-lobby-module-layer.is-type-object_state_engine.is-ose-single .ei-lobby-module-body{
    padding:6px!important;
  }
}


/* v0.4.85: click-to-move plus subtle diagonal direction marks for virtual D-pad. */
.ei-lobby .ei-lobby-stage{cursor:pointer;}
.ei-lobby .ei-lobby-stage.is-click-moving{cursor:progress;}
.ei-lobby .ei-lobby-dpad-diagonal{opacity:.54!important;background:transparent!important;box-shadow:none!important;border:0!important;color:var(--pad-arrow,#64748b)!important;font-size:0!important;}
.ei-lobby .ei-lobby-dpad-up-left{grid-column:1!important;grid-row:1!important;}
.ei-lobby .ei-lobby-dpad-up-right{grid-column:3!important;grid-row:1!important;}
.ei-lobby .ei-lobby-dpad-down-left{grid-column:1!important;grid-row:3!important;}
.ei-lobby .ei-lobby-dpad-down-right{grid-column:3!important;grid-row:3!important;}
.ei-lobby .ei-lobby-dpad-diagonal:after{content:none!important;display:none!important;}
.ei-lobby .ei-lobby-dpad-diagonal:before{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;background:transparent!important;border:0!important;filter:none!important;opacity:.72!important;font-size:15px!important;line-height:1!important;font-weight:700!important;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;text-shadow:0 1px 0 rgba(255,255,255,.45)!important;}
.ei-lobby .ei-lobby-dpad-up-left:before{content:"↖"!important;}
.ei-lobby .ei-lobby-dpad-up-right:before{content:"↗"!important;}
.ei-lobby .ei-lobby-dpad-down-left:before{content:"↙"!important;}
.ei-lobby .ei-lobby-dpad-down-right:before{content:"↘"!important;}
.ei-lobby .ei-lobby-dpad-diagonal:hover{opacity:.82!important;background:rgba(148,163,184,.10)!important;}
.ei-lobby .ei-lobby-dpad-diagonal:active{opacity:1!important;}
.ei-lobby-pixel-person.is-dir-down-left .ei-lobby-pixel-sprite,
.ei-lobby-pixel-person.is-dir-up-left .ei-lobby-pixel-sprite{transform:scaleX(-1)}
.ei-lobby-pixel-person.is-dir-down-right .ei-lobby-pixel-sprite,
.ei-lobby-pixel-person.is-dir-up-right .ei-lobby-pixel-sprite{transform:scaleX(1)}
.ei-lobby-pixel-person.is-dir-up-left .ei-lobby-pixel-sprite,
.ei-lobby-pixel-person.is-dir-up-right .ei-lobby-pixel-sprite{filter:brightness(.88) saturate(.92)}
.ei-paperdoll.is-dir-down-left{transform:translate(-50%,-50%) scaleX(-1);}
.ei-paperdoll.is-dir-down-right{transform:translate(-50%,-50%) scaleX(1);}
.ei-paperdoll.is-dir-up-left,.ei-paperdoll.is-dir-up-right{transform:translate(-50%,-50%);}
.ei-paperdoll.is-dir-up-left .ei-pd-eye,.ei-paperdoll.is-dir-up-left .ei-pd-mouth,.ei-paperdoll.is-dir-up-left .ei-pd-glasses,
.ei-paperdoll.is-dir-up-right .ei-pd-eye,.ei-paperdoll.is-dir-up-right .ei-pd-mouth,.ei-paperdoll.is-dir-up-right .ei-pd-glasses{display:none;}
.ei-paperdoll.is-dir-up-left .ei-pd-hair,.ei-paperdoll.is-dir-up-right .ei-pd-hair{top:7px;height:22px;}
.ei-lobby-avatar.has-custom-avatar .ei-paperdoll.is-dir-down-left{transform:translate(-50%,-50%) scale(calc(var(--ei-lobby-character-size,84px) / 78)) scaleX(-1)!important;}
.ei-lobby-avatar.has-custom-avatar .ei-paperdoll.is-dir-down-right{transform:translate(-50%,-50%) scale(calc(var(--ei-lobby-character-size,84px) / 78))!important;}
.ei-lobby-avatar.has-custom-avatar .ei-paperdoll.is-dir-up-left,
.ei-lobby-avatar.has-custom-avatar .ei-paperdoll.is-dir-up-right{transform:translate(-50%,-50%) scale(calc(var(--ei-lobby-character-size,84px) / 78))!important;}

/* v0.4.87: optional no-character mode for tool-panel / interactive-map scenes. */
.ei-lobby.ei-lobby-character-hide .ei-lobby-avatars,
.ei-lobby.ei-lobby-character-hide .ei-lobby-pad-panel{
  display:none!important;
}
.ei-lobby.ei-lobby-character-hide .ei-lobby-bottom-bar{
  grid-template-columns:minmax(0,1fr)!important;
}
.ei-lobby.ei-lobby-character-hide .ei-lobby-stage{
  cursor:default!important;
}
.ei-lobby.ei-lobby-character-hide .ei-lobby-object{
  pointer-events:auto;
}

/* v0.4.91: visible portal markers */
.ei-lobby .ei-lobby-portal-marker{
  position:absolute;
  width:var(--ei-lobby-grid-w,6%);
  height:var(--ei-lobby-grid-h,6%);
  min-width:22px;
  min-height:22px;
  transform:translate(-50%,-50%);
  z-index:3;
  pointer-events:none;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  overflow:visible;
  box-sizing:border-box;
}
.ei-lobby .ei-lobby-portal-core{
  position:absolute;
  inset:10%;
  border-radius:inherit;
  box-sizing:border-box;
  background:rgba(109,40,217,.20);
  border:1px solid rgba(255,255,255,.34);
  box-shadow:inset 0 0 0 1px rgba(76,29,149,.28);
}
.ei-lobby .ei-lobby-portal-label{
  position:relative;
  z-index:2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:calc(100% - 4px);
  padding:1px 5px;
  border-radius:999px;
  background:rgba(49,46,129,.82);
  border:1px solid rgba(255,255,255,.62);
  color:#fff;
  font-size:clamp(9px,1.25vw,11px);
  font-weight:900;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-shadow:0 1px 4px rgba(0,0,0,.5);
  box-shadow:0 4px 10px rgba(0,0,0,.22);
}
.ei-lobby .ei-lobby-portal-style-subtle .ei-lobby-portal-core{background:rgba(124,58,237,.18);border-color:rgba(196,181,253,.48);}
.ei-lobby .ei-lobby-portal-style-glow .ei-lobby-portal-core{background:radial-gradient(circle,rgba(216,180,254,.34),rgba(109,40,217,.22) 62%,rgba(49,46,129,.16));border-color:rgba(221,214,254,.74);box-shadow:0 0 18px rgba(168,85,247,.48),inset 0 0 14px rgba(255,255,255,.20);}
.ei-lobby .ei-lobby-portal-style-frame .ei-lobby-portal-core{background:rgba(30,27,75,.16);border:2px solid rgba(221,214,254,.92);box-shadow:0 0 0 2px rgba(109,40,217,.26),inset 0 0 0 1px rgba(76,29,149,.62);}
.ei-lobby .ei-lobby-portal-style-rune .ei-lobby-portal-core{background:radial-gradient(circle,rgba(147,51,234,.30),rgba(49,46,129,.12));border:1px dashed rgba(233,213,255,.95);box-shadow:0 0 20px rgba(147,51,234,.52),inset 0 0 12px rgba(255,255,255,.18);animation:eiLobbyPortalRune 3.4s linear infinite;}
.ei-lobby .ei-lobby-portal-style-rune .ei-lobby-portal-core:before{content:"✦";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.88);font-size:12px;text-shadow:0 0 8px rgba(168,85,247,.85);}
@keyframes eiLobbyPortalRune{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.ei-lobby .ei-lobby-portal-style-rune .ei-lobby-portal-core{animation:none!important}}

/* v0.4.99: strengthen announcement FX so each option is visibly distinct on real frontend and admin preview. */
.ei-lobby-announcement-fx-basic .ei-lobby-announcement:not(.is-default){border-left:5px solid var(--ei-frame-accent,#d6a545)!important;}
.ei-lobby-announcement-fx-glow .ei-lobby-announcement:not(.is-default){animation:eiLobbyAnnGlowStrong 1s ease-in-out infinite alternate!important;}
.ei-lobby-announcement-fx-pulse .ei-lobby-announcement:not(.is-default){animation:eiLobbyAnnPulseStrong .78s ease-in-out infinite!important;}
.ei-lobby-announcement-fx-system .ei-lobby-announcement:not(.is-default){outline:2px solid #f97316!important;outline-offset:3px!important;box-shadow:0 0 0 5px rgba(249,115,22,.18),0 14px 30px rgba(154,52,18,.18)!important;}
.ei-lobby-announcement-fx-system .ei-lobby-announcement:not(.is-default):before{content:'SYSTEM';position:absolute;right:10px;top:7px;font-size:10px;font-weight:900;letter-spacing:.12em;color:#ea580c;opacity:.75;}
.ei-lobby-announcement-fx-ink .ei-lobby-announcement:not(.is-default){background-image:radial-gradient(circle at 12% 18%,rgba(15,23,42,.16),transparent 24%),radial-gradient(circle at 88% 78%,rgba(15,23,42,.12),transparent 28%)!important;}
.ei-lobby-announcement-fx-ink .ei-lobby-announcement:not(.is-default):after{content:'';position:absolute;inset:-30%;background:radial-gradient(circle at 50% 50%,rgba(15,23,42,.16),transparent 28%);animation:eiLobbyAnnInkStrong 2.4s ease-in-out infinite;pointer-events:none;mix-blend-mode:multiply;opacity:.55;}
.ei-lobby-announcement-fx-terminal .ei-lobby-announcement:not(.is-default){position:relative;overflow:hidden;background-image:linear-gradient(rgba(34,197,94,.10) 50%,rgba(15,23,42,.06) 50%)!important;background-size:100% 6px!important;border-color:rgba(34,197,94,.72)!important;box-shadow:0 0 0 2px rgba(34,197,94,.18),0 0 24px rgba(34,197,94,.16)!important;}
.ei-lobby-announcement-fx-terminal .ei-lobby-announcement:not(.is-default):after{content:'';position:absolute;left:0;right:0;top:-30%;height:42%;background:linear-gradient(180deg,transparent,rgba(34,197,94,.24),transparent);animation:eiLobbyAnnTerminalScanStrong 1.35s linear infinite;pointer-events:none;}
@keyframes eiLobbyAnnGlowStrong{from{filter:brightness(1);box-shadow:0 0 0 3px rgba(214,165,69,.20),0 14px 30px rgba(15,23,42,.14)}to{filter:brightness(1.12);box-shadow:0 0 24px rgba(214,165,69,.48),0 0 0 6px rgba(214,165,69,.18),0 18px 38px rgba(15,23,42,.2)}}
@keyframes eiLobbyAnnPulseStrong{0%,100%{transform:scale(1)}50%{transform:scale(1.025)}}
@keyframes eiLobbyAnnInkStrong{0%,100%{transform:translate(-12%,-8%) scale(.92);opacity:.35}50%{transform:translate(10%,8%) scale(1.08);opacity:.68}}
@keyframes eiLobbyAnnTerminalScanStrong{0%{top:-42%}100%{top:100%}}


/* v0.4.101: stacked announcement FX presets. Pulse is designed as an overlay layer and can be combined with glow/system/ink/terminal. */
.ei-lobby-announcement-fx-pulse_glow .ei-lobby-announcement:not(.is-default){animation:eiLobbyAnnPulseStrong .78s ease-in-out infinite,eiLobbyAnnGlowStrong 1.05s ease-in-out infinite alternate!important;}
.ei-lobby-announcement-fx-pulse_system .ei-lobby-announcement:not(.is-default){animation:eiLobbyAnnPulseStrong .78s ease-in-out infinite!important;outline:2px solid #f97316!important;outline-offset:3px!important;box-shadow:0 0 0 5px rgba(249,115,22,.18),0 14px 30px rgba(154,52,18,.18)!important;}
.ei-lobby-announcement-fx-pulse_system .ei-lobby-announcement:not(.is-default):before{content:'SYSTEM';position:absolute;right:10px;top:7px;font-size:10px;font-weight:900;letter-spacing:.12em;color:#ea580c;opacity:.75;}
.ei-lobby-announcement-fx-pulse_ink .ei-lobby-announcement:not(.is-default){animation:eiLobbyAnnPulseStrong .78s ease-in-out infinite!important;background-image:radial-gradient(circle at 12% 18%,rgba(15,23,42,.16),transparent 24%),radial-gradient(circle at 88% 78%,rgba(15,23,42,.12),transparent 28%)!important;}
.ei-lobby-announcement-fx-pulse_ink .ei-lobby-announcement:not(.is-default):after{content:'';position:absolute;inset:-30%;background:radial-gradient(circle at 50% 50%,rgba(15,23,42,.16),transparent 28%);animation:eiLobbyAnnInkStrong 2.4s ease-in-out infinite;pointer-events:none;mix-blend-mode:multiply;opacity:.55;}
.ei-lobby-announcement-fx-pulse_terminal .ei-lobby-announcement:not(.is-default){position:relative;overflow:hidden;animation:eiLobbyAnnPulseStrong .78s ease-in-out infinite!important;background-image:linear-gradient(rgba(34,197,94,.10) 50%,rgba(15,23,42,.06) 50%)!important;background-size:100% 6px!important;border-color:rgba(34,197,94,.72)!important;box-shadow:0 0 0 2px rgba(34,197,94,.18),0 0 24px rgba(34,197,94,.16)!important;}
.ei-lobby-announcement-fx-pulse_terminal .ei-lobby-announcement:not(.is-default):after{content:'';position:absolute;left:0;right:0;top:-30%;height:42%;background:linear-gradient(180deg,transparent,rgba(34,197,94,.24),transparent);animation:eiLobbyAnnTerminalScanStrong 1.35s linear infinite;pointer-events:none;}
.ei-lobby-announcement-fx-pulse_glow_system .ei-lobby-announcement:not(.is-default){animation:eiLobbyAnnPulseStrong .78s ease-in-out infinite,eiLobbyAnnGlowStrong 1.05s ease-in-out infinite alternate!important;outline:2px solid #f97316!important;outline-offset:3px!important;}
.ei-lobby-announcement-fx-pulse_glow_system .ei-lobby-announcement:not(.is-default):before{content:'SYSTEM';position:absolute;right:10px;top:7px;font-size:10px;font-weight:900;letter-spacing:.12em;color:#ea580c;opacity:.75;}
.ei-lobby-announcement-fx-pulse_glow_ink .ei-lobby-announcement:not(.is-default){animation:eiLobbyAnnPulseStrong .78s ease-in-out infinite,eiLobbyAnnGlowStrong 1.05s ease-in-out infinite alternate!important;background-image:radial-gradient(circle at 12% 18%,rgba(15,23,42,.16),transparent 24%),radial-gradient(circle at 88% 78%,rgba(15,23,42,.12),transparent 28%)!important;}
.ei-lobby-announcement-fx-pulse_glow_ink .ei-lobby-announcement:not(.is-default):after{content:'';position:absolute;inset:-30%;background:radial-gradient(circle at 50% 50%,rgba(15,23,42,.16),transparent 28%);animation:eiLobbyAnnInkStrong 2.4s ease-in-out infinite;pointer-events:none;mix-blend-mode:multiply;opacity:.55;}
.ei-lobby-announcement-fx-pulse_glow_terminal .ei-lobby-announcement:not(.is-default){position:relative;overflow:hidden;animation:eiLobbyAnnPulseStrong .78s ease-in-out infinite,eiLobbyAnnGlowStrong 1.05s ease-in-out infinite alternate!important;background-image:linear-gradient(rgba(34,197,94,.10) 50%,rgba(15,23,42,.06) 50%)!important;background-size:100% 6px!important;border-color:rgba(34,197,94,.72)!important;}
.ei-lobby-announcement-fx-pulse_glow_terminal .ei-lobby-announcement:not(.is-default):after{content:'';position:absolute;left:0;right:0;top:-30%;height:42%;background:linear-gradient(180deg,transparent,rgba(34,197,94,.24),transparent);animation:eiLobbyAnnTerminalScanStrong 1.35s linear infinite;pointer-events:none;}
.ei-lobby-announcement-fx-glow_ink .ei-lobby-announcement:not(.is-default){animation:eiLobbyAnnGlowStrong 1.05s ease-in-out infinite alternate!important;background-image:radial-gradient(circle at 12% 18%,rgba(15,23,42,.16),transparent 24%),radial-gradient(circle at 88% 78%,rgba(15,23,42,.12),transparent 28%)!important;}
.ei-lobby-announcement-fx-glow_ink .ei-lobby-announcement:not(.is-default):after{content:'';position:absolute;inset:-30%;background:radial-gradient(circle at 50% 50%,rgba(15,23,42,.16),transparent 28%);animation:eiLobbyAnnInkStrong 2.4s ease-in-out infinite;pointer-events:none;mix-blend-mode:multiply;opacity:.55;}
.ei-lobby-announcement-fx-glow_terminal .ei-lobby-announcement:not(.is-default){position:relative;overflow:hidden;animation:eiLobbyAnnGlowStrong 1.05s ease-in-out infinite alternate!important;background-image:linear-gradient(rgba(34,197,94,.10) 50%,rgba(15,23,42,.06) 50%)!important;background-size:100% 6px!important;border-color:rgba(34,197,94,.72)!important;}
.ei-lobby-announcement-fx-glow_terminal .ei-lobby-announcement:not(.is-default):after{content:'';position:absolute;left:0;right:0;top:-30%;height:42%;background:linear-gradient(180deg,transparent,rgba(34,197,94,.24),transparent);animation:eiLobbyAnnTerminalScanStrong 1.35s linear infinite;pointer-events:none;}

/* v0.4.102: configurable confirmation prompt modal offset and square shape. */
.ei-lobby .ei-lobby-modal.is-confirm-prompt .ei-lobby-modal-card{
  transform:translateX(calc(var(--ei-lobby-confirm-modal-shift-left,0px) * -1))!important;
  transition:transform .18s ease!important;
}
.ei-lobby.ei-lobby-confirm-modal-shape-square .ei-lobby-modal.is-confirm-prompt .ei-lobby-modal-card{
  width:min(560px,calc(100vw - 40px),calc(82vh - 40px))!important;
  height:min(560px,calc(100vw - 40px),calc(82vh - 40px))!important;
  max-width:min(560px,calc(100vw - 40px),calc(82vh - 40px))!important;
  max-height:min(560px,calc(100vw - 40px),calc(82vh - 40px))!important;
  display:flex!important;
  flex-direction:column!important;
  box-sizing:border-box!important;
}
.ei-lobby.ei-lobby-confirm-modal-shape-square .ei-lobby-modal.is-confirm-prompt .ei-lobby-modal-body{
  flex:1 1 auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  box-sizing:border-box!important;
}
.ei-lobby.ei-lobby-confirm-modal-shape-square .ei-lobby-modal.is-confirm-prompt .ei-lobby-interaction-prompt{
  flex:1 1 auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
}
.ei-lobby.ei-lobby-confirm-modal-shape-square .ei-lobby-modal.is-confirm-prompt .ei-lobby-interaction-prompt p{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:auto!important;
}
.ei-lobby.ei-lobby-confirm-modal-shape-square .ei-lobby-modal.is-confirm-prompt .ei-lobby-interaction-actions{
  margin-top:auto!important;
}
@media(max-width:640px){
  .ei-lobby .ei-lobby-modal.is-confirm-prompt .ei-lobby-modal-card{
    transform:none!important;
  }
  .ei-lobby.ei-lobby-confirm-modal-shape-square .ei-lobby-modal.is-confirm-prompt .ei-lobby-modal-card{
    width:calc(100dvw - 32px)!important;
    max-width:calc(100dvw - 32px)!important;
    height:auto!important;
    max-height:calc(100dvh - 72px)!important;
  }
}

/* v0.4.103: optional fixed height for interaction / portal confirmation prompt modals. */
.ei-lobby.ei-lobby-confirm-modal-height-custom .ei-lobby-modal.is-confirm-prompt .ei-lobby-modal-card{
  height:min(var(--ei-lobby-confirm-modal-height,420px),calc(100dvh - 72px))!important;
  max-height:min(var(--ei-lobby-confirm-modal-height,420px),calc(100dvh - 72px))!important;
  display:flex!important;
  flex-direction:column!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.ei-lobby.ei-lobby-confirm-modal-height-custom .ei-lobby-modal.is-confirm-prompt .ei-lobby-modal-body{
  flex:1 1 auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  box-sizing:border-box!important;
}
.ei-lobby.ei-lobby-confirm-modal-height-custom .ei-lobby-modal.is-confirm-prompt .ei-lobby-interaction-prompt{
  flex:1 1 auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
}
.ei-lobby.ei-lobby-confirm-modal-height-custom .ei-lobby-modal.is-confirm-prompt .ei-lobby-interaction-prompt p{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:auto!important;
}
.ei-lobby.ei-lobby-confirm-modal-height-custom .ei-lobby-modal.is-confirm-prompt .ei-lobby-interaction-actions{
  margin-top:auto!important;
}
@media(max-width:640px){
  .ei-lobby.ei-lobby-confirm-modal-height-custom .ei-lobby-modal.is-confirm-prompt .ei-lobby-modal-card{
    height:min(var(--ei-lobby-confirm-modal-height,420px),calc(100dvh - 72px))!important;
    max-height:calc(100dvh - 72px)!important;
  }
}

/* v0.4.107 object-based foreground masks */
.ei-lobby-object-foreground-mask{position:absolute;overflow:visible;pointer-events:none;display:flex;align-items:center;justify-content:center;transform:translateZ(0);will-change:transform}
.ei-lobby-object-foreground-mask img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none;transform:scale(var(--ei-object-image-scale,1));transform-origin:center center;filter:drop-shadow(0 4px 10px rgba(0,0,0,.25))}

/* v0.4.109 foreground mask follows background float */
.ei-lobby-bg-float-on .ei-lobby-object-foreground-mask.is-following-bg-float{animation:ei-lobby-bg-float var(--ei-lobby-bg-float-duration,14s) ease-in-out infinite;will-change:transform}
@media (prefers-reduced-motion: reduce){.ei-lobby-bg-float-on .ei-lobby-object-foreground-mask.is-following-bg-float{animation:none!important}}


/* EI First Tip / EI 首次提示 */
[data-ei-firstfx="1"]:not(.ei-lobby-object){position:relative;}
[data-ei-firstfx="1"].ei-firstfx-active{overflow:visible!important;z-index:80!important;}
[data-ei-firstfx="1"].ei-firstfx-active.ei-firstfx-glow{box-shadow:0 0 0 3px rgba(255,244,170,.82),0 0 22px rgba(255,211,72,.72),0 0 44px rgba(255,184,0,.38)!important;animation:eiFirstFxPulse 1.25s ease-in-out infinite;}
.ei-lobby-object .ei-firstfx-marker,.ei-lobby-object .ei-firstfx-bubble{max-width:none!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;}
.ei-firstfx-marker{position:absolute!important;z-index:9999!important;min-width:28px;height:28px;padding:0 7px!important;border-radius:999px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;background:linear-gradient(180deg,#fff7a8,#ffb800)!important;color:#342000!important;border:2px solid #fff!important;box-shadow:0 8px 22px rgba(0,0,0,.28)!important;font-size:18px!important;font-weight:900!important;line-height:1!important;pointer-events:none!important;box-sizing:border-box!important;}
.ei-firstfx-marker.is-arrow{font-size:22px!important;min-width:34px;height:30px;}
.ei-firstfx-marker-symbol{display:inline-block;line-height:1;animation:eiFirstFxBounce .9s ease-in-out infinite;}
.ei-firstfx-marker.is-arrow .ei-firstfx-marker-symbol{animation:eiFirstFxSoftNudge .85s ease-in-out infinite;}
.ei-firstfx-marker.is-arrow-dir-right .ei-firstfx-marker-symbol{transform:rotate(0deg);}
.ei-firstfx-marker.is-arrow-dir-left .ei-firstfx-marker-symbol{transform:rotate(180deg);}
.ei-firstfx-marker.is-arrow-dir-up .ei-firstfx-marker-symbol{transform:rotate(-90deg);}
.ei-firstfx-marker.is-arrow-dir-down .ei-firstfx-marker-symbol{transform:rotate(90deg);}
.ei-firstfx-marker.is-pos-top{left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);}
.ei-firstfx-marker.is-pos-top-right{right:-12px;bottom:calc(100% - 8px);}
.ei-firstfx-marker.is-pos-right{left:calc(100% + 8px);top:50%;transform:translateY(-50%);}
.ei-firstfx-marker.is-pos-bottom-right{right:-12px;top:calc(100% - 8px);}
.ei-firstfx-marker.is-pos-bottom{left:50%;top:calc(100% + 8px);transform:translateX(-50%);}
.ei-firstfx-marker.is-pos-bottom-left{left:-12px;top:calc(100% - 8px);}
.ei-firstfx-marker.is-pos-left{right:calc(100% + 8px);top:50%;transform:translateY(-50%);}
.ei-firstfx-marker.is-pos-top-left{left:-12px;bottom:calc(100% - 8px);}
.ei-firstfx-bubble{position:absolute!important;left:50%;bottom:calc(100% + 12px);transform:translateX(-50%);z-index:9998!important;max-width:min(260px,72vw)!important;width:max-content!important;padding:9px 12px!important;border-radius:14px!important;background:rgba(255,255,255,.96)!important;color:#1f2937!important;border:2px solid rgba(17,24,39,.14)!important;box-shadow:0 12px 30px rgba(15,23,42,.22)!important;font-size:13px!important;font-weight:800!important;line-height:1.45!important;text-align:left!important;white-space:normal!important;pointer-events:none!important;}
.ei-firstfx-bubble:after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:8px solid transparent;border-top-color:rgba(255,255,255,.96);}
.ei-firstfx-bubble.is-bottom{bottom:auto;top:calc(100% + 12px);}
.ei-firstfx-bubble.is-bottom:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:rgba(255,255,255,.96);}
.ei-firstfx-bubble.is-left{left:auto;right:calc(100% + 12px);top:50%;bottom:auto;transform:translateY(-50%);}
.ei-firstfx-bubble.is-left:after{left:100%;top:50%;transform:translateY(-50%);border-top-color:transparent;border-left-color:rgba(255,255,255,.96);}
.ei-firstfx-bubble.is-right{left:calc(100% + 12px);top:50%;bottom:auto;transform:translateY(-50%);}
.ei-firstfx-bubble.is-right:after{left:auto;right:100%;top:50%;transform:translateY(-50%);border-top-color:transparent;border-right-color:rgba(255,255,255,.96);}
/* v0.4.119: 同側時讓圖示與氣泡自動錯開，避免箭頭卡進氣泡。 */
.ei-firstfx-marker.is-pos-right ~ .ei-firstfx-bubble.is-right{left:calc(100% + 56px)!important;}
.ei-firstfx-marker.is-pos-left ~ .ei-firstfx-bubble.is-left{right:calc(100% + 56px)!important;}
.ei-firstfx-marker.is-pos-top ~ .ei-firstfx-bubble.is-top{bottom:calc(100% + 56px)!important;}
.ei-firstfx-marker.is-pos-bottom ~ .ei-firstfx-bubble.is-bottom{top:calc(100% + 56px)!important;}
.ei-firstfx-marker.is-pos-top-right ~ .ei-firstfx-bubble.is-right{left:calc(100% + 52px)!important;}
.ei-firstfx-marker.is-pos-bottom-right ~ .ei-firstfx-bubble.is-right{left:calc(100% + 52px)!important;}
.ei-firstfx-marker.is-pos-top-left ~ .ei-firstfx-bubble.is-left{right:calc(100% + 52px)!important;}
.ei-firstfx-marker.is-pos-bottom-left ~ .ei-firstfx-bubble.is-left{right:calc(100% + 52px)!important;}
.ei-firstfx-marker.is-arrow .ei-firstfx-marker-symbol{min-width:1em;text-align:center;}
@keyframes eiFirstFxPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.12)}}
@keyframes eiFirstFxBounce{0%,100%{translate:0 0}50%{translate:0 -5px}}
@keyframes eiFirstFxSoftNudge{0%,100%{translate:0 0}50%{translate:4px 0}}
@media(max-width:640px){.ei-firstfx-bubble{font-size:12px!important;max-width:210px!important;padding:8px 10px!important}.ei-firstfx-marker{min-width:24px;height:24px;font-size:15px!important}.ei-firstfx-marker.is-arrow{min-width:30px;height:26px;font-size:19px!important}}



/* v0.4.120 EI 首次提示：Lobby 視覺修正
   - 箭頭回到 EI Dialogue 的黃金圓形提示風格。
   - 驚嘆號沿用 Lobby 原本「接觸驚嘆號」SVG。
   - 覆蓋舊版 .ei-lobby-object span 樣式，避免提示圖示被變成深色膠囊。
   - 同側時圖示與漫畫氣泡保持更大距離。 */
.ei-lobby-object .ei-firstfx-marker{
  position:absolute!important;
  z-index:10020!important;
  pointer-events:none!important;
  box-sizing:border-box!important;
  overflow:visible!important;
  white-space:normal!important;
  text-overflow:clip!important;
  opacity:1!important;
  visibility:visible!important;
}
.ei-lobby-object .ei-firstfx-marker.is-arrow{
  width:36px!important;
  min-width:36px!important;
  height:36px!important;
  padding:0!important;
  border-radius:999px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:linear-gradient(180deg,#fff5a8 0%,#ffc533 48%,#f59e0b 100%)!important;
  border:3px solid rgba(255,255,255,.98)!important;
  color:#3a2300!important;
  box-shadow:0 0 0 3px rgba(255,211,72,.35),0 9px 22px rgba(0,0,0,.28),inset 0 2px 0 rgba(255,255,255,.65),inset 0 -3px 0 rgba(146,64,14,.18)!important;
  font-size:0!important;
  line-height:1!important;
}
.ei-lobby-object .ei-firstfx-marker.is-arrow .ei-firstfx-marker-symbol{
  display:inline-block!important;
  width:auto!important;
  min-width:0!important;
  height:auto!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#3a2300!important;
  -webkit-text-fill-color:#3a2300!important;
  font-size:24px!important;
  font-weight:900!important;
  line-height:1!important;
  text-align:center!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
  animation:eiFirstFxSoftNudge .85s ease-in-out infinite!important;
}
.ei-lobby-object .ei-firstfx-marker.is-arrow-dir-right .ei-firstfx-marker-symbol{transform:rotate(0deg)!important;}
.ei-lobby-object .ei-firstfx-marker.is-arrow-dir-left .ei-firstfx-marker-symbol{transform:rotate(180deg)!important;}
.ei-lobby-object .ei-firstfx-marker.is-arrow-dir-up .ei-firstfx-marker-symbol{transform:rotate(-90deg)!important;}
.ei-lobby-object .ei-firstfx-marker.is-arrow-dir-down .ei-firstfx-marker-symbol{transform:rotate(90deg)!important;}
.ei-lobby-object .ei-firstfx-marker.ei-firstfx-alert-marker{
  width:34px!important;
  min-width:34px!important;
  height:30px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  display:block!important;
  transform-origin:center!important;
  animation:eiLobbyAlertPop 950ms ease-in-out infinite alternate!important;
}
.ei-lobby-object .ei-firstfx-marker.ei-firstfx-alert-marker svg{
  display:block!important;
  width:100%!important;
  height:100%!important;
  overflow:visible!important;
  filter:drop-shadow(0 4px 6px rgba(0,0,0,.38))!important;
}
.ei-lobby-object .ei-firstfx-marker.ei-firstfx-alert-marker path{fill:#fff7ed!important;stroke:#f97316!important;stroke-width:4!important;stroke-linejoin:round!important;}
.ei-lobby-object .ei-firstfx-marker.ei-firstfx-alert-marker text{font:900 34px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;fill:#ef4444!important;stroke:#7f1d1d!important;stroke-width:.9!important;paint-order:stroke!important;dominant-baseline:middle!important;}
/* 位置：比舊版略外推，降低和氣泡、物件本身互相黏住的機率。 */
.ei-lobby-object .ei-firstfx-marker.is-pos-top{left:50%!important;bottom:calc(100% + 16px)!important;transform:translateX(-50%)!important;}
.ei-lobby-object .ei-firstfx-marker.is-pos-top-right{right:-18px!important;bottom:calc(100% + 6px)!important;}
.ei-lobby-object .ei-firstfx-marker.is-pos-right{left:calc(100% + 16px)!important;top:50%!important;transform:translateY(-50%)!important;}
.ei-lobby-object .ei-firstfx-marker.is-pos-bottom-right{right:-18px!important;top:calc(100% + 6px)!important;}
.ei-lobby-object .ei-firstfx-marker.is-pos-bottom{left:50%!important;top:calc(100% + 16px)!important;transform:translateX(-50%)!important;}
.ei-lobby-object .ei-firstfx-marker.is-pos-bottom-left{left:-18px!important;top:calc(100% + 6px)!important;}
.ei-lobby-object .ei-firstfx-marker.is-pos-left{right:calc(100% + 16px)!important;top:50%!important;transform:translateY(-50%)!important;}
.ei-lobby-object .ei-firstfx-marker.is-pos-top-left{left:-18px!important;bottom:calc(100% + 6px)!important;}
/* 氣泡與圖示同側時，改成至少 88px 的距離，不再貼在一起。 */
.ei-lobby-object .ei-firstfx-marker.is-pos-right ~ .ei-firstfx-bubble.is-right{left:calc(100% + 96px)!important;}
.ei-lobby-object .ei-firstfx-marker.is-pos-left ~ .ei-firstfx-bubble.is-left{right:calc(100% + 96px)!important;}
.ei-lobby-object .ei-firstfx-marker.is-pos-top ~ .ei-firstfx-bubble.is-top{bottom:calc(100% + 96px)!important;}
.ei-lobby-object .ei-firstfx-marker.is-pos-bottom ~ .ei-firstfx-bubble.is-bottom{top:calc(100% + 96px)!important;}
.ei-lobby-object .ei-firstfx-marker.is-pos-top-right ~ .ei-firstfx-bubble.is-right,
.ei-lobby-object .ei-firstfx-marker.is-pos-bottom-right ~ .ei-firstfx-bubble.is-right{left:calc(100% + 92px)!important;}
.ei-lobby-object .ei-firstfx-marker.is-pos-top-left ~ .ei-firstfx-bubble.is-left,
.ei-lobby-object .ei-firstfx-marker.is-pos-bottom-left ~ .ei-firstfx-bubble.is-left{right:calc(100% + 92px)!important;}
@media(max-width:640px){
  .ei-lobby-object .ei-firstfx-marker.is-arrow{width:32px!important;min-width:32px!important;height:32px!important;}
  .ei-lobby-object .ei-firstfx-marker.is-arrow .ei-firstfx-marker-symbol{font-size:21px!important;}
  .ei-lobby-object .ei-firstfx-marker.is-pos-right ~ .ei-firstfx-bubble.is-right{left:calc(100% + 76px)!important;}
  .ei-lobby-object .ei-firstfx-marker.is-pos-left ~ .ei-firstfx-bubble.is-left{right:calc(100% + 76px)!important;}
}

/* v0.4.122.2: EI 首次提示支援角落快捷按鈕。避免快捷按鈕文字 span 規則污染提示圖示 / 氣泡。 */
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button .ei-firstfx-marker,
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button .ei-firstfx-bubble{
  max-width:none!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button .ei-firstfx-marker{
  display:inline-flex!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button .ei-firstfx-bubble{
  display:block!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button .ei-firstfx-marker.ei-firstfx-alert-marker{
  width:30px!important;
  min-width:30px!important;
  height:28px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  display:block!important;
  transform-origin:center!important;
  animation:eiLobbyAlertPop 950ms ease-in-out infinite alternate!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button .ei-firstfx-marker.ei-firstfx-alert-marker svg{
  display:block!important;
  width:100%!important;
  height:100%!important;
  overflow:visible!important;
  filter:drop-shadow(0 4px 6px rgba(0,0,0,.38))!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button .ei-firstfx-marker.ei-firstfx-alert-marker path{fill:#fff7ed!important;stroke:#f97316!important;stroke-width:4!important;stroke-linejoin:round!important;}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button .ei-firstfx-marker.ei-firstfx-alert-marker text{font:900 34px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;fill:#ef4444!important;stroke:#7f1d1d!important;stroke-width:.9!important;paint-order:stroke!important;dominant-baseline:middle!important;}

/* v0.4.122.3: 角落快捷按鈕 EI 首次提示修正。快捷按鈕本體原本有 overflow:hidden，權重高於通用 firstfx active，會裁掉箭頭與氣泡；這裡只針對快捷按鈕啟用時解除裁切，不動互動物件預覽。 */
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active{
  position:relative!important;
  overflow:visible!important;
  z-index:96!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-dock{
  overflow:visible!important;
  z-index:96!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-marker,
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-bubble{
  pointer-events:none!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-marker{
  z-index:99999!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-bubble{
  z-index:99998!important;
}

/* v0.4.122.4: 角落快捷按鈕 EI 首次提示氣泡視覺修正。只調整快捷按鈕的 bubble / bubble tail，不碰互動物件預覽與後台 JS。 */
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-bubble{
  background:rgba(15,23,42,.82)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border:1px solid rgba(255,255,255,.34)!important;
  box-shadow:0 12px 30px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.14)!important;
  text-shadow:0 1px 2px rgba(0,0,0,.38)!important;
  backdrop-filter:blur(6px)!important;
  -webkit-backdrop-filter:blur(6px)!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-bubble:after{
  border-color:transparent!important;
  border-top-color:rgba(15,23,42,.82)!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-bubble.is-bottom:after{
  border-color:transparent!important;
  border-bottom-color:rgba(15,23,42,.82)!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-bubble.is-left:after{
  border-color:transparent!important;
  border-left-color:rgba(15,23,42,.82)!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-bubble.is-right:after{
  border-color:transparent!important;
  border-right-color:rgba(15,23,42,.82)!important;
}



/* v0.4.122.5: 角落快捷按鈕 EI 首次提示定位修正。
   top / bottom / left / right 與四角位置改用快捷按鈕專屬定位，
   讓 top 真正在按鈕正上方，並拉開與按鈕本體的距離，避免遮到按鈕。
   只修快捷按鈕 marker 位置，不碰互動物件預覽與後台 JS。 */
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-marker.is-pos-top{
  left:50%!important; right:auto!important; top:auto!important; bottom:calc(100% + 14px)!important;
  transform:translateX(-50%)!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-marker.is-pos-bottom{
  left:50%!important; right:auto!important; bottom:auto!important; top:calc(100% + 14px)!important;
  transform:translateX(-50%)!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-marker.is-pos-left{
  right:calc(100% + 14px)!important; left:auto!important; top:50%!important; bottom:auto!important;
  transform:translateY(-50%)!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-marker.is-pos-right{
  left:calc(100% + 14px)!important; right:auto!important; top:50%!important; bottom:auto!important;
  transform:translateY(-50%)!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-marker.is-pos-top-right{
  right:-10px!important; left:auto!important; top:auto!important; bottom:calc(100% + 4px)!important;
  transform:none!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-marker.is-pos-top-left{
  left:-10px!important; right:auto!important; top:auto!important; bottom:calc(100% + 4px)!important;
  transform:none!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-marker.is-pos-bottom-right{
  right:-10px!important; left:auto!important; top:calc(100% + 4px)!important; bottom:auto!important;
  transform:none!important;
}
.ei-lobby .ei-lobby-stage .ei-lobby-quick-button.ei-firstfx-active .ei-firstfx-marker.is-pos-bottom-left{
  left:-10px!important; right:auto!important; top:calc(100% + 4px)!important; bottom:auto!important;
  transform:none!important;
}

/* v0.4.133: Stage Sync 任務提示框互動物件 */
.ei-lobby-object.is-stage-sync-hint-object{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  overflow:visible!important;
  align-items:stretch!important;
  justify-content:stretch!important;
  font-size:14px!important;
  color:inherit!important;
}
.ei-lobby-object.is-stage-sync-hint-object:hover{
  background:transparent!important;
  transform:translateY(-1px)!important;
}
.ei-lobby-object.is-stage-sync-hint-object.is-label-hidden{font-size:14px!important;}
.ei-lobby-object.is-stage-sync-hint-object .ei-lobby-stage-sync-card{
  width:100%;
  min-width:160px;
  height:100%;
  min-height:84px;
  box-sizing:border-box;
  pointer-events:none;
}
.ei-lobby-stage-sync-card{
  --ei-stage-bg:#ffffff;
  --ei-stage-bg2:#f8fafc;
  --ei-stage-fg:#172033;
  --ei-stage-muted:#64748b;
  --ei-stage-line:rgba(15,23,42,.12);
  --ei-stage-accent:#2563eb;
  --ei-stage-accent2:#60a5fa;
  --ei-stage-shadow:0 14px 36px rgba(15,23,42,.22);
  position:relative;
  display:flex;
  flex-direction:column;
  gap:9px;
  padding:14px 15px;
  border:1px solid var(--ei-stage-line);
  border-radius:18px;
  background:linear-gradient(145deg,var(--ei-stage-bg),var(--ei-stage-bg2));
  color:var(--ei-stage-fg)!important;
  box-shadow:var(--ei-stage-shadow);
  line-height:1.45;
  text-align:left;
  overflow:hidden;
  isolation:isolate;
}
.ei-lobby-stage-sync-card *{box-sizing:border-box;}
.ei-lobby-stage-sync-card span,
.ei-lobby-object .ei-lobby-stage-sync-card span{
  background:transparent!important;
  border-radius:0!important;
  padding:0!important;
  max-width:none!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  line-height:inherit!important;
}
.ei-lobby-stage-sync-card-head{display:flex;flex-direction:column;gap:2px;position:relative;z-index:2;}
.ei-lobby-stage-sync-card-head .ei-lobby-stage-sync-kicker{
  display:inline-flex!important;
  align-self:flex-start;
  padding:2px 8px!important;
  border-radius:999px!important;
  color:var(--ei-stage-accent)!important;
  background:color-mix(in srgb, var(--ei-stage-accent) 12%, transparent)!important;
  font-size:10px!important;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:800;
}
.ei-lobby-stage-sync-card-head strong{font-size:16px;color:var(--ei-stage-fg)!important;letter-spacing:.02em;}
.ei-lobby-stage-sync-intro,.ei-lobby-stage-sync-custom,.ei-lobby-stage-sync-empty{position:relative;z-index:2;color:var(--ei-stage-muted)!important;font-size:13px;}
.ei-lobby-stage-sync-body{display:grid;gap:7px;position:relative;z-index:2;}
.ei-lobby-stage-sync-row{display:grid;grid-template-columns:minmax(58px,.38fr) minmax(0,1fr);gap:10px;align-items:start;padding:7px 0;border-top:1px solid var(--ei-stage-line);}
.ei-lobby-stage-sync-row:first-child{border-top:0;padding-top:0;}
.ei-lobby-stage-sync-row span{color:var(--ei-stage-muted)!important;font-size:12px!important;font-weight:700!important;}
.ei-lobby-stage-sync-row strong{color:var(--ei-stage-fg)!important;font-size:13px!important;font-weight:800!important;word-break:break-word;}
.ei-lobby-stage-sync-action{
  position:relative;z-index:3;display:inline-flex;align-self:flex-start;align-items:center;justify-content:center;
  min-height:34px;padding:7px 13px;border-radius:999px;background:var(--ei-stage-accent);color:#fff!important;
  border:1px solid color-mix(in srgb, var(--ei-stage-accent) 80%, #fff 20%);text-decoration:none!important;font-weight:800;font-size:13px;
  box-shadow:0 8px 20px color-mix(in srgb, var(--ei-stage-accent) 30%, transparent);
}
.ei-lobby-stage-sync-action:hover{filter:brightness(1.06);transform:translateY(-1px);}
.ei-lobby-stage-sync-action.is-preview-only{opacity:.9;}
.ei-lobby-stage-sync-card.is-context-modal{pointer-events:auto;max-width:620px;margin:0 auto;}
.ei-lobby-stage-sync-card.is-context-modal .ei-lobby-stage-sync-row{grid-template-columns:120px minmax(0,1fr);}

.ei-lobby-stage-sync-card.is-style-minimal{--ei-stage-bg:#ffffff;--ei-stage-bg2:#f8fafc;--ei-stage-fg:#111827;--ei-stage-muted:#64748b;--ei-stage-line:rgba(15,23,42,.12);--ei-stage-accent:#2563eb;--ei-stage-shadow:0 10px 26px rgba(15,23,42,.12);}
.ei-lobby-stage-sync-card.is-style-glass{--ei-stage-bg:rgba(255,255,255,.62);--ei-stage-bg2:rgba(224,242,254,.34);--ei-stage-fg:#0f172a;--ei-stage-muted:#475569;--ei-stage-line:rgba(255,255,255,.52);--ei-stage-accent:#0ea5e9;backdrop-filter:blur(14px) saturate(1.25);}
.ei-lobby-stage-sync-card.is-style-rpg_gold{--ei-stage-bg:#17110b;--ei-stage-bg2:#34220e;--ei-stage-fg:#fff7d6;--ei-stage-muted:#d6bd78;--ei-stage-line:rgba(245,197,91,.32);--ei-stage-accent:#d9a441;--ei-stage-shadow:0 16px 40px rgba(0,0,0,.42), inset 0 0 0 1px rgba(255,236,160,.15);}
.ei-lobby-stage-sync-card.is-style-rpg_gold:before{content:"";position:absolute;inset:6px;border:1px solid rgba(245,197,91,.42);border-radius:14px;pointer-events:none;z-index:1;}
.ei-lobby-stage-sync-card.is-style-parchment{--ei-stage-bg:#f3dfb8;--ei-stage-bg2:#fff3d1;--ei-stage-fg:#4a2e12;--ei-stage-muted:#7d5525;--ei-stage-line:rgba(94,55,17,.22);--ei-stage-accent:#9b5b1b;--ei-stage-shadow:0 12px 28px rgba(74,46,18,.22);font-family:Georgia,"Times New Roman",serif;}
.ei-lobby-stage-sync-card.is-style-ink{--ei-stage-bg:#f7f3e8;--ei-stage-bg2:#ebe2cf;--ei-stage-fg:#1f2933;--ei-stage-muted:#6b5b45;--ei-stage-line:rgba(31,41,51,.18);--ei-stage-accent:#b91c1c;--ei-stage-shadow:0 12px 28px rgba(31,41,51,.18);border-radius:8px;}
.ei-lobby-stage-sync-card.is-style-ink .ei-lobby-stage-sync-kicker{border:1px solid var(--ei-stage-accent)!important;}
.ei-lobby-stage-sync-card.is-style-zhugold{--ei-stage-bg:#4b1113;--ei-stage-bg2:#801f20;--ei-stage-fg:#fff1bf;--ei-stage-muted:#f3d48a;--ei-stage-line:rgba(255,216,120,.28);--ei-stage-accent:#f2b84b;--ei-stage-shadow:0 16px 38px rgba(60,10,10,.42);}
.ei-lobby-stage-sync-card.is-style-cyber{--ei-stage-bg:#07111f;--ei-stage-bg2:#0a2535;--ei-stage-fg:#dffbff;--ei-stage-muted:#8bd8ef;--ei-stage-line:rgba(34,211,238,.28);--ei-stage-accent:#22d3ee;--ei-stage-shadow:0 0 0 1px rgba(34,211,238,.22),0 16px 42px rgba(0,0,0,.48);border-radius:10px;}
.ei-lobby-stage-sync-card.is-style-cyber:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(34,211,238,.12),transparent);transform:translateX(-120%);animation:eiStageSweep 3.2s infinite;z-index:1;pointer-events:none;}
.ei-lobby-stage-sync-card.is-style-terminal{--ei-stage-bg:#020617;--ei-stage-bg2:#07120b;--ei-stage-fg:#d9ffe2;--ei-stage-muted:#83d99a;--ei-stage-line:rgba(34,197,94,.25);--ei-stage-accent:#22c55e;--ei-stage-shadow:0 14px 34px rgba(0,0,0,.52);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;border-radius:6px;}
.ei-lobby-stage-sync-card.is-style-pixel{--ei-stage-bg:#f8fafc;--ei-stage-bg2:#e2e8f0;--ei-stage-fg:#111827;--ei-stage-muted:#475569;--ei-stage-line:#111827;--ei-stage-accent:#7c3aed;--ei-stage-shadow:6px 6px 0 rgba(17,24,39,.38);border:3px solid #111827;border-radius:0;image-rendering:pixelated;}
.ei-lobby-stage-sync-card.is-style-pixel .ei-lobby-stage-sync-action{border-radius:0;box-shadow:3px 3px 0 rgba(17,24,39,.38);}
.ei-lobby-stage-sync-card.is-style-cute_pink{--ei-stage-bg:#fff0f7;--ei-stage-bg2:#ffe4f0;--ei-stage-fg:#5b1535;--ei-stage-muted:#9d4268;--ei-stage-line:rgba(219,39,119,.18);--ei-stage-accent:#db2777;--ei-stage-shadow:0 14px 32px rgba(219,39,119,.20);}

.ei-lobby-stage-sync-card.is-style-classic_wood{--ei-stage-bg:#3d2414;--ei-stage-bg2:#65422a;--ei-stage-fg:#f8e8c7;--ei-stage-muted:#d9bf93;--ei-stage-line:rgba(232,199,143,.22);--ei-stage-accent:#c68a43;--ei-stage-shadow:0 16px 36px rgba(32,18,10,.42), inset 0 0 0 1px rgba(255,240,214,.08);}
.ei-lobby-stage-sync-card.is-style-classic_wood:before{content:"";position:absolute;inset:8px;border:1px solid rgba(234,196,132,.24);border-radius:12px;pointer-events:none;z-index:1;}
.ei-lobby-stage-sync-card.is-style-glass_blue{--ei-stage-bg:rgba(213,232,255,.78);--ei-stage-bg2:rgba(164,204,255,.34);--ei-stage-fg:#10233d;--ei-stage-muted:#36506f;--ei-stage-line:rgba(255,255,255,.58);--ei-stage-accent:#3b82f6;--ei-stage-shadow:0 14px 30px rgba(59,130,246,.18);backdrop-filter:blur(14px) saturate(1.18);}
.ei-lobby-stage-sync-card.is-style-dark_round{--ei-stage-bg:#0f172a;--ei-stage-bg2:#1e293b;--ei-stage-fg:#f8fafc;--ei-stage-muted:#cbd5e1;--ei-stage-line:rgba(148,163,184,.22);--ei-stage-accent:#94a3b8;--ei-stage-shadow:0 16px 38px rgba(2,6,23,.44);border-radius:22px;}
.ei-lobby-stage-sync-card.is-style-chinese_red_gold{--ei-stage-bg:#5b0f14;--ei-stage-bg2:#8e1d24;--ei-stage-fg:#fff3c4;--ei-stage-muted:#f2d28c;--ei-stage-line:rgba(255,220,130,.28);--ei-stage-accent:#f4bf57;--ei-stage-shadow:0 16px 38px rgba(77,9,13,.42);}
.ei-lobby-stage-sync-card.is-style-japanese_washi{--ei-stage-bg:#f4efe2;--ei-stage-bg2:#e6dcc6;--ei-stage-fg:#2f241c;--ei-stage-muted:#6b5744;--ei-stage-line:rgba(90,69,49,.16);--ei-stage-accent:#8b1e2d;--ei-stage-shadow:0 12px 28px rgba(47,36,28,.18);border-radius:10px;background-image:linear-gradient(145deg,var(--ei-stage-bg),var(--ei-stage-bg2)),radial-gradient(rgba(0,0,0,.03) 1px,transparent 1px);background-size:auto,6px 6px;}
.ei-lobby-stage-sync-card.is-style-japanese_washi .ei-lobby-stage-sync-kicker{border:1px solid rgba(139,30,45,.28)!important;}
.ei-lobby-stage-sync-card.is-style-cyberpunk_neon{--ei-stage-bg:#120015;--ei-stage-bg2:#22103d;--ei-stage-fg:#f7e8ff;--ei-stage-muted:#ff9df6;--ei-stage-line:rgba(255,0,255,.22);--ei-stage-accent:#00eaff;--ei-stage-accent2:#ff00a8;--ei-stage-shadow:0 0 0 1px rgba(0,234,255,.18),0 0 28px rgba(255,0,168,.18),0 18px 42px rgba(0,0,0,.45);}
.ei-lobby-stage-sync-card.is-style-cyberpunk_neon:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(0,234,255,.10),transparent);transform:translateX(-120%);animation:eiStageSweep 3.2s infinite;z-index:1;pointer-events:none;}
.ei-lobby-stage-sync-card.is-style-nasapunk{--ei-stage-bg:#101b2b;--ei-stage-bg2:#243a57;--ei-stage-fg:#eff6ff;--ei-stage-muted:#bfd0e7;--ei-stage-line:rgba(191,208,231,.22);--ei-stage-accent:#f59e0b;--ei-stage-shadow:0 16px 38px rgba(16,27,43,.42);}
.ei-lobby-stage-sync-card.is-style-nasapunk:before{content:"";position:absolute;left:14px;right:14px;top:14px;height:1px;background:linear-gradient(90deg,transparent,rgba(245,158,11,.55),transparent);opacity:.8;z-index:1;}
.ei-lobby-stage-sync-card.is-style-steampunk_bronze{--ei-stage-bg:#2e2118;--ei-stage-bg2:#5b432c;--ei-stage-fg:#f6e7cb;--ei-stage-muted:#d7bf95;--ei-stage-line:rgba(214,164,103,.24);--ei-stage-accent:#b97a3d;--ei-stage-shadow:0 16px 38px rgba(29,18,12,.44);}
.ei-lobby-stage-sync-card.is-style-steampunk_bronze:before{content:"";position:absolute;right:12px;top:12px;width:28px;height:28px;border:2px solid rgba(185,122,61,.42);border-radius:50%;box-shadow:0 0 0 4px rgba(185,122,61,.14), inset 0 0 0 2px rgba(246,231,203,.08);pointer-events:none;z-index:1;}
.ei-lobby-stage-sync-card.is-style-windows{--ei-stage-bg:#f3f4f6;--ei-stage-bg2:#dfe4ea;--ei-stage-fg:#111827;--ei-stage-muted:#4b5563;--ei-stage-line:#9ca3af;--ei-stage-accent:#2563eb;--ei-stage-shadow:0 8px 16px rgba(17,24,39,.16);border:2px solid #9ca3af;border-radius:4px;box-shadow:0 0 0 1px #fff inset,2px 2px 0 rgba(0,0,0,.12),var(--ei-stage-shadow);}
.ei-lobby-stage-sync-card.is-style-mac{--ei-stage-bg:#f8fafc;--ei-stage-bg2:#eef2f7;--ei-stage-fg:#111827;--ei-stage-muted:#475569;--ei-stage-line:rgba(148,163,184,.28);--ei-stage-accent:#0ea5e9;--ei-stage-shadow:0 18px 34px rgba(15,23,42,.16);border-radius:18px;}
.ei-lobby-stage-sync-card.is-style-mac:before{content:"";position:absolute;left:12px;top:12px;width:8px;height:8px;border-radius:50%;background:#ff5f57;box-shadow:14px 0 0 #febc2e,28px 0 0 #28c840;pointer-events:none;z-index:2;}
.ei-lobby-stage-sync-card.is-style-wabisabi{--ei-stage-bg:#ece8df;--ei-stage-bg2:#ddd6c9;--ei-stage-fg:#40362d;--ei-stage-muted:#7a6c5e;--ei-stage-line:rgba(64,54,45,.16);--ei-stage-accent:#8a6f4d;--ei-stage-shadow:0 12px 24px rgba(64,54,45,.12);border-radius:20px;}

/* legacy aliases */
.ei-lobby-stage-sync-card.is-style-glass{--ei-stage-bg:rgba(213,232,255,.78);--ei-stage-bg2:rgba(164,204,255,.34);--ei-stage-fg:#10233d;--ei-stage-muted:#36506f;--ei-stage-line:rgba(255,255,255,.58);--ei-stage-accent:#3b82f6;--ei-stage-shadow:0 14px 30px rgba(59,130,246,.18);backdrop-filter:blur(14px) saturate(1.18);}
.ei-lobby-stage-sync-card.is-style-ink{--ei-stage-bg:#f4efe2;--ei-stage-bg2:#e6dcc6;--ei-stage-fg:#2f241c;--ei-stage-muted:#6b5744;--ei-stage-line:rgba(90,69,49,.16);--ei-stage-accent:#8b1e2d;--ei-stage-shadow:0 12px 28px rgba(47,36,28,.18);border-radius:10px;background-image:linear-gradient(145deg,var(--ei-stage-bg),var(--ei-stage-bg2)),radial-gradient(rgba(0,0,0,.03) 1px,transparent 1px);background-size:auto,6px 6px;}
.ei-lobby-stage-sync-card.is-style-zhugold{--ei-stage-bg:#5b0f14;--ei-stage-bg2:#8e1d24;--ei-stage-fg:#fff3c4;--ei-stage-muted:#f2d28c;--ei-stage-line:rgba(255,220,130,.28);--ei-stage-accent:#f4bf57;--ei-stage-shadow:0 16px 38px rgba(77,9,13,.42);}
.ei-lobby-stage-sync-card.is-style-cyber{--ei-stage-bg:#120015;--ei-stage-bg2:#22103d;--ei-stage-fg:#f7e8ff;--ei-stage-muted:#ff9df6;--ei-stage-line:rgba(255,0,255,.22);--ei-stage-accent:#00eaff;--ei-stage-accent2:#ff00a8;--ei-stage-shadow:0 0 0 1px rgba(0,234,255,.18),0 0 28px rgba(255,0,168,.18),0 18px 42px rgba(0,0,0,.45);}
.ei-lobby-stage-sync-card.is-style-cyber:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(0,234,255,.10),transparent);transform:translateX(-120%);animation:eiStageSweep 3.2s infinite;z-index:1;pointer-events:none;}

.ei-lobby-stage-sync-card.is-effect-glow{box-shadow:var(--ei-stage-shadow),0 0 24px color-mix(in srgb,var(--ei-stage-accent) 38%, transparent);}
.ei-lobby-stage-sync-card.is-effect-pulse{animation:eiStagePulse 1.9s infinite ease-in-out;}
.ei-lobby-stage-sync-card.is-effect-float{animation:eiStageFloat 2.4s infinite ease-in-out;}
.ei-lobby-stage-sync-card.is-effect-alert{animation:eiStageAlert 1.1s infinite steps(2,end);}
.ei-lobby-stage-sync-card.is-effect-scan:after{content:"";position:absolute;left:0;right:0;top:-30%;height:32%;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--ei-stage-accent) 20%,transparent),transparent);animation:eiStageScan 2.4s infinite linear;z-index:1;pointer-events:none;}
@keyframes eiStagePulse{0%,100%{filter:brightness(1);transform:scale(1)}50%{filter:brightness(1.08);transform:scale(1.015)}}
@keyframes eiStageFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes eiStageAlert{0%,100%{filter:brightness(1)}50%{filter:brightness(1.18)}}
@keyframes eiStageScan{0%{transform:translateY(-20%)}100%{transform:translateY(430%)}}
@keyframes eiStageSweep{0%{transform:translateX(-120%)}45%,100%{transform:translateX(120%)}}

@media (max-width:640px){
  .ei-lobby-stage-sync-card{padding:12px;border-radius:14px;min-width:140px;}
  .ei-lobby-stage-sync-card.is-context-modal .ei-lobby-stage-sync-row,
  .ei-lobby-stage-sync-row{grid-template-columns:1fr;gap:2px;}
}


/* v0.4.136: 場景任務提示框可顯示於全畫面上方，右側欄不再依賴社交模式 */
.ei-lobby-top-stage-hint{
  width:100%;
  min-width:0;
  margin:0 0 12px;
  display:block;
}
.ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-context-top{
  width:100%;
  max-width:none;
  margin:0;
}
.ei-lobby-stage-sync-card.is-context-top .ei-lobby-stage-sync-row{
  grid-template-columns:minmax(110px,.22fr) minmax(0,1fr);
}
.ei-lobby-panel.is-stage-hint-only{
  gap:0;
}
.ei-lobby-panel.is-stage-hint-only .ei-lobby-side-stage-hint{
  margin:0;
}
@media(max-width:860px){
  .ei-lobby-stage-sync-card.is-context-top .ei-lobby-stage-sync-row{grid-template-columns:1fr;gap:2px;}
}

/* v0.4.135: Stage Sync 任務提示框可見性與右側欄版本 */
.ei-lobby-object.is-stage-sync-hint-object .ei-lobby-stage-sync-card,
.ei-lobby-object.is-stage-sync-hint-object .ei-lobby-stage-sync-card *,
.ei-lobby-object.is-stage-sync-hint-object.is-quiet .ei-lobby-stage-sync-card,
.ei-lobby-object.is-stage-sync-hint-object.is-quiet .ei-lobby-stage-sync-card *{
  opacity:1!important;
  visibility:visible!important;
}
.ei-lobby-object.is-stage-sync-hint-object.is-quiet .ei-lobby-stage-sync-card :where(span,strong,em,small,div,a),
.ei-lobby-object.is-stage-sync-hint-object .ei-lobby-stage-sync-card :where(span,strong,em,small,div,a){
  transform:none!important;
}
.ei-lobby-object.is-stage-sync-hint-object .ei-lobby-stage-sync-card-head .ei-lobby-stage-sync-kicker{
  display:inline-flex!important;
}
.ei-lobby-object.is-stage-sync-hint-object .ei-lobby-stage-sync-card-head strong{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
}
.ei-lobby-side-stage-hint{
  width:100%;
  min-width:0;
  display:block;
}
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side{
  width:100%;
  max-width:100%;
  min-width:0;
  margin:0;
  padding:14px 14px;
  gap:8px;
}
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side .ei-lobby-stage-sync-card-head strong{
  font-size:15px!important;
  line-height:1.3!important;
}
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side .ei-lobby-stage-sync-row{
  grid-template-columns:minmax(64px,.40fr) minmax(0,1fr);
  gap:8px;
  padding:6px 0;
}
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side .ei-lobby-stage-sync-row span,
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side .ei-lobby-stage-sync-row strong,
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side .ei-lobby-stage-sync-intro,
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side .ei-lobby-stage-sync-custom,
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side .ei-lobby-stage-sync-empty{
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  word-break:break-word!important;
}
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side .ei-lobby-stage-sync-action{
  max-width:100%;
  white-space:normal;
  text-align:center;
}
@media(max-width:860px){
  .ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side .ei-lobby-stage-sync-row{grid-template-columns:minmax(72px,.32fr) minmax(0,1fr);}
}
@media(max-width:640px){
  .ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side .ei-lobby-stage-sync-row{grid-template-columns:1fr;gap:2px;}
}

/* v0.4.138: Stage Sync 任務提示框自適應與自訂內容顯示修正 */
.ei-lobby-stage-sync-card{
  width:100%;
  max-width:100%;
  min-width:0;
}
.ei-lobby-stage-sync-card-head,
.ei-lobby-stage-sync-intro,
.ei-lobby-stage-sync-body,
.ei-lobby-stage-sync-custom,
.ei-lobby-stage-sync-empty{
  min-width:0;
  max-width:100%;
  overflow:visible;
  white-space:normal!important;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.ei-lobby-stage-sync-custom.is-extra-custom{
  margin-top:4px;
  padding-top:9px;
  border-top:1px solid var(--ei-stage-line);
  color:var(--ei-stage-fg)!important;
}
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side .ei-lobby-stage-sync-body{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side .ei-lobby-stage-sync-row{
  display:flex!important;
  flex-direction:column!important;
  grid-template-columns:none!important;
  gap:2px!important;
  min-width:0!important;
}
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side .ei-lobby-stage-sync-row span,
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side .ei-lobby-stage-sync-row strong{
  width:100%;
  max-width:100%;
  min-width:0;
  display:block!important;
}
.ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-context-top .ei-lobby-stage-sync-body{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:0 18px;
  align-items:start;
}
.ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-context-top .ei-lobby-stage-sync-row{
  grid-template-columns:minmax(86px,.34fr) minmax(0,1fr);
  min-width:0;
}
.ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-context-top .ei-lobby-stage-sync-custom,
.ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-context-top .ei-lobby-stage-sync-empty,
.ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-context-top.is-template-custom .ei-lobby-stage-sync-custom{
  grid-column:1 / -1;
}
.ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-context-top.is-template-custom .ei-lobby-stage-sync-body{
  grid-template-columns:1fr;
}
@media(max-width:640px){
  .ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-context-top .ei-lobby-stage-sync-body{grid-template-columns:1fr;}
  .ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-context-top .ei-lobby-stage-sync-row{grid-template-columns:1fr;gap:2px;}
}


/* v0.4.139: Stage Sync 任務提示框防裁切修正
   - 場景內互動物件版不再用固定高度裁切內容。
   - 場景上方 / 右側欄版停用會造成邊緣超出容器的 scale / translate 變形。
   - 所有 Stage Sync 提示框容器允許內容自然長高與換行。 */
.ei-lobby-object.is-stage-sync-hint-object{
  overflow:visible!important;
  min-width:0!important;
  min-height:0!important;
}
.ei-lobby-object.is-stage-sync-hint-object .ei-lobby-stage-sync-card{
  height:auto!important;
  min-height:100%!important;
  max-height:none!important;
  overflow:visible!important;
}
.ei-lobby-object.is-stage-sync-hint-object .ei-lobby-stage-sync-body,
.ei-lobby-object.is-stage-sync-hint-object .ei-lobby-stage-sync-row,
.ei-lobby-object.is-stage-sync-hint-object .ei-lobby-stage-sync-intro,
.ei-lobby-object.is-stage-sync-hint-object .ei-lobby-stage-sync-custom,
.ei-lobby-object.is-stage-sync-hint-object .ei-lobby-stage-sync-empty{
  max-height:none!important;
  overflow:visible!important;
}
.ei-lobby-top-stage-hint,
.ei-lobby-side-stage-hint{
  overflow:visible!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  contain:none!important;
}
.ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-context-top,
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  max-height:none!important;
  overflow:visible!important;
  transform:none!important;
}
.ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-context-top.is-effect-pulse,
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side.is-effect-pulse{
  animation:eiStagePulseContained 1.9s infinite ease-in-out!important;
}
.ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-context-top.is-effect-float,
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side.is-effect-float{
  animation:eiStageFloatContained 2.4s infinite ease-in-out!important;
}
@keyframes eiStagePulseContained{
  0%,100%{filter:brightness(1);}
  50%{filter:brightness(1.08);box-shadow:var(--ei-stage-shadow),0 0 22px color-mix(in srgb,var(--ei-stage-accent) 34%, transparent);}
}
@keyframes eiStageFloatContained{
  0%,100%{filter:brightness(1);}
  50%{filter:brightness(1.06);}
}
.ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-context-top *,
.ei-lobby-side-stage-hint .ei-lobby-stage-sync-card.is-context-side *,
.ei-lobby-object.is-stage-sync-hint-object .ei-lobby-stage-sync-card *{
  max-width:100%!important;
}


/* v0.4.140: Stage Sync 場景上方提示框改成和歡迎框同一種流式盒模型。
   先前卡片本體 width:100% 但 box-sizing 仍是 content-box，padding / border 會把實際寬度撐超過容器，
   在外層或頁面邊界處看起來就像右側被切掉。這版不再讓上方提示框用 100% + padding 溢出模型。 */
.ei-lobby .ei-lobby-top-stage-hint{
  display:block!important;
  width:auto!important;
  max-width:100%!important;
  min-width:0!important;
  margin:12px 0!important;
  padding:0!important;
  overflow:visible!important;
  box-sizing:border-box!important;
}
.ei-lobby .ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-context-top{
  display:flex!important;
  width:auto!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.ei-lobby .ei-lobby-stage-sync-card,
.ei-lobby .ei-lobby-stage-sync-card::before,
.ei-lobby .ei-lobby-stage-sync-card::after{
  box-sizing:border-box!important;
}
.ei-lobby .ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-style-rpg_gold::before{
  inset:6px!important;
  max-width:calc(100% - 12px)!important;
  box-sizing:border-box!important;
}
.ei-lobby .ei-lobby-top-stage-hint .ei-lobby-stage-sync-card.is-effect-scan::after{
  left:0!important;
  right:0!important;
  width:auto!important;
  max-width:100%!important;
}

/* v0.4.141: Stage Sync 任務提示框動態效果修復
   v0.4.139/0.4.140 為了修右側裁切，把 top/side 卡片的 transform 鎖住，導致脈衝、浮動、微發光在視覺上等於失效。
   這版改成「不改變外盒尺寸」的安全動畫：
   - glow / pulse：只改 filter 與 box-shadow，不會撐爆容器。
   - float：外盒不移動，改讓內部內容輕微上下浮動，保留流式盒模型。
*/
.ei-lobby .ei-lobby-stage-sync-card.is-effect-glow{
  animation:eiStageGlowBreathSafe 1.75s ease-in-out infinite alternate!important;
}
.ei-lobby .ei-lobby-stage-sync-card.is-effect-pulse{
  animation:eiStagePulseSafe 1.35s ease-in-out infinite!important;
}
.ei-lobby .ei-lobby-stage-sync-card.is-effect-float{
  animation:eiStageFloatShadowSafe 2.4s ease-in-out infinite!important;
}
.ei-lobby .ei-lobby-stage-sync-card.is-effect-float .ei-lobby-stage-sync-card-head,
.ei-lobby .ei-lobby-stage-sync-card.is-effect-float .ei-lobby-stage-sync-intro,
.ei-lobby .ei-lobby-stage-sync-card.is-effect-float .ei-lobby-stage-sync-body,
.ei-lobby .ei-lobby-stage-sync-card.is-effect-float .ei-lobby-stage-sync-action{
  animation:eiStageInnerFloatSafe 2.4s ease-in-out infinite!important;
  will-change:transform;
}
@keyframes eiStageGlowBreathSafe{
  0%{filter:brightness(1);box-shadow:var(--ei-stage-shadow),0 0 10px color-mix(in srgb,var(--ei-stage-accent) 22%, transparent),inset 0 0 0 1px color-mix(in srgb,var(--ei-stage-accent) 10%, transparent);}
  100%{filter:brightness(1.08);box-shadow:var(--ei-stage-shadow),0 0 28px color-mix(in srgb,var(--ei-stage-accent) 48%, transparent),inset 0 0 22px color-mix(in srgb,var(--ei-stage-accent) 12%, transparent);}
}
@keyframes eiStagePulseSafe{
  0%,100%{filter:brightness(1);box-shadow:var(--ei-stage-shadow),0 0 0 0 color-mix(in srgb,var(--ei-stage-accent) 0%, transparent),inset 0 0 0 1px color-mix(in srgb,var(--ei-stage-accent) 8%, transparent);}
  45%{filter:brightness(1.12);box-shadow:var(--ei-stage-shadow),0 0 0 5px color-mix(in srgb,var(--ei-stage-accent) 22%, transparent),0 0 26px color-mix(in srgb,var(--ei-stage-accent) 38%, transparent),inset 0 0 18px color-mix(in srgb,var(--ei-stage-accent) 10%, transparent);}
}
@keyframes eiStageFloatShadowSafe{
  0%,100%{filter:brightness(1);box-shadow:var(--ei-stage-shadow);}
  50%{filter:brightness(1.06);box-shadow:var(--ei-stage-shadow),0 12px 28px color-mix(in srgb,var(--ei-stage-accent) 18%, transparent);}
}
@keyframes eiStageInnerFloatSafe{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-4px);}
}
@media (prefers-reduced-motion: reduce){
  .ei-lobby .ei-lobby-stage-sync-card.is-effect-glow,
  .ei-lobby .ei-lobby-stage-sync-card.is-effect-pulse,
  .ei-lobby .ei-lobby-stage-sync-card.is-effect-float,
  .ei-lobby .ei-lobby-stage-sync-card.is-effect-float .ei-lobby-stage-sync-card-head,
  .ei-lobby .ei-lobby-stage-sync-card.is-effect-float .ei-lobby-stage-sync-intro,
  .ei-lobby .ei-lobby-stage-sync-card.is-effect-float .ei-lobby-stage-sync-body,
  .ei-lobby .ei-lobby-stage-sync-card.is-effect-float .ei-lobby-stage-sync-action{
    animation:none!important;
  }
}


/* v0.4.142: Stage Sync 任務提示框脈衝可見度與小標籤自訂修正
   先前 top / side 版為了避免裁切，脈衝不能再使用 scale，導致光感太弱。
   這裡改用「盒內亮框 + 外圈光暈」的安全脈衝，不改變卡片尺寸。 */
.ei-lobby .ei-lobby-stage-sync-card.is-context-top.is-effect-pulse,
.ei-lobby .ei-lobby-stage-sync-card.is-context-side.is-effect-pulse,
.ei-lobby .ei-lobby-stage-sync-card.is-context-modal.is-effect-pulse{
  animation:eiStagePulseStrongBox 1.2s ease-in-out infinite!important;
}
.ei-lobby .ei-lobby-stage-sync-card.is-context-top.is-effect-pulse::after,
.ei-lobby .ei-lobby-stage-sync-card.is-context-side.is-effect-pulse::after,
.ei-lobby .ei-lobby-stage-sync-card.is-context-modal.is-effect-pulse::after{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:inherit;
  pointer-events:none;
  z-index:1;
  border:2px solid rgba(255,210,94,.45);
  box-shadow:0 0 18px rgba(255,190,70,.35), inset 0 0 16px rgba(255,210,94,.20);
  opacity:.35;
  animation:eiStagePulseStrongRing 1.2s ease-in-out infinite!important;
}
.ei-lobby .ei-lobby-stage-sync-card.is-style-cyber.is-effect-pulse::after,
.ei-lobby .ei-lobby-stage-sync-card.is-style-terminal.is-effect-pulse::after{
  border-color:rgba(85,235,255,.55);
  box-shadow:0 0 20px rgba(34,211,238,.45), inset 0 0 18px rgba(34,211,238,.22);
}
.ei-lobby .ei-lobby-stage-sync-card.is-style-cute_pink.is-effect-pulse::after{
  border-color:rgba(255,106,180,.55);
  box-shadow:0 0 20px rgba(219,39,119,.42), inset 0 0 18px rgba(219,39,119,.18);
}
@keyframes eiStagePulseStrongBox{
  0%,100%{filter:brightness(1);box-shadow:var(--ei-stage-shadow),0 0 8px rgba(255,200,74,.10), inset 0 0 0 1px rgba(255,214,110,.16);}
  50%{filter:brightness(1.18) saturate(1.12);box-shadow:var(--ei-stage-shadow),0 0 30px rgba(255,196,70,.58),0 0 54px rgba(255,196,70,.22), inset 0 0 24px rgba(255,214,110,.22);}
}
@keyframes eiStagePulseStrongRing{
  0%,100%{opacity:.25;filter:brightness(1);}
  50%{opacity:.95;filter:brightness(1.25);}
}
@media (prefers-reduced-motion: reduce){
  .ei-lobby .ei-lobby-stage-sync-card.is-context-top.is-effect-pulse::after,
  .ei-lobby .ei-lobby-stage-sync-card.is-context-side.is-effect-pulse::after,
  .ei-lobby .ei-lobby-stage-sync-card.is-context-modal.is-effect-pulse::after{animation:none!important;}
}

/* v0.4.143 Scene Player Status HUD bridge */
.ei-lobby-top-player-hud,
.ei-lobby-side-player-hud{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  margin:0 0 14px;
  overflow:visible;
}
.ei-lobby-top-player-hud{
  display:block;
}
.ei-lobby-player-status-hud{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  overflow:visible;
}
.ei-lobby-player-status-hud-title{
  margin:0 0 8px;
  font-weight:800;
  color:#eaf7ff;
  letter-spacing:.04em;
  text-shadow:0 1px 4px rgba(0,0,0,.45);
}
.ei-lobby-player-status-hud-body,
.ei-lobby-player-status-hud-body > *{
  max-width:100%;
  box-sizing:border-box;
}
.ei-lobby-player-status-hud-empty{
  padding:12px 14px;
  border:1px solid rgba(255,216,97,.42);
  border-radius:14px;
  background:rgba(8,17,32,.72);
  color:#f8e5a6;
  box-sizing:border-box;
}
.ei-lobby-side-player-hud .ei-psh-card,
.ei-lobby-side-player-hud .ei-psh-compact,
.ei-lobby-side-player-hud .ei-psh-profile,
.ei-lobby-side-player-hud .ei-psh-character-only,
.ei-lobby-side-player-hud .ei-status-card,
.ei-lobby-side-player-hud [class*="ei-psh"]{
  max-width:100% !important;
  box-sizing:border-box;
}
.ei-lobby-top-player-hud .ei-psh-card,
.ei-lobby-top-player-hud .ei-psh-compact,
.ei-lobby-top-player-hud .ei-psh-profile,
.ei-lobby-top-player-hud .ei-psh-character-only,
.ei-lobby-top-player-hud .ei-status-card,
.ei-lobby-top-player-hud [class*="ei-psh"]{
  max-width:100% !important;
  box-sizing:border-box;
}
@media (max-width: 760px){
  .ei-lobby-top-player-hud,
  .ei-lobby-side-player-hud{ margin-bottom:10px; }
}


/* v0.4.146: EI Player Status HUD interactive object */
.ei-lobby-object.is-player-status-hud-object{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  overflow:visible!important;
  align-items:stretch!important;
  justify-content:stretch!important;
  color:inherit!important;
}
.ei-lobby-object.is-player-status-hud-object:hover{
  background:transparent!important;
  transform:translateY(-1px)!important;
}
.ei-lobby-object.is-player-status-hud-object .ei-lobby-player-status-hud{
  width:100%;
  height:100%;
  min-width:120px;
  min-height:42px;
  box-sizing:border-box;
  pointer-events:none;
}
.ei-lobby-object.is-player-status-hud-object .ei-lobby-player-status-hud-body,
.ei-lobby-object.is-player-status-hud-object .ei-lobby-player-status-hud-body > *{
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.ei-lobby-object.is-player-status-hud-object .ei-lobby-player-status-hud-title{
  margin-bottom:6px;
  font-weight:800;
  font-size:13px;
}
.ei-lobby-object.is-player-status-hud-object .ei-psh-compact,
.ei-lobby-object.is-player-status-hud-object .ei-psh-card,
.ei-lobby-object.is-player-status-hud-object .ei-psh-profile,
.ei-lobby-object.is-player-status-hud-object .ei-psh-character-only,
.ei-lobby-object.is-player-status-hud-object [class*="ei-psh"]{
  max-width:100%!important;
  box-sizing:border-box!important;
}


/* v0.4.147: Player Status HUD object visibility and one-line light HUD */
.ei-lobby-object.is-player-status-hud-object,
.ei-lobby-object.is-player-status-hud-object:hover{
  overflow:visible!important;
}
.ei-lobby-object.is-player-status-hud-object .ei-lobby-player-status-hud,
.ei-lobby-object.is-player-status-hud-object .ei-lobby-player-status-hud *,
.ei-lobby-object.is-player-status-hud-object.is-quiet .ei-lobby-player-status-hud,
.ei-lobby-object.is-player-status-hud-object.is-quiet .ei-lobby-player-status-hud *{
  opacity:1!important;
  visibility:visible!important;
}
.ei-lobby-object.is-player-status-hud-object.is-quiet .ei-lobby-player-status-hud :where(span,strong,em,small,div,a),
.ei-lobby-object.is-player-status-hud-object .ei-lobby-player-status-hud :where(span,strong,em,small,div,a){
  transform:none!important;
}
.ei-lobby-object.is-player-status-hud-object .ei-lobby-player-status-hud.is-type-hud,
.ei-lobby-object.is-player-status-hud-object .ei-lobby-player-status-hud.is-type-hud .ei-lobby-player-status-hud-body{
  width:max-content!important;
  max-width:none!important;
  min-width:max-content!important;
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
  display:block!important;
}
.ei-lobby-object.is-player-status-hud-object .ei-lobby-player-status-hud.is-type-hud .ei-psh-compact,
.ei-lobby-object.is-player-status-hud-object .ei-lobby-player-status-hud.is-type-hud .ei-psh-compact.ei-lobby-psh-hud{
  display:inline-flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  width:max-content!important;
  max-width:none!important;
  min-width:max-content!important;
  white-space:nowrap!important;
  overflow:visible!important;
}
.ei-lobby-object.is-player-status-hud-object .ei-lobby-player-status-hud.is-type-hud .ei-psh-compact > *,
.ei-lobby-object.is-player-status-hud-object .ei-lobby-player-status-hud.is-type-hud .ei-psh-compact span,
.ei-lobby-object.is-player-status-hud-object .ei-lobby-player-status-hud.is-type-hud .ei-psh-compact a{
  white-space:nowrap!important;
  flex:0 0 auto!important;
}


/* v0.4.154: Lobby 端強制保護輕量 HUD 欄位顯示，避免 HUD 外掛舊解析仍輸出全部 */
.ei-lobby-player-status-hud.is-hide-badge .ei-psh-compact-badge{display:none!important;}
.ei-lobby-player-status-hud.is-hide-points .ei-psh-compact-points{display:none!important;}
.ei-lobby-player-status-hud.is-hide-unread .ei-psh-compact-unread{display:none!important;}
.ei-lobby-player-status-hud.is-hide-user .ei-psh-compact-user{display:none!important;}
.ei-lobby-object.is-click-disabled{cursor:default!important;pointer-events:none!important;}
.ei-lobby-object.is-click-no-action{cursor:default!important;}

/* v0.4.157 entry lock, custom modal, moving NPC, first-tip image fixes */
.ei-lobby-entry-lock,.ei-lobby-custom-object-modal{padding:28px;border-radius:20px;text-align:center;max-width:620px;margin:auto}.ei-lobby-entry-lock.is-rpg_gold,.ei-lobby-custom-object-modal.is-rpg_gold{background:linear-gradient(145deg,#21190d,#0e0b07);border:2px solid #d6ad55;color:#fff4cf;box-shadow:0 18px 60px #0008}.ei-lobby-entry-lock.is-minimal,.ei-lobby-custom-object-modal.is-minimal{background:#fff;color:#172033;border:1px solid #d9e0ea}.ei-lobby-entry-lock.is-glass,.ei-lobby-custom-object-modal.is-glass{background:#17243cdd;color:#fff;border:1px solid #ffffff55;backdrop-filter:blur(18px)}.ei-lobby-entry-lock.is-parchment,.ei-lobby-custom-object-modal.is-parchment{background:#efe0b8;color:#3d2b18;border:3px double #8c6a32}.ei-lobby-entry-lock.is-neon,.ei-lobby-custom-object-modal.is-neon{background:#090d18;color:#d9fbff;border:1px solid #36e8ff;box-shadow:0 0 30px #36e8ff55}.ei-lobby-custom-object-modal.is-pixel{background:#1b2030;color:#fff;border:4px solid #fff;box-shadow:8px 8px 0 #000}.ei-lobby-custom-object-modal.is-cute{background:#fff1f6;color:#65344c;border:2px solid #ffb5d0}.ei-lobby-custom-object-icon{max-width:150px;max-height:150px;object-fit:contain;margin:0 auto 14px}.ei-lobby-custom-object-text{line-height:1.8;margin:16px 0}.ei-lobby-custom-object-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.ei-lobby-custom-object-countdown{margin-top:14px;opacity:.75}.ei-lobby-object.is-npc-walking{z-index:8}.ei-lobby-object[data-ei-firstfx="1"]{overflow:visible!important}.ei-lobby-object[data-ei-firstfx="1"] .ei-firstfx-bubble{z-index:9999;max-width:min(280px,70vw);white-space:normal}.ei-lobby-object[data-ei-firstfx="1"] .ei-firstfx-marker{z-index:10000;pointer-events:none}.ei-lobby-object[data-ei-firstfx="1"] img{position:relative;z-index:1}


/* v0.4.159: 首次提示改為場景級獨立覆蓋層，不再參與物件本身排版。 */
.ei-firstfx-object-overlay{display:block;overflow:visible!important;contain:none!important}
.ei-firstfx-object-overlay>.ei-firstfx-marker,.ei-firstfx-object-overlay>.ei-firstfx-bubble{position:absolute!important;display:flex!important;visibility:visible!important;opacity:1!important}
.ei-firstfx-object-overlay>.ei-firstfx-bubble{z-index:2;max-width:min(280px,70vw);white-space:normal;word-break:break-word}
.ei-firstfx-object-overlay>.ei-firstfx-marker{z-index:3}
.ei-lobby-entry-lock-conditions-ui{border:1px solid #d9e2ec;border-radius:14px;padding:14px;background:#fff}
.ei-lobby-entry-lock-condition-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.ei-entry-lock-condition-row{margin:0 0 12px;padding:14px;border:1px solid #d9e2ec;border-radius:12px;background:#f8fafc}

/* v0.4.160: first-tip is a viewport overlay; never participates in object layout or scene clipping. */
body > .ei-firstfx-object-overlay{position:fixed!important;display:block!important;overflow:visible!important;contain:none!important;pointer-events:none!important;z-index:2147483000!important;transform:none!important;margin:0!important;padding:0!important;}
body > .ei-firstfx-object-overlay > .ei-firstfx-marker,
body > .ei-firstfx-object-overlay > .ei-firstfx-bubble{display:flex!important;visibility:visible!important;opacity:1!important;pointer-events:none!important;}
body > .ei-firstfx-object-overlay > .ei-firstfx-bubble{min-width:120px!important;max-width:min(300px,78vw)!important;width:max-content!important;white-space:normal!important;overflow:visible!important;}
.ei-lobby-object.is-npc-walking{will-change:left,top;}


/* v0.4.161：互動物件 EI 首次提示真正隔離。
   互動物件維持原本 absolute 座標；圖示與氣泡完全由 body overlay 顯示。 */
.ei-lobby-object[data-ei-firstfx="1"]{position:absolute!important;}
body > .ei-firstfx-object-overlay > .ei-firstfx-marker{
  position:absolute!important;z-index:3!important;box-sizing:border-box!important;
  pointer-events:none!important;visibility:visible!important;opacity:1!important;
}
body > .ei-firstfx-object-overlay > .ei-firstfx-marker.is-arrow{
  width:36px!important;min-width:36px!important;height:36px!important;padding:0!important;
  border-radius:999px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
  background:linear-gradient(180deg,#fff5a8 0%,#ffc533 48%,#f59e0b 100%)!important;
  border:3px solid rgba(255,255,255,.98)!important;color:#3a2300!important;
  box-shadow:0 0 0 3px rgba(255,211,72,.35),0 9px 22px rgba(0,0,0,.28),inset 0 2px 0 rgba(255,255,255,.65),inset 0 -3px 0 rgba(146,64,14,.18)!important;
  font-size:0!important;line-height:1!important;
}
body > .ei-firstfx-object-overlay > .ei-firstfx-marker.is-arrow .ei-firstfx-marker-symbol{
  display:inline-block!important;width:auto!important;min-width:0!important;height:auto!important;padding:0!important;margin:0!important;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
  color:#3a2300!important;-webkit-text-fill-color:#3a2300!important;font-size:24px!important;font-weight:900!important;
  line-height:1!important;white-space:nowrap!important;overflow:visible!important;animation:eiFirstFxSoftNudge .85s ease-in-out infinite!important;
}
body > .ei-firstfx-object-overlay > .ei-firstfx-marker.ei-firstfx-alert-marker{
  width:34px!important;min-width:34px!important;height:30px!important;padding:0!important;margin:0!important;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;display:block!important;
  transform-origin:center!important;animation:eiLobbyAlertPop 950ms ease-in-out infinite alternate!important;
}
body > .ei-firstfx-object-overlay > .ei-firstfx-marker.ei-firstfx-alert-marker svg{
  display:block!important;width:34px!important;height:30px!important;overflow:visible!important;
  filter:drop-shadow(0 4px 6px rgba(0,0,0,.38))!important;
}
body > .ei-firstfx-object-overlay > .ei-firstfx-marker.ei-firstfx-alert-marker path{
  fill:#fff7ed!important;stroke:#f97316!important;stroke-width:4!important;stroke-linejoin:round!important;
}
body > .ei-firstfx-object-overlay > .ei-firstfx-marker.ei-firstfx-alert-marker text{
  font:900 34px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  fill:#ef4444!important;stroke:#7f1d1d!important;stroke-width:.9!important;paint-order:stroke!important;dominant-baseline:middle!important;
}
body > .ei-firstfx-object-overlay > .ei-firstfx-bubble{
  position:absolute!important;display:block!important;visibility:visible!important;opacity:1!important;z-index:2!important;
  min-width:120px!important;max-width:min(300px,78vw)!important;width:max-content!important;box-sizing:border-box!important;
  padding:9px 12px!important;border-radius:14px!important;background:rgba(17,24,39,.92)!important;color:#fff!important;
  border:1px solid rgba(255,255,255,.22)!important;box-shadow:0 12px 30px rgba(15,23,42,.32)!important;
  font:800 13px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  text-align:left!important;white-space:pre-wrap!important;word-break:break-word!important;overflow:visible!important;pointer-events:none!important;
}
body > .ei-firstfx-object-overlay > .ei-firstfx-bubble:after{border-top-color:rgba(17,24,39,.92)!important;}
body > .ei-firstfx-object-overlay > .ei-firstfx-bubble.is-bottom:after{border-top-color:transparent!important;border-bottom-color:rgba(17,24,39,.92)!important;}
body > .ei-firstfx-object-overlay > .ei-firstfx-bubble.is-left:after{border-top-color:transparent!important;border-left-color:rgba(17,24,39,.92)!important;}
body > .ei-firstfx-object-overlay > .ei-firstfx-bubble.is-right:after{border-top-color:transparent!important;border-right-color:rgba(17,24,39,.92)!important;}

/* v0.4.162: first-tip fixed nodes. These rules are intentionally independent
   from the legacy .ei-firstfx-marker/.ei-firstfx-bubble selectors. */
.ei-firstfx-fixed-marker,
.ei-firstfx-fixed-bubble{
  position:fixed!important;
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:none!important;
  box-sizing:border-box!important;
  margin:0!important;
  transform:none;
  z-index:2147483647!important;
}
.ei-firstfx-fixed-marker.is-exclaim{
  width:38px!important;
  height:34px!important;
  background:transparent!important;
  border:0!important;
  padding:0!important;
  overflow:visible!important;
  animation:eiLobbyAlertPop 950ms ease-in-out infinite alternate!important;
}
.ei-firstfx-fixed-marker.is-exclaim svg{
  display:block!important;
  width:38px!important;
  height:34px!important;
  overflow:visible!important;
  filter:drop-shadow(0 4px 7px rgba(0,0,0,.42))!important;
}
.ei-firstfx-fixed-marker.is-exclaim path{
  fill:#fff7ed!important;
  stroke:#f97316!important;
  stroke-width:4!important;
  stroke-linejoin:round!important;
}
.ei-firstfx-fixed-marker.is-exclaim text{
  font:900 34px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  fill:#ef4444!important;
  stroke:#7f1d1d!important;
  stroke-width:.9!important;
  paint-order:stroke!important;
  dominant-baseline:middle!important;
}
.ei-firstfx-fixed-marker.is-arrow{
  width:38px!important;
  height:38px!important;
  border-radius:999px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:linear-gradient(180deg,#fff5a8 0%,#ffc533 48%,#f59e0b 100%)!important;
  border:3px solid rgba(255,255,255,.98)!important;
  color:#3a2300!important;
  box-shadow:0 0 0 3px rgba(255,211,72,.35),0 9px 22px rgba(0,0,0,.28),inset 0 2px 0 rgba(255,255,255,.65),inset 0 -3px 0 rgba(146,64,14,.18)!important;
  padding:0!important;
}
.ei-firstfx-fixed-arrow-symbol{
  display:block!important;
  color:#3a2300!important;
  -webkit-text-fill-color:#3a2300!important;
  font:900 25px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  transform-origin:center!important;
  animation:eiFirstFxSoftNudge .85s ease-in-out infinite!important;
}
.ei-firstfx-fixed-bubble{
  min-width:120px!important;
  max-width:min(320px,78vw)!important;
  width:max-content!important;
  padding:10px 13px!important;
  border-radius:14px!important;
  background:rgba(17,24,39,.94)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.24)!important;
  box-shadow:0 14px 34px rgba(15,23,42,.38)!important;
  font:800 13px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  text-align:left!important;
  white-space:pre-wrap!important;
  word-break:break-word!important;
  overflow:visible!important;
}
@media(max-width:640px){
  .ei-firstfx-fixed-bubble{max-width:min(260px,82vw)!important;font-size:12px!important;padding:9px 11px!important;}
  .ei-firstfx-fixed-marker.is-exclaim{width:34px!important;height:30px!important;}
  .ei-firstfx-fixed-marker.is-exclaim svg{width:34px!important;height:30px!important;}
  .ei-firstfx-fixed-marker.is-arrow{width:34px!important;height:34px!important;}
}

/* v0.4.163: EI 首次提示漫畫氣泡四方向尖端。
   氣泡在右側時尖端位於左側；在上方時尖端位於下方，其餘方向依此類推。 */
.ei-firstfx-fixed-bubble::before,
.ei-firstfx-fixed-bubble::after{
  content:""!important;
  position:absolute!important;
  display:block!important;
  width:0!important;
  height:0!important;
  pointer-events:none!important;
  z-index:1!important;
}
.ei-firstfx-fixed-bubble.is-right::before{
  left:-13px!important;top:var(--ei-firstfx-tip-y,50%)!important;transform:translateY(-50%)!important;
  border-style:solid!important;border-width:11px 13px 11px 0!important;
  border-color:transparent rgba(255,255,255,.30) transparent transparent!important;
}
.ei-firstfx-fixed-bubble.is-right::after{
  left:-11px!important;top:var(--ei-firstfx-tip-y,50%)!important;transform:translateY(-50%)!important;
  border-style:solid!important;border-width:10px 12px 10px 0!important;
  border-color:transparent rgba(17,24,39,.94) transparent transparent!important;
}
.ei-firstfx-fixed-bubble.is-left::before{
  right:-13px!important;top:var(--ei-firstfx-tip-y,50%)!important;transform:translateY(-50%)!important;
  border-style:solid!important;border-width:11px 0 11px 13px!important;
  border-color:transparent transparent transparent rgba(255,255,255,.30)!important;
}
.ei-firstfx-fixed-bubble.is-left::after{
  right:-11px!important;top:var(--ei-firstfx-tip-y,50%)!important;transform:translateY(-50%)!important;
  border-style:solid!important;border-width:10px 0 10px 12px!important;
  border-color:transparent transparent transparent rgba(17,24,39,.94)!important;
}
.ei-firstfx-fixed-bubble.is-top::before{
  left:var(--ei-firstfx-tip-x,50%)!important;bottom:-13px!important;transform:translateX(-50%)!important;
  border-style:solid!important;border-width:13px 11px 0 11px!important;
  border-color:rgba(255,255,255,.30) transparent transparent transparent!important;
}
.ei-firstfx-fixed-bubble.is-top::after{
  left:var(--ei-firstfx-tip-x,50%)!important;bottom:-11px!important;transform:translateX(-50%)!important;
  border-style:solid!important;border-width:12px 10px 0 10px!important;
  border-color:rgba(17,24,39,.94) transparent transparent transparent!important;
}
.ei-firstfx-fixed-bubble.is-bottom::before{
  left:var(--ei-firstfx-tip-x,50%)!important;top:-13px!important;transform:translateX(-50%)!important;
  border-style:solid!important;border-width:0 11px 13px 11px!important;
  border-color:transparent transparent rgba(255,255,255,.30) transparent!important;
}
.ei-firstfx-fixed-bubble.is-bottom::after{
  left:var(--ei-firstfx-tip-x,50%)!important;top:-11px!important;transform:translateX(-50%)!important;
  border-style:solid!important;border-width:0 10px 12px 10px!important;
  border-color:transparent transparent rgba(17,24,39,.94) transparent!important;
}



/* v0.4.165: per-object stacking relative to the player avatar layer. */
.ei-lobby-stage .ei-lobby-object.is-player-layer-below,
.ei-lobby-stage .ei-lobby-object.is-npc-walking.is-player-layer-below{
  z-index:14!important;
}
.ei-lobby-stage .ei-lobby-object.is-player-layer-above,
.ei-lobby-stage .ei-lobby-object.is-npc-walking.is-player-layer-above{
  z-index:28!important;
}


/* v0.4.167: custom-object modal themes own the complete popup surface.
   The inner content panel is transparent so the selected style no longer appears as a box inside a white box. */
.ei-lobby-modal.is-custom-object-modal{
  --ei-custom-modal-bg:#ffffff;
  --ei-custom-modal-text:#172033;
  --ei-custom-modal-muted:#475569;
  --ei-custom-modal-border:#d9e0ea;
  --ei-custom-modal-accent:#2563eb;
  --ei-custom-modal-button-bg:#172033;
  --ei-custom-modal-button-text:#ffffff;
  --ei-custom-modal-close-bg:rgba(15,23,42,.08);
  --ei-custom-modal-close-text:#172033;
  background:rgba(8,13,28,.68)!important;
  backdrop-filter:blur(7px) saturate(1.06)!important;
  -webkit-backdrop-filter:blur(7px) saturate(1.06)!important;
}
.ei-lobby-modal.is-custom-object-modal.is-custom-style-minimal{
  --ei-custom-modal-bg:linear-gradient(180deg,#ffffff,#f8fafc);
  --ei-custom-modal-text:#172033;--ei-custom-modal-muted:#475569;--ei-custom-modal-border:#d9e0ea;
  --ei-custom-modal-accent:#2563eb;--ei-custom-modal-button-bg:#172033;--ei-custom-modal-button-text:#ffffff;
  --ei-custom-modal-close-bg:#e8edf4;--ei-custom-modal-close-text:#172033;
}
.ei-lobby-modal.is-custom-object-modal.is-custom-style-glass{
  --ei-custom-modal-bg:linear-gradient(145deg,rgba(28,45,74,.93),rgba(8,18,38,.88));
  --ei-custom-modal-text:#f4fbff;--ei-custom-modal-muted:#c7def0;--ei-custom-modal-border:rgba(170,225,255,.52);
  --ei-custom-modal-accent:#7ddcff;--ei-custom-modal-button-bg:rgba(125,220,255,.20);--ei-custom-modal-button-text:#f4fbff;
  --ei-custom-modal-close-bg:rgba(255,255,255,.13);--ei-custom-modal-close-text:#f4fbff;
}
.ei-lobby-modal.is-custom-object-modal.is-custom-style-rpg_gold{
  --ei-custom-modal-bg:radial-gradient(circle at 50% 0%,rgba(122,82,26,.26),transparent 38%),linear-gradient(145deg,#21190d,#0e0b07 72%);
  --ei-custom-modal-text:#fff4cf;--ei-custom-modal-muted:#e8d6a5;--ei-custom-modal-border:#d6ad55;
  --ei-custom-modal-accent:#f1c75b;--ei-custom-modal-button-bg:linear-gradient(180deg,#e5bd63,#a87320);--ei-custom-modal-button-text:#251506;
  --ei-custom-modal-close-bg:rgba(255,244,207,.14);--ei-custom-modal-close-text:#fff4cf;
}
.ei-lobby-modal.is-custom-object-modal.is-custom-style-parchment{
  --ei-custom-modal-bg:linear-gradient(145deg,#f7ebca,#e5cf98);
  --ei-custom-modal-text:#3d2b18;--ei-custom-modal-muted:#6f5531;--ei-custom-modal-border:#8c6a32;
  --ei-custom-modal-accent:#7a4e17;--ei-custom-modal-button-bg:linear-gradient(180deg,#8c632d,#5e3d17);--ei-custom-modal-button-text:#fff4d3;
  --ei-custom-modal-close-bg:rgba(61,43,24,.12);--ei-custom-modal-close-text:#3d2b18;
}
.ei-lobby-modal.is-custom-object-modal.is-custom-style-neon{
  --ei-custom-modal-bg:radial-gradient(circle at 50% 0%,rgba(54,232,255,.12),transparent 38%),linear-gradient(145deg,#0b1220,#050812);
  --ei-custom-modal-text:#e7fdff;--ei-custom-modal-muted:#a8eaf0;--ei-custom-modal-border:#36e8ff;
  --ei-custom-modal-accent:#36e8ff;--ei-custom-modal-button-bg:rgba(54,232,255,.14);--ei-custom-modal-button-text:#e7fdff;
  --ei-custom-modal-close-bg:rgba(54,232,255,.13);--ei-custom-modal-close-text:#d9fbff;
}
.ei-lobby-modal.is-custom-object-modal.is-custom-style-pixel{
  --ei-custom-modal-bg:linear-gradient(180deg,#252b3e,#141827);
  --ei-custom-modal-text:#ffffff;--ei-custom-modal-muted:#dbe4ff;--ei-custom-modal-border:#ffffff;
  --ei-custom-modal-accent:#ffd75e;--ei-custom-modal-button-bg:#ffffff;--ei-custom-modal-button-text:#141827;
  --ei-custom-modal-close-bg:#ffffff;--ei-custom-modal-close-text:#141827;
}
.ei-lobby-modal.is-custom-object-modal.is-custom-style-cute{
  --ei-custom-modal-bg:linear-gradient(145deg,#fff8fb,#ffe6f1);
  --ei-custom-modal-text:#65344c;--ei-custom-modal-muted:#87576e;--ei-custom-modal-border:#ff9fc3;
  --ei-custom-modal-accent:#e84f91;--ei-custom-modal-button-bg:linear-gradient(180deg,#ff8fbc,#e84f91);--ei-custom-modal-button-text:#ffffff;
  --ei-custom-modal-close-bg:rgba(232,79,145,.12);--ei-custom-modal-close-text:#8f315d;
}
.ei-lobby-modal.is-custom-object-modal .ei-lobby-modal-card{
  width:min(680px,calc(100vw - 40px))!important;
  color:var(--ei-custom-modal-text)!important;
  background:var(--ei-custom-modal-bg)!important;
  border:2px solid var(--ei-custom-modal-border)!important;
  box-shadow:0 30px 96px rgba(0,0,0,.50),inset 0 1px 0 rgba(255,255,255,.12)!important;
  overflow:auto!important;
}
.ei-lobby-modal.is-custom-object-modal.is-custom-style-pixel .ei-lobby-modal-card{
  border-radius:4px!important;box-shadow:10px 10px 0 #000,0 30px 96px rgba(0,0,0,.48)!important;
}
.ei-lobby-modal.is-custom-object-modal.is-custom-style-parchment .ei-lobby-modal-card{border-width:4px!important;border-style:double!important;}
.ei-lobby-modal.is-custom-object-modal.is-custom-style-neon .ei-lobby-modal-card{box-shadow:0 0 34px rgba(54,232,255,.28),0 30px 96px rgba(0,0,0,.55)!important;}
.ei-lobby-modal.is-custom-object-modal.is-custom-style-glass .ei-lobby-modal-card{backdrop-filter:blur(20px) saturate(1.16)!important;-webkit-backdrop-filter:blur(20px) saturate(1.16)!important;}
.ei-lobby-modal.is-custom-object-modal .ei-lobby-modal-body{padding:34px 38px 36px!important;color:var(--ei-custom-modal-text)!important;}
.ei-lobby-modal.is-custom-object-modal .ei-lobby-custom-object-modal{
  width:100%!important;max-width:none!important;margin:0!important;padding:0!important;
  color:inherit!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;
}
.ei-lobby-modal.is-custom-object-modal .ei-lobby-modal-title,
.ei-lobby-modal.is-custom-object-modal .ei-lobby-custom-object-text,
.ei-lobby-modal.is-custom-object-modal .ei-lobby-custom-object-countdown{
  color:var(--ei-custom-modal-text)!important;-webkit-text-fill-color:var(--ei-custom-modal-text)!important;
}
.ei-lobby-modal.is-custom-object-modal .ei-lobby-custom-object-text{font-size:16px!important;line-height:1.78!important;}
.ei-lobby-modal.is-custom-object-modal .ei-lobby-custom-object-countdown{color:var(--ei-custom-modal-muted)!important;-webkit-text-fill-color:var(--ei-custom-modal-muted)!important;opacity:1!important;}
.ei-lobby-modal.is-custom-object-modal .ei-lobby-custom-object-icon{display:block!important;max-width:min(190px,55vw)!important;max-height:190px!important;border-radius:12px!important;}
.ei-lobby-modal.is-custom-object-modal .ei-lobby-custom-object-actions button{
  min-width:108px!important;padding:11px 18px!important;border-radius:13px!important;
  border:1px solid color-mix(in srgb,var(--ei-custom-modal-accent) 76%,transparent)!important;
  background:var(--ei-custom-modal-button-bg)!important;color:var(--ei-custom-modal-button-text)!important;
  -webkit-text-fill-color:var(--ei-custom-modal-button-text)!important;font-weight:850!important;cursor:pointer!important;
  box-shadow:0 10px 24px rgba(0,0,0,.18)!important;transition:transform .15s ease,filter .15s ease!important;
}
.ei-lobby-modal.is-custom-object-modal .ei-lobby-custom-object-actions button:hover{transform:translateY(-1px)!important;filter:brightness(1.08)!important;}
.ei-lobby-modal.is-custom-object-modal .ei-lobby-modal-close{
  background:var(--ei-custom-modal-close-bg)!important;color:var(--ei-custom-modal-close-text)!important;
  -webkit-text-fill-color:var(--ei-custom-modal-close-text)!important;border:1px solid color-mix(in srgb,var(--ei-custom-modal-border) 62%,transparent)!important;
}
@media(max-width:640px){
  .ei-lobby-modal.is-custom-object-modal .ei-lobby-modal-body{padding:28px 20px 24px!important;}
  .ei-lobby-modal.is-custom-object-modal .ei-lobby-custom-object-actions{flex-direction:column!important;}
  .ei-lobby-modal.is-custom-object-modal .ei-lobby-custom-object-actions button{width:100%!important;}
}

/* v0.4.167: EI first-tip stays above the scene, but below any modal/module/loading interface. */
.ei-firstfx-fixed-marker{z-index:90020!important;}
.ei-firstfx-fixed-bubble{z-index:90010!important;}
body > .ei-firstfx-object-overlay{z-index:90000!important;}
body.ei-lobby-modal-open > .ei-firstfx-fixed-marker,
body.ei-lobby-modal-open > .ei-firstfx-fixed-bubble,
body.ei-lobby-custom-modal-open > .ei-firstfx-fixed-marker,
body.ei-lobby-custom-modal-open > .ei-firstfx-fixed-bubble,
body.ei-lobby-module-open > .ei-firstfx-fixed-marker,
body.ei-lobby-module-open > .ei-firstfx-fixed-bubble,
body.ei-lobby-is-scene-loading > .ei-firstfx-fixed-marker,
body.ei-lobby-is-scene-loading > .ei-firstfx-fixed-bubble{
  visibility:hidden!important;opacity:0!important;
}

/* v0.4.169: EI 統一風格規範書 — 23 種正式通用風格。 */
.ei-lobby-frame-style-basic,
.ei-lobby-entry-lock.is-basic,
.ei-lobby-custom-object-modal.is-basic,
.ei-lobby-modal.is-custom-style-basic,
.ei-lobby-modal-card.is-custom-style-basic,
.ei-lobby-object-hover-bubble.is-style-basic,
.ei-lobby-stage-sync-card.is-style-basic,
.ei-lobby-player-status-hud.is-hud-style-basic,
.ei-lobby-quick-style-basic,
.ei-lobby-entry-style-basic{--ei-theme-bg:rgba(255,255,255,.94);--ei-theme-bg-strong:#ffffff;--ei-theme-text:#1f2937;--ei-theme-muted:#64748b;--ei-theme-border:rgba(148,163,184,.42);--ei-theme-accent:#2563eb;--ei-theme-accent-text:#ffffff;--ei-theme-hover:#1d4ed8;--ei-theme-radius:16px;--ei-theme-shadow:0 14px 34px rgba(15,23,42,.16);--ei-theme-font:inherit;}
.ei-lobby-frame-style-minimal,
.ei-lobby-entry-lock.is-minimal,
.ei-lobby-custom-object-modal.is-minimal,
.ei-lobby-modal.is-custom-style-minimal,
.ei-lobby-modal-card.is-custom-style-minimal,
.ei-lobby-object-hover-bubble.is-style-minimal,
.ei-lobby-stage-sync-card.is-style-minimal,
.ei-lobby-player-status-hud.is-hud-style-minimal,
.ei-lobby-quick-style-minimal,
.ei-lobby-entry-style-minimal{--ei-theme-bg:#ffffff;--ei-theme-bg-strong:#ffffff;--ei-theme-text:#111827;--ei-theme-muted:#6b7280;--ei-theme-border:rgba(15,23,42,.14);--ei-theme-accent:#111827;--ei-theme-accent-text:#ffffff;--ei-theme-hover:#334155;--ei-theme-radius:10px;--ei-theme-shadow:0 8px 22px rgba(15,23,42,.10);--ei-theme-font:inherit;}
.ei-lobby-frame-style-glass,
.ei-lobby-entry-lock.is-glass,
.ei-lobby-custom-object-modal.is-glass,
.ei-lobby-modal.is-custom-style-glass,
.ei-lobby-modal-card.is-custom-style-glass,
.ei-lobby-object-hover-bubble.is-style-glass,
.ei-lobby-stage-sync-card.is-style-glass,
.ei-lobby-player-status-hud.is-hud-style-glass,
.ei-lobby-quick-style-glass,
.ei-lobby-entry-style-glass{--ei-theme-bg:rgba(15,23,42,.76);--ei-theme-bg-strong:rgba(15,23,42,.90);--ei-theme-text:#f8fafc;--ei-theme-muted:#cbd5e1;--ei-theme-border:rgba(255,255,255,.28);--ei-theme-accent:#60a5fa;--ei-theme-accent-text:#07111f;--ei-theme-hover:#93c5fd;--ei-theme-radius:22px;--ei-theme-shadow:0 18px 44px rgba(2,6,23,.34),inset 0 1px 0 rgba(255,255,255,.14);--ei-theme-font:inherit;}
.ei-lobby-frame-style-rpg,
.ei-lobby-entry-lock.is-rpg,
.ei-lobby-custom-object-modal.is-rpg,
.ei-lobby-modal.is-custom-style-rpg,
.ei-lobby-modal-card.is-custom-style-rpg,
.ei-lobby-object-hover-bubble.is-style-rpg,
.ei-lobby-stage-sync-card.is-style-rpg,
.ei-lobby-player-status-hud.is-hud-style-rpg,
.ei-lobby-quick-style-rpg,
.ei-lobby-entry-style-rpg{--ei-theme-bg:linear-gradient(145deg,#30220f,#151006);--ei-theme-bg-strong:#21190d;--ei-theme-text:#fff4cf;--ei-theme-muted:#e8cf99;--ei-theme-border:#d6ad55;--ei-theme-accent:#f6d477;--ei-theme-accent-text:#2d1b03;--ei-theme-hover:#f0bd4f;--ei-theme-radius:12px;--ei-theme-shadow:0 16px 36px rgba(0,0,0,.36),inset 0 0 0 2px rgba(255,238,178,.08);--ei-theme-font:Georgia,"Noto Serif TC",serif;}
.ei-lobby-frame-style-classic_wood,
.ei-lobby-entry-lock.is-classic_wood,
.ei-lobby-custom-object-modal.is-classic_wood,
.ei-lobby-modal.is-custom-style-classic_wood,
.ei-lobby-modal-card.is-custom-style-classic_wood,
.ei-lobby-object-hover-bubble.is-style-classic_wood,
.ei-lobby-stage-sync-card.is-style-classic_wood,
.ei-lobby-player-status-hud.is-hud-style-classic_wood,
.ei-lobby-quick-style-classic_wood,
.ei-lobby-entry-style-classic_wood{--ei-theme-bg:linear-gradient(145deg,#4a2c18,#24150c);--ei-theme-bg-strong:#3b2415;--ei-theme-text:#fff3d6;--ei-theme-muted:#e5c59e;--ei-theme-border:#b98246;--ei-theme-accent:#e6b66d;--ei-theme-accent-text:#2c1708;--ei-theme-hover:#c9914d;--ei-theme-radius:14px;--ei-theme-shadow:0 16px 34px rgba(43,24,10,.38),inset 0 0 0 2px rgba(255,224,173,.08);--ei-theme-font:Georgia,"Noto Serif TC",serif;}
.ei-lobby-frame-style-parchment,
.ei-lobby-entry-lock.is-parchment,
.ei-lobby-custom-object-modal.is-parchment,
.ei-lobby-modal.is-custom-style-parchment,
.ei-lobby-modal-card.is-custom-style-parchment,
.ei-lobby-object-hover-bubble.is-style-parchment,
.ei-lobby-stage-sync-card.is-style-parchment,
.ei-lobby-player-status-hud.is-hud-style-parchment,
.ei-lobby-quick-style-parchment,
.ei-lobby-entry-style-parchment{--ei-theme-bg:#f3e0b7;--ei-theme-bg-strong:#fbefcf;--ei-theme-text:#3f2b17;--ei-theme-muted:#735936;--ei-theme-border:#8a642f;--ei-theme-accent:#8b4f12;--ei-theme-accent-text:#fff8e8;--ei-theme-hover:#a3611b;--ei-theme-radius:10px;--ei-theme-shadow:0 12px 28px rgba(80,48,15,.22);--ei-theme-font:Georgia,"Noto Serif TC",serif;}
.ei-lobby-frame-style-dark,
.ei-lobby-entry-lock.is-dark,
.ei-lobby-custom-object-modal.is-dark,
.ei-lobby-modal.is-custom-style-dark,
.ei-lobby-modal-card.is-custom-style-dark,
.ei-lobby-object-hover-bubble.is-style-dark,
.ei-lobby-stage-sync-card.is-style-dark,
.ei-lobby-player-status-hud.is-hud-style-dark,
.ei-lobby-quick-style-dark,
.ei-lobby-entry-style-dark{--ei-theme-bg:#171923;--ei-theme-bg-strong:#0f1118;--ei-theme-text:#f8fafc;--ei-theme-muted:#aab3c2;--ei-theme-border:#384152;--ei-theme-accent:#94a3b8;--ei-theme-accent-text:#0f172a;--ei-theme-hover:#cbd5e1;--ei-theme-radius:18px;--ei-theme-shadow:0 18px 42px rgba(0,0,0,.34);--ei-theme-font:inherit;}
.ei-lobby-frame-style-chinese,
.ei-lobby-entry-lock.is-chinese,
.ei-lobby-custom-object-modal.is-chinese,
.ei-lobby-modal.is-custom-style-chinese,
.ei-lobby-modal-card.is-custom-style-chinese,
.ei-lobby-object-hover-bubble.is-style-chinese,
.ei-lobby-stage-sync-card.is-style-chinese,
.ei-lobby-player-status-hud.is-hud-style-chinese,
.ei-lobby-quick-style-chinese,
.ei-lobby-entry-style-chinese{--ei-theme-bg:linear-gradient(145deg,#6f1717,#2a0d0d);--ei-theme-bg-strong:#541313;--ei-theme-text:#fff1d0;--ei-theme-muted:#f1c894;--ei-theme-border:#d9ad55;--ei-theme-accent:#f5cf73;--ei-theme-accent-text:#4a0909;--ei-theme-hover:#e7b84d;--ei-theme-radius:8px;--ei-theme-shadow:0 16px 36px rgba(70,10,10,.34);--ei-theme-font:"Noto Serif TC","Songti TC",serif;}
.ei-lobby-frame-style-japanese,
.ei-lobby-entry-lock.is-japanese,
.ei-lobby-custom-object-modal.is-japanese,
.ei-lobby-modal.is-custom-style-japanese,
.ei-lobby-modal-card.is-custom-style-japanese,
.ei-lobby-object-hover-bubble.is-style-japanese,
.ei-lobby-stage-sync-card.is-style-japanese,
.ei-lobby-player-status-hud.is-hud-style-japanese,
.ei-lobby-quick-style-japanese,
.ei-lobby-entry-style-japanese{--ei-theme-bg:#f8f1e4;--ei-theme-bg-strong:#fffaf0;--ei-theme-text:#2d2823;--ei-theme-muted:#756b61;--ei-theme-border:#8f7c68;--ei-theme-accent:#a33a32;--ei-theme-accent-text:#ffffff;--ei-theme-hover:#7f2d28;--ei-theme-radius:12px;--ei-theme-shadow:0 13px 28px rgba(64,52,42,.16);--ei-theme-font:"Hiragino Mincho ProN","Yu Mincho","Noto Serif TC",serif;}
.ei-lobby-frame-style-ink,
.ei-lobby-entry-lock.is-ink,
.ei-lobby-custom-object-modal.is-ink,
.ei-lobby-modal.is-custom-style-ink,
.ei-lobby-modal-card.is-custom-style-ink,
.ei-lobby-object-hover-bubble.is-style-ink,
.ei-lobby-stage-sync-card.is-style-ink,
.ei-lobby-player-status-hud.is-hud-style-ink,
.ei-lobby-quick-style-ink,
.ei-lobby-entry-style-ink{--ei-theme-bg:linear-gradient(135deg,#f1f1ee,#d9dad5);--ei-theme-bg-strong:#f8f8f5;--ei-theme-text:#181a18;--ei-theme-muted:#555b56;--ei-theme-border:#303631;--ei-theme-accent:#202622;--ei-theme-accent-text:#ffffff;--ei-theme-hover:#404941;--ei-theme-radius:6px;--ei-theme-shadow:0 12px 28px rgba(28,32,29,.16);--ei-theme-font:"Noto Serif TC",serif;}
.ei-lobby-frame-style-pixel,
.ei-lobby-entry-lock.is-pixel,
.ei-lobby-custom-object-modal.is-pixel,
.ei-lobby-modal.is-custom-style-pixel,
.ei-lobby-modal-card.is-custom-style-pixel,
.ei-lobby-object-hover-bubble.is-style-pixel,
.ei-lobby-stage-sync-card.is-style-pixel,
.ei-lobby-player-status-hud.is-hud-style-pixel,
.ei-lobby-quick-style-pixel,
.ei-lobby-entry-style-pixel{--ei-theme-bg:#172033;--ei-theme-bg-strong:#101827;--ei-theme-text:#f8fafc;--ei-theme-muted:#cbd5e1;--ei-theme-border:#facc15;--ei-theme-accent:#22c55e;--ei-theme-accent-text:#06130a;--ei-theme-hover:#4ade80;--ei-theme-radius:0px;--ei-theme-shadow:6px 6px 0 rgba(0,0,0,.62);--ei-theme-font:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;}
.ei-lobby-frame-style-windows95,
.ei-lobby-entry-lock.is-windows95,
.ei-lobby-custom-object-modal.is-windows95,
.ei-lobby-modal.is-custom-style-windows95,
.ei-lobby-modal-card.is-custom-style-windows95,
.ei-lobby-object-hover-bubble.is-style-windows95,
.ei-lobby-stage-sync-card.is-style-windows95,
.ei-lobby-player-status-hud.is-hud-style-windows95,
.ei-lobby-quick-style-windows95,
.ei-lobby-entry-style-windows95{--ei-theme-bg:#c0c0c0;--ei-theme-bg-strong:#dfdfdf;--ei-theme-text:#000000;--ei-theme-muted:#333333;--ei-theme-border:#000080;--ei-theme-accent:#000080;--ei-theme-accent-text:#ffffff;--ei-theme-hover:#1084d0;--ei-theme-radius:0px;--ei-theme-shadow:inset 2px 2px 0 #fff,inset -2px -2px 0 #404040;--ei-theme-font:Tahoma,"Microsoft JhengHei",sans-serif;}
.ei-lobby-frame-style-windows,
.ei-lobby-entry-lock.is-windows,
.ei-lobby-custom-object-modal.is-windows,
.ei-lobby-modal.is-custom-style-windows,
.ei-lobby-modal-card.is-custom-style-windows,
.ei-lobby-object-hover-bubble.is-style-windows,
.ei-lobby-stage-sync-card.is-style-windows,
.ei-lobby-player-status-hud.is-hud-style-windows,
.ei-lobby-quick-style-windows,
.ei-lobby-entry-style-windows{--ei-theme-bg:rgba(244,248,255,.96);--ei-theme-bg-strong:#ffffff;--ei-theme-text:#172033;--ei-theme-muted:#526276;--ei-theme-border:#9db2ca;--ei-theme-accent:#0f6cbd;--ei-theme-accent-text:#ffffff;--ei-theme-hover:#115ea3;--ei-theme-radius:8px;--ei-theme-shadow:0 14px 34px rgba(35,75,115,.18);--ei-theme-font:"Segoe UI","Microsoft JhengHei",sans-serif;}
.ei-lobby-frame-style-mac,
.ei-lobby-entry-lock.is-mac,
.ei-lobby-custom-object-modal.is-mac,
.ei-lobby-modal.is-custom-style-mac,
.ei-lobby-modal-card.is-custom-style-mac,
.ei-lobby-object-hover-bubble.is-style-mac,
.ei-lobby-stage-sync-card.is-style-mac,
.ei-lobby-player-status-hud.is-hud-style-mac,
.ei-lobby-quick-style-mac,
.ei-lobby-entry-style-mac{--ei-theme-bg:rgba(248,250,252,.86);--ei-theme-bg-strong:rgba(255,255,255,.94);--ei-theme-text:#111827;--ei-theme-muted:#667085;--ei-theme-border:rgba(148,163,184,.42);--ei-theme-accent:#007aff;--ei-theme-accent-text:#ffffff;--ei-theme-hover:#0a84ff;--ei-theme-radius:22px;--ei-theme-shadow:0 18px 44px rgba(15,23,42,.18),inset 0 1px 0 rgba(255,255,255,.7);--ei-theme-font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Microsoft JhengHei",sans-serif;}
.ei-lobby-frame-style-cyberpunk,
.ei-lobby-entry-lock.is-cyberpunk,
.ei-lobby-custom-object-modal.is-cyberpunk,
.ei-lobby-modal.is-custom-style-cyberpunk,
.ei-lobby-modal-card.is-custom-style-cyberpunk,
.ei-lobby-object-hover-bubble.is-style-cyberpunk,
.ei-lobby-stage-sync-card.is-style-cyberpunk,
.ei-lobby-player-status-hud.is-hud-style-cyberpunk,
.ei-lobby-quick-style-cyberpunk,
.ei-lobby-entry-style-cyberpunk{--ei-theme-bg:linear-gradient(135deg,#120022,#090515);--ei-theme-bg-strong:#0d0619;--ei-theme-text:#f5f7ff;--ei-theme-muted:#83e8f2;--ei-theme-border:#00e5ff;--ei-theme-accent:#faff00;--ei-theme-accent-text:#120022;--ei-theme-hover:#ff00c8;--ei-theme-radius:6px;--ei-theme-shadow:0 0 0 1px rgba(255,0,200,.48),0 0 28px rgba(0,229,255,.34);--ei-theme-font:"Orbitron",ui-monospace,monospace;}
.ei-lobby-frame-style-nasapunk,
.ei-lobby-entry-lock.is-nasapunk,
.ei-lobby-custom-object-modal.is-nasapunk,
.ei-lobby-modal.is-custom-style-nasapunk,
.ei-lobby-modal-card.is-custom-style-nasapunk,
.ei-lobby-object-hover-bubble.is-style-nasapunk,
.ei-lobby-stage-sync-card.is-style-nasapunk,
.ei-lobby-player-status-hud.is-hud-style-nasapunk,
.ei-lobby-quick-style-nasapunk,
.ei-lobby-entry-style-nasapunk{--ei-theme-bg:linear-gradient(145deg,#172235,#0a1220);--ei-theme-bg-strong:#111b2b;--ei-theme-text:#f7fafc;--ei-theme-muted:#b7c6d9;--ei-theme-border:#d7e0eb;--ei-theme-accent:#ff7a1a;--ei-theme-accent-text:#111827;--ei-theme-hover:#ff9a4d;--ei-theme-radius:8px;--ei-theme-shadow:0 16px 38px rgba(2,8,23,.36);--ei-theme-font:"Avenir Next","Eurostile","Microsoft JhengHei",sans-serif;}
.ei-lobby-frame-style-steampunk,
.ei-lobby-entry-lock.is-steampunk,
.ei-lobby-custom-object-modal.is-steampunk,
.ei-lobby-modal.is-custom-style-steampunk,
.ei-lobby-modal-card.is-custom-style-steampunk,
.ei-lobby-object-hover-bubble.is-style-steampunk,
.ei-lobby-stage-sync-card.is-style-steampunk,
.ei-lobby-player-status-hud.is-hud-style-steampunk,
.ei-lobby-quick-style-steampunk,
.ei-lobby-entry-style-steampunk{--ei-theme-bg:linear-gradient(145deg,#4b2e13,#211407);--ei-theme-bg-strong:#3a230f;--ei-theme-text:#ffe9bf;--ei-theme-muted:#d7b989;--ei-theme-border:#b97b35;--ei-theme-accent:#e2a84c;--ei-theme-accent-text:#2f1707;--ei-theme-hover:#c98b3d;--ei-theme-radius:16px;--ei-theme-shadow:0 18px 38px rgba(47,25,7,.42),inset 0 0 0 2px rgba(229,168,83,.10);--ei-theme-font:Georgia,"Noto Serif TC",serif;}
.ei-lobby-frame-style-terminal,
.ei-lobby-entry-lock.is-terminal,
.ei-lobby-custom-object-modal.is-terminal,
.ei-lobby-modal.is-custom-style-terminal,
.ei-lobby-modal-card.is-custom-style-terminal,
.ei-lobby-object-hover-bubble.is-style-terminal,
.ei-lobby-stage-sync-card.is-style-terminal,
.ei-lobby-player-status-hud.is-hud-style-terminal,
.ei-lobby-quick-style-terminal,
.ei-lobby-entry-style-terminal{--ei-theme-bg:#031008;--ei-theme-bg-strong:#020b06;--ei-theme-text:#b7ffcf;--ei-theme-muted:#72d88f;--ei-theme-border:#35ff78;--ei-theme-accent:#35ff78;--ei-theme-accent-text:#021108;--ei-theme-hover:#65ff98;--ei-theme-radius:4px;--ei-theme-shadow:0 0 24px rgba(53,255,120,.26),inset 0 0 18px rgba(53,255,120,.06);--ei-theme-font:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;}
.ei-lobby-frame-style-arcane,
.ei-lobby-entry-lock.is-arcane,
.ei-lobby-custom-object-modal.is-arcane,
.ei-lobby-modal.is-custom-style-arcane,
.ei-lobby-modal-card.is-custom-style-arcane,
.ei-lobby-object-hover-bubble.is-style-arcane,
.ei-lobby-stage-sync-card.is-style-arcane,
.ei-lobby-player-status-hud.is-hud-style-arcane,
.ei-lobby-quick-style-arcane,
.ei-lobby-entry-style-arcane{--ei-theme-bg:radial-gradient(circle at 50% 10%,#38256d,#120d2b 70%);--ei-theme-bg-strong:#1b1238;--ei-theme-text:#f4ecff;--ei-theme-muted:#c7b5ef;--ei-theme-border:#9f7aea;--ei-theme-accent:#d8b4fe;--ei-theme-accent-text:#21113d;--ei-theme-hover:#c084fc;--ei-theme-radius:20px;--ei-theme-shadow:0 0 34px rgba(159,122,234,.36),inset 0 0 28px rgba(216,180,254,.08);--ei-theme-font:Georgia,"Noto Serif TC",serif;}
.ei-lobby-frame-style-wabisabi,
.ei-lobby-entry-lock.is-wabisabi,
.ei-lobby-custom-object-modal.is-wabisabi,
.ei-lobby-modal.is-custom-style-wabisabi,
.ei-lobby-modal-card.is-custom-style-wabisabi,
.ei-lobby-object-hover-bubble.is-style-wabisabi,
.ei-lobby-stage-sync-card.is-style-wabisabi,
.ei-lobby-player-status-hud.is-hud-style-wabisabi,
.ei-lobby-quick-style-wabisabi,
.ei-lobby-entry-style-wabisabi{--ei-theme-bg:#ece4d6;--ei-theme-bg-strong:#f7f2e9;--ei-theme-text:#3f3932;--ei-theme-muted:#786e63;--ei-theme-border:#9b8a78;--ei-theme-accent:#7a5330;--ei-theme-accent-text:#fffaf1;--ei-theme-hover:#966a40;--ei-theme-radius:18px 10px 20px 12px;--ei-theme-shadow:0 12px 28px rgba(80,70,59,.14);--ei-theme-font:"Noto Serif TC",serif;}
.ei-lobby-frame-style-cute,
.ei-lobby-entry-lock.is-cute,
.ei-lobby-custom-object-modal.is-cute,
.ei-lobby-modal.is-custom-style-cute,
.ei-lobby-modal-card.is-custom-style-cute,
.ei-lobby-object-hover-bubble.is-style-cute,
.ei-lobby-stage-sync-card.is-style-cute,
.ei-lobby-player-status-hud.is-hud-style-cute,
.ei-lobby-quick-style-cute,
.ei-lobby-entry-style-cute{--ei-theme-bg:#fff0f6;--ei-theme-bg-strong:#fff8fb;--ei-theme-text:#6b2948;--ei-theme-muted:#9d5b77;--ei-theme-border:#f6a8c4;--ei-theme-accent:#ec5f98;--ei-theme-accent-text:#ffffff;--ei-theme-hover:#db4b87;--ei-theme-radius:24px;--ei-theme-shadow:0 14px 30px rgba(221,95,147,.20);--ei-theme-font:inherit;}
.ei-lobby-frame-style-western,
.ei-lobby-entry-lock.is-western,
.ei-lobby-custom-object-modal.is-western,
.ei-lobby-modal.is-custom-style-western,
.ei-lobby-modal-card.is-custom-style-western,
.ei-lobby-object-hover-bubble.is-style-western,
.ei-lobby-stage-sync-card.is-style-western,
.ei-lobby-player-status-hud.is-hud-style-western,
.ei-lobby-quick-style-western,
.ei-lobby-entry-style-western{--ei-theme-bg:linear-gradient(145deg,#eee5d2,#d8c7a8);--ei-theme-bg-strong:#f8f1e3;--ei-theme-text:#38291b;--ei-theme-muted:#725e47;--ei-theme-border:#7e5b32;--ei-theme-accent:#824d1c;--ei-theme-accent-text:#fff8e9;--ei-theme-hover:#a16125;--ei-theme-radius:14px;--ei-theme-shadow:0 16px 34px rgba(72,47,24,.24);--ei-theme-font:Georgia,"Times New Roman","Noto Serif TC",serif;}
.ei-lobby-frame-style-dq,
.ei-lobby-entry-lock.is-dq,
.ei-lobby-custom-object-modal.is-dq,
.ei-lobby-modal.is-custom-style-dq,
.ei-lobby-modal-card.is-custom-style-dq,
.ei-lobby-object-hover-bubble.is-style-dq,
.ei-lobby-stage-sync-card.is-style-dq,
.ei-lobby-player-status-hud.is-hud-style-dq,
.ei-lobby-quick-style-dq,
.ei-lobby-entry-style-dq{--ei-theme-bg:linear-gradient(180deg,#234da6,#102965);--ei-theme-bg-strong:#193c86;--ei-theme-text:#ffffff;--ei-theme-muted:#dbeafe;--ei-theme-border:#f5d54e;--ei-theme-accent:#f5d54e;--ei-theme-accent-text:#122a64;--ei-theme-hover:#ffe679;--ei-theme-radius:10px;--ei-theme-shadow:0 8px 0 #0b1b49,0 18px 34px rgba(12,34,87,.34);--ei-theme-font:"Trebuchet MS","Microsoft JhengHei",sans-serif;}

.ei-lobby[class*="ei-lobby-frame-style-"]{
  --ei-frame-bg:var(--ei-theme-bg)!important;--ei-frame-bg-strong:var(--ei-theme-bg-strong)!important;
  --ei-frame-border:var(--ei-theme-border)!important;--ei-frame-text:var(--ei-theme-text)!important;
  --ei-frame-muted:var(--ei-theme-muted)!important;--ei-frame-accent:var(--ei-theme-accent)!important;
  --ei-frame-accent-2:var(--ei-theme-hover)!important;--ei-frame-radius:var(--ei-theme-radius)!important;
  --ei-frame-shadow:var(--ei-theme-shadow)!important;--ei-frame-font:var(--ei-theme-font)!important;
  color:var(--ei-theme-text)!important;font-family:var(--ei-theme-font)!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] :is(.ei-lobby-welcome,.ei-lobby-online-box,.ei-lobby-chat-box,.ei-lobby-modal-card,.ei-lobby-pad-panel,.ei-lobby-announcement){
  background:var(--ei-theme-bg)!important;color:var(--ei-theme-text)!important;border-color:var(--ei-theme-border)!important;border-radius:var(--ei-theme-radius)!important;box-shadow:var(--ei-theme-shadow)!important;
}
.ei-lobby[class*="ei-lobby-frame-style-"] :is(h1,h2,h3,h4,.ei-lobby-modal-title,.ei-lobby-announcement-title,.ei-lobby-module-title){color:var(--ei-theme-text)!important;}
.ei-lobby[class*="ei-lobby-frame-style-"] :is(.ei-lobby-hint,.ei-lobby-empty,small,.description){color:var(--ei-theme-muted)!important;}
.ei-lobby[class*="ei-lobby-frame-style-"] :is(button,.button,.ei-lobby-announcement-actions button){border-color:var(--ei-theme-border)!important;}

.ei-lobby .ei-lobby-stage [class*="ei-lobby-quick-style-"]{
  --ei-lobby-quick-bg:var(--ei-theme-bg)!important;--ei-lobby-quick-hover-bg:var(--ei-theme-hover)!important;
  --ei-lobby-quick-border:var(--ei-theme-border)!important;--ei-lobby-quick-text:var(--ei-theme-text)!important;
  background:var(--ei-theme-bg)!important;color:var(--ei-theme-text)!important;border-color:var(--ei-theme-border)!important;
  border-radius:var(--ei-theme-radius)!important;box-shadow:var(--ei-theme-shadow)!important;font-family:var(--ei-theme-font)!important;
}
.ei-lobby .ei-lobby-stage [class*="ei-lobby-quick-style-"]:hover{background:var(--ei-theme-hover)!important;color:var(--ei-theme-accent-text)!important;}

.ei-lobby-entry-dialogue-btn[class*="ei-lobby-entry-style-"]{
  background:var(--ei-theme-bg)!important;
  color:var(--ei-theme-text)!important;
  -webkit-text-fill-color:var(--ei-theme-text)!important;
  border:1px solid var(--ei-theme-border)!important;
  border-radius:var(--ei-theme-radius)!important;
  box-shadow:var(--ei-theme-shadow)!important;
  font-family:var(--ei-theme-font)!important;
  opacity:1!important;
}
.ei-lobby-entry-dialogue-btn[class*="ei-lobby-entry-style-"]:hover{
  background:var(--ei-theme-hover)!important;
  color:var(--ei-theme-accent-text)!important;
  -webkit-text-fill-color:var(--ei-theme-accent-text)!important;
}

.ei-lobby-entry-lock[class*="is-"],.ei-lobby-custom-object-modal[class*="is-"]{
  background:var(--ei-theme-bg)!important;color:var(--ei-theme-text)!important;border:1px solid var(--ei-theme-border)!important;
  border-radius:var(--ei-theme-radius)!important;box-shadow:var(--ei-theme-shadow)!important;font-family:var(--ei-theme-font)!important;
}
.ei-lobby-entry-lock[class*="is-"] :is(.ei-lobby-modal-title,p),.ei-lobby-custom-object-modal[class*="is-"] :is(.ei-lobby-modal-title,.ei-lobby-custom-object-text,.ei-lobby-custom-object-countdown){color:var(--ei-theme-text)!important;}
.ei-lobby-entry-lock[class*="is-"] button,.ei-lobby-custom-object-modal[class*="is-"] button{
  background:var(--ei-theme-accent)!important;color:var(--ei-theme-accent-text)!important;border:1px solid var(--ei-theme-border)!important;border-radius:calc(var(--ei-theme-radius) * .72)!important;
}
.ei-lobby-entry-lock[class*="is-"] button:hover,.ei-lobby-custom-object-modal[class*="is-"] button:hover{background:var(--ei-theme-hover)!important;}
.ei-lobby-modal.is-custom-object-modal[class*="is-custom-style-"],.ei-lobby-modal-card.is-custom-object-modal-card[class*="is-custom-style-"]{
  color:var(--ei-theme-text)!important;
}
.ei-lobby-modal-card.is-custom-object-modal-card[class*="is-custom-style-"]{
  background:var(--ei-theme-bg)!important;border-color:var(--ei-theme-border)!important;border-radius:var(--ei-theme-radius)!important;box-shadow:var(--ei-theme-shadow)!important;font-family:var(--ei-theme-font)!important;
}
.ei-lobby-modal-card.is-custom-object-modal-card[class*="is-custom-style-"] :is(.ei-lobby-modal-title,.ei-lobby-custom-object-text,.ei-lobby-custom-object-countdown){color:var(--ei-theme-text)!important;}
.ei-lobby-modal-card.is-custom-object-modal-card[class*="is-custom-style-"] .ei-lobby-modal-close{background:var(--ei-theme-accent)!important;color:var(--ei-theme-accent-text)!important;border-color:var(--ei-theme-border)!important;}


/* v0.4.170: canonical custom-modal themes must also drive the legacy custom-modal
   variables. Safari/WebKit gives -webkit-text-fill-color precedence over color,
   so leaving the legacy variables at their light-theme defaults made dark themes
   render dark title/body text. Keep every text surface explicitly in sync. */
.ei-lobby-modal.is-custom-object-modal[class*="is-custom-style-"]{
  --ei-custom-modal-bg:var(--ei-theme-bg);
  --ei-custom-modal-text:var(--ei-theme-text);
  --ei-custom-modal-muted:var(--ei-theme-muted);
  --ei-custom-modal-border:var(--ei-theme-border);
  --ei-custom-modal-accent:var(--ei-theme-accent);
  --ei-custom-modal-button-bg:var(--ei-theme-accent);
  --ei-custom-modal-button-text:var(--ei-theme-accent-text);
  --ei-custom-modal-close-bg:var(--ei-theme-accent);
  --ei-custom-modal-close-text:var(--ei-theme-accent-text);
}
.ei-lobby-modal.is-custom-object-modal[class*="is-custom-style-"] :is(
  .ei-lobby-modal-card,
  .ei-lobby-modal-body,
  .ei-lobby-custom-object-modal,
  .ei-lobby-modal-title,
  .ei-lobby-custom-object-text
){
  color:var(--ei-theme-text)!important;
  -webkit-text-fill-color:var(--ei-theme-text)!important;
  text-shadow:none!important;
}
.ei-lobby-modal.is-custom-object-modal[class*="is-custom-style-"] :is(
  .ei-lobby-modal-title,
  .ei-lobby-custom-object-text
){
  background:none!important;
  -webkit-background-clip:border-box!important;
  background-clip:border-box!important;
}
.ei-lobby-modal.is-custom-object-modal[class*="is-custom-style-"] .ei-lobby-custom-object-text :is(p,span,strong,em,b,i,a,small){
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
  text-shadow:none!important;
}
.ei-lobby-modal.is-custom-object-modal[class*="is-custom-style-"] .ei-lobby-custom-object-countdown{
  color:var(--ei-theme-muted)!important;
  -webkit-text-fill-color:var(--ei-theme-muted)!important;
  text-shadow:none!important;
}
.ei-lobby-modal.is-custom-object-modal[class*="is-custom-style-"] .ei-lobby-custom-object-actions button{
  background:var(--ei-theme-accent)!important;
  color:var(--ei-theme-accent-text)!important;
  -webkit-text-fill-color:var(--ei-theme-accent-text)!important;
  border-color:var(--ei-theme-border)!important;
  text-shadow:none!important;
}
.ei-lobby-modal.is-custom-object-modal[class*="is-custom-style-"] .ei-lobby-custom-object-actions button:hover{
  background:var(--ei-theme-hover)!important;
  color:var(--ei-theme-accent-text)!important;
  -webkit-text-fill-color:var(--ei-theme-accent-text)!important;
}
.ei-lobby-modal.is-custom-object-modal[class*="is-custom-style-"] .ei-lobby-modal-close{
  background:var(--ei-theme-accent)!important;
  color:var(--ei-theme-accent-text)!important;
  -webkit-text-fill-color:var(--ei-theme-accent-text)!important;
  border-color:var(--ei-theme-border)!important;
  text-shadow:none!important;
}

.ei-lobby-stage .ei-lobby-object-hover-bubble[class*="is-style-"]{--ei-hover-bubble-bg:var(--ei-theme-bg-strong)!important;--ei-hover-bubble-border:var(--ei-theme-border)!important;color:var(--ei-theme-border)!important;}
.ei-lobby-stage .ei-lobby-object-hover-bubble[class*="is-style-"] .ei-lobby-object-hover-bubble-inner{
  background:var(--ei-theme-bg-strong)!important;color:var(--ei-theme-text)!important;border:2px solid var(--ei-theme-border)!important;border-radius:var(--ei-theme-radius)!important;box-shadow:var(--ei-theme-shadow)!important;font-family:var(--ei-theme-font)!important;text-shadow:none!important;
}
.ei-lobby-stage .ei-lobby-object-hover-bubble[class*="is-style-"] .ei-lobby-object-hover-bubble-action{background:var(--ei-theme-accent)!important;color:var(--ei-theme-accent-text)!important;border-color:var(--ei-theme-border)!important;box-shadow:none!important;}

.ei-lobby-stage-sync-card[class*="is-style-"]{
  background:var(--ei-theme-bg)!important;color:var(--ei-theme-text)!important;border-color:var(--ei-theme-border)!important;border-radius:var(--ei-theme-radius)!important;box-shadow:var(--ei-theme-shadow)!important;font-family:var(--ei-theme-font)!important;
}
.ei-lobby-stage-sync-card[class*="is-style-"] :is(.ei-lobby-stage-sync-card-head strong,.ei-lobby-stage-sync-kicker,.ei-lobby-stage-sync-intro,.ei-lobby-stage-sync-row span,.ei-lobby-stage-sync-row strong,.ei-lobby-stage-sync-empty){color:var(--ei-theme-text)!important;}
.ei-lobby-stage-sync-card[class*="is-style-"] .ei-lobby-stage-sync-kicker{color:var(--ei-theme-accent)!important;}
.ei-lobby-stage-sync-card[class*="is-style-"] :is(button,a){background:var(--ei-theme-accent)!important;color:var(--ei-theme-accent-text)!important;border-color:var(--ei-theme-border)!important;}

.ei-lobby-player-status-hud[class*="is-hud-style-"]{
  background:var(--ei-theme-bg)!important;color:var(--ei-theme-text)!important;border:1px solid var(--ei-theme-border)!important;border-radius:var(--ei-theme-radius)!important;box-shadow:var(--ei-theme-shadow)!important;font-family:var(--ei-theme-font)!important;
}
.ei-lobby-player-status-hud[class*="is-hud-style-"] :is(h1,h2,h3,h4,strong,span,p,small){color:inherit!important;}

/* 差異化材質：風格與動畫分離，僅提供靜態材質。 */
:is(.ei-lobby-frame-style-terminal,.ei-lobby-entry-lock.is-terminal,.ei-lobby-custom-object-modal.is-terminal,.ei-lobby-stage-sync-card.is-style-terminal,.ei-lobby-object-hover-bubble.is-style-terminal .ei-lobby-object-hover-bubble-inner){background-image:repeating-linear-gradient(0deg,rgba(53,255,120,.055) 0 1px,transparent 1px 4px)!important;}
:is(.ei-lobby-frame-style-ink,.ei-lobby-entry-lock.is-ink,.ei-lobby-custom-object-modal.is-ink,.ei-lobby-stage-sync-card.is-style-ink,.ei-lobby-object-hover-bubble.is-style-ink .ei-lobby-object-hover-bubble-inner){background-image:radial-gradient(circle at 14% 18%,rgba(0,0,0,.09),transparent 25%),radial-gradient(circle at 86% 82%,rgba(0,0,0,.07),transparent 24%)!important;}
:is(.ei-lobby-frame-style-parchment,.ei-lobby-entry-lock.is-parchment,.ei-lobby-custom-object-modal.is-parchment,.ei-lobby-stage-sync-card.is-style-parchment,.ei-lobby-object-hover-bubble.is-style-parchment .ei-lobby-object-hover-bubble-inner){background-image:linear-gradient(90deg,rgba(92,58,20,.035) 50%,transparent 50%),linear-gradient(rgba(92,58,20,.03) 50%,transparent 50%)!important;background-size:7px 7px!important;}
:is(.ei-lobby-frame-style-pixel,.ei-lobby-entry-lock.is-pixel,.ei-lobby-custom-object-modal.is-pixel,.ei-lobby-stage-sync-card.is-style-pixel,.ei-lobby-object-hover-bubble.is-style-pixel .ei-lobby-object-hover-bubble-inner){border-width:4px!important;image-rendering:pixelated!important;}
:is(.ei-lobby-frame-style-windows95,.ei-lobby-entry-lock.is-windows95,.ei-lobby-custom-object-modal.is-windows95,.ei-lobby-stage-sync-card.is-style-windows95,.ei-lobby-object-hover-bubble.is-style-windows95 .ei-lobby-object-hover-bubble-inner){border-width:2px!important;}


/* 舊 Key 相容：讀取時會轉存正式 Key；此處避免未重存的快取畫面失去樣式。 */
.ei-lobby-frame-style-rpg_gold{--ei-theme-bg:linear-gradient(145deg,#30220f,#151006);--ei-theme-bg-strong:#21190d;--ei-theme-text:#fff4cf;--ei-theme-muted:#e8cf99;--ei-theme-border:#d6ad55;--ei-theme-accent:#f6d477;--ei-theme-accent-text:#2d1b03;--ei-theme-hover:#f0bd4f;--ei-theme-radius:12px;--ei-theme-shadow:0 16px 36px rgba(0,0,0,.36);--ei-theme-font:Georgia,"Noto Serif TC",serif;}



/* v0.4.173: every Lobby-owned scene dialog button follows the active canonical
   frame theme instead of falling back to the old purple / white palette.
   Embedded module content remains untouched; only Lobby's own dialog controls
   are themed here. Custom object modals keep using their own selected theme. */
.ei-lobby.ei-lobby[class*="ei-lobby-frame-style-"]{
  --ei-dialog-primary-bg:var(--ei-theme-accent);
  --ei-dialog-primary-hover:var(--ei-theme-hover);
  --ei-dialog-primary-text:var(--ei-theme-accent-text);
  --ei-dialog-secondary-bg:var(--ei-theme-bg-strong);
  --ei-dialog-secondary-hover:var(--ei-theme-bg);
  --ei-dialog-secondary-text:var(--ei-theme-text);
  --ei-dialog-border:var(--ei-theme-border);
  --ei-dialog-radius:calc(var(--ei-theme-radius) * .72);
  --ei-dialog-shadow:var(--ei-theme-shadow);
  --ei-dialog-font:var(--ei-theme-font);
}

/* Shared button geometry for modal prompts, announcement prompts and contracts. */
.ei-lobby.ei-lobby[class*="ei-lobby-frame-style-"] :is(
  .ei-lobby-interaction-actions,
  .ei-lobby-announcement-actions,
  .ei-lobby-gm-offer-actions
) > button,
.ei-lobby.ei-lobby[class*="ei-lobby-frame-style-"] :is(
  .ei-lobby-echo-next,
  .ei-lobby-module-back,
  .ei-lobby-module-close
){
  appearance:none!important;
  border:1px solid var(--ei-dialog-border)!important;
  border-radius:var(--ei-dialog-radius)!important;
  font-family:var(--ei-dialog-font)!important;
  font-weight:850!important;
  text-shadow:none!important;
  opacity:1!important;
  cursor:pointer!important;
  transition:transform .14s ease,filter .14s ease,background .14s ease,border-color .14s ease,box-shadow .14s ease!important;
}

/* Primary / affirmative actions. */
.ei-lobby.ei-lobby[class*="ei-lobby-frame-style-"] :is(
  .ei-lobby-interaction-confirm,
  .ei-lobby-announcement-confirm,
  .ei-lobby-gm-offer-create,
  .ei-lobby-gm-offer-accept,
  .ei-lobby-object-contract-accept,
  .ei-lobby-echo-next
){
  background:var(--ei-dialog-primary-bg)!important;
  color:var(--ei-dialog-primary-text)!important;
  -webkit-text-fill-color:var(--ei-dialog-primary-text)!important;
  border-color:var(--ei-dialog-border)!important;
  box-shadow:var(--ei-dialog-shadow)!important;
}
.ei-lobby.ei-lobby[class*="ei-lobby-frame-style-"] :is(
  .ei-lobby-interaction-confirm,
  .ei-lobby-announcement-confirm,
  .ei-lobby-gm-offer-create,
  .ei-lobby-gm-offer-accept,
  .ei-lobby-object-contract-accept,
  .ei-lobby-echo-next
):not(:disabled):hover{
  background:var(--ei-dialog-primary-hover)!important;
  color:var(--ei-dialog-primary-text)!important;
  -webkit-text-fill-color:var(--ei-dialog-primary-text)!important;
  border-color:var(--ei-dialog-primary-hover)!important;
  filter:brightness(1.04)!important;
  transform:translateY(-1px)!important;
}

/* Secondary / cancel actions. */
.ei-lobby.ei-lobby[class*="ei-lobby-frame-style-"] :is(
  .ei-lobby-interaction-cancel,
  .ei-lobby-announcement-cancel,
  .ei-lobby-gm-offer-cancel,
  .ei-lobby-gm-offer-reject,
  .ei-lobby-object-contract-cancel,
  .ei-lobby-module-back,
  .ei-lobby-module-close
){
  background:var(--ei-dialog-secondary-bg)!important;
  color:var(--ei-dialog-secondary-text)!important;
  -webkit-text-fill-color:var(--ei-dialog-secondary-text)!important;
  border-color:var(--ei-dialog-border)!important;
  box-shadow:inset 0 0 0 1px var(--ei-dialog-border),var(--ei-dialog-shadow)!important;
}
.ei-lobby.ei-lobby[class*="ei-lobby-frame-style-"] :is(
  .ei-lobby-interaction-cancel,
  .ei-lobby-announcement-cancel,
  .ei-lobby-gm-offer-cancel,
  .ei-lobby-gm-offer-reject,
  .ei-lobby-object-contract-cancel,
  .ei-lobby-module-back,
  .ei-lobby-module-close
):not(:disabled):hover{
  background:var(--ei-dialog-secondary-hover)!important;
  color:var(--ei-dialog-secondary-text)!important;
  -webkit-text-fill-color:var(--ei-dialog-secondary-text)!important;
  border-color:var(--ei-theme-accent)!important;
  box-shadow:inset 0 0 0 2px var(--ei-theme-accent),var(--ei-dialog-shadow)!important;
  filter:brightness(1.03)!important;
  transform:translateY(-1px)!important;
}

/* The generic modal close button is part of the active Lobby frame theme.
   Custom object modals are excluded because they own an independent style. */
.ei-lobby.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-modal:not(.is-custom-object-modal) .ei-lobby-modal-close{
  background:var(--ei-dialog-secondary-bg)!important;
  color:var(--ei-dialog-secondary-text)!important;
  -webkit-text-fill-color:var(--ei-dialog-secondary-text)!important;
  border:1px solid var(--ei-dialog-border)!important;
  border-radius:var(--ei-dialog-radius)!important;
  box-shadow:var(--ei-dialog-shadow)!important;
  font-family:var(--ei-dialog-font)!important;
  text-shadow:none!important;
}
.ei-lobby.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-modal:not(.is-custom-object-modal) .ei-lobby-modal-close:hover{
  background:var(--ei-dialog-primary-bg)!important;
  color:var(--ei-dialog-primary-text)!important;
  -webkit-text-fill-color:var(--ei-dialog-primary-text)!important;
  border-color:var(--ei-dialog-border)!important;
  transform:translateY(-1px)!important;
}

/* Entry-lock popup owns its selected canonical style rather than the Lobby frame. */
.ei-lobby-entry-lock[class*="is-"] .ei-lobby-entry-lock-back{
  appearance:none!important;
  background:var(--ei-theme-accent)!important;
  color:var(--ei-theme-accent-text)!important;
  -webkit-text-fill-color:var(--ei-theme-accent-text)!important;
  border:1px solid var(--ei-theme-border)!important;
  border-radius:calc(var(--ei-theme-radius) * .72)!important;
  box-shadow:var(--ei-theme-shadow)!important;
  font-family:var(--ei-theme-font)!important;
  font-weight:850!important;
  text-shadow:none!important;
  transition:transform .14s ease,filter .14s ease,background .14s ease!important;
}
.ei-lobby-entry-lock[class*="is-"] .ei-lobby-entry-lock-back:hover{
  background:var(--ei-theme-hover)!important;
  color:var(--ei-theme-accent-text)!important;
  -webkit-text-fill-color:var(--ei-theme-accent-text)!important;
  transform:translateY(-1px)!important;
}

/* Disabled buttons keep their theme identity without switching to gray/white. */
.ei-lobby.ei-lobby[class*="ei-lobby-frame-style-"] :is(
  .ei-lobby-interaction-actions,
  .ei-lobby-announcement-actions,
  .ei-lobby-gm-offer-actions
) > button:disabled,
.ei-lobby.ei-lobby[class*="ei-lobby-frame-style-"] :is(.ei-lobby-echo-next,.ei-lobby-module-back,.ei-lobby-module-close):disabled{
  opacity:.48!important;
  filter:saturate(.45)!important;
  cursor:not-allowed!important;
  transform:none!important;
  box-shadow:none!important;
}

/* Keep compact mobile dialog buttons full-width while retaining theme styling. */
@media(max-width:640px){
  .ei-lobby.ei-lobby[class*="ei-lobby-frame-style-"] .ei-lobby-modal.is-confirm-prompt .ei-lobby-interaction-actions > button{
    width:100%!important;
  }
}


/* v0.4.176：EI 首次提示行動版防滿版策略
   - 同時只顯示一個尚未看過的提示。
   - 氣泡由 JS 依可用空間智慧改放上／下／左／右。
   - 手機先顯示短句，點圖示或氣泡展開完整文字。 */
@media(max-width:640px){
  [data-ei-firstfx="1"].ei-firstfx-mobile-suppressed{box-shadow:none!important;animation:none!important;filter:none!important;}
  .ei-firstfx-fixed-marker{pointer-events:auto!important;cursor:pointer!important;touch-action:manipulation!important;}
  .ei-firstfx-fixed-bubble{pointer-events:auto!important;cursor:pointer!important;touch-action:manipulation!important;max-width:min(224px,68vw)!important;max-height:88px!important;overflow:auto!important;font-size:12px!important;line-height:1.4!important;}
  .ei-firstfx-fixed-bubble.is-expanded{max-width:min(286px,82vw)!important;max-height:min(42vh,260px)!important;}
}

/* v0.4.177: lightweight non-member guest gate */
.ei-lobby-guest-gate{max-width:520px;margin:24px auto;padding:28px;box-sizing:border-box;text-align:left}
.ei-lobby-guest-gate-avatar{display:block;width:88px;height:88px;object-fit:cover;border-radius:50%;margin:0 auto 18px;border:3px solid currentColor}
.ei-lobby-guest-form{display:grid;gap:14px;margin-top:18px}
.ei-lobby-guest-form label{display:grid;gap:7px;font-weight:700}
.ei-lobby-guest-form input[type=text]{width:100%;box-sizing:border-box;min-height:46px;padding:10px 13px;border:1px solid rgba(127,127,127,.45);border-radius:10px;background:rgba(255,255,255,.92);color:#182033;font:inherit}
.ei-lobby-guest-form button{min-height:46px;padding:10px 18px;border-radius:10px;border:1px solid currentColor;cursor:pointer;font:inherit;font-weight:800}
@media(max-width:600px){.ei-lobby-guest-gate{margin:12px;padding:22px 18px}.ei-lobby-guest-gate-avatar{width:72px;height:72px}}

/* v0.4.181: force guest gate text contrast against aggressive theme label rules. */
.ei-lobby-guest-gate[class*="is-"]{
  color:var(--ei-theme-text)!important;
  -webkit-text-fill-color:var(--ei-theme-text)!important;
}
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-modal-title,
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form label,
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form label > span,
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form label span{
  color:var(--ei-theme-text)!important;
  -webkit-text-fill-color:var(--ei-theme-text)!important;
  opacity:1!important;
}
.ei-lobby-guest-gate[class*="is-"] > p{
  color:var(--ei-theme-muted)!important;
  -webkit-text-fill-color:var(--ei-theme-muted)!important;
}
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form input[type="text"]{
  background:var(--ei-theme-bg-strong)!important;
  color:var(--ei-theme-text)!important;
  -webkit-text-fill-color:var(--ei-theme-text)!important;
  border-color:var(--ei-theme-border)!important;
  caret-color:var(--ei-theme-accent)!important;
  font-family:var(--ei-theme-font)!important;
}
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form input[type="text"]::placeholder{
  color:var(--ei-theme-muted)!important;
  -webkit-text-fill-color:var(--ei-theme-muted)!important;
  opacity:.82;
}
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form input[type="text"]:focus{
  outline:2px solid var(--ei-theme-accent)!important;
  outline-offset:2px;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--ei-theme-accent) 22%,transparent)!important;
}
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form input[type="text"]:-webkit-autofill,
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form input[type="text"]:-webkit-autofill:hover,
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form input[type="text"]:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--ei-theme-text)!important;
  box-shadow:0 0 0 1000px var(--ei-theme-bg-strong) inset!important;
  transition:background-color 9999s ease-out 0s;
}


/* v0.4.182: dedicated guest name label; keep exact contrast of the selected EI style. */
.ei-lobby-guest-gate .ei-lobby-guest-form .ei-lobby-guest-name-label{
  display:block!important;
  color:var(--ei-theme-text,#fff4cf)!important;
  -webkit-text-fill-color:var(--ei-theme-text,#fff4cf)!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* v0.4.185: Entry Dialogue top-bar buttons must always use the text color paired with their own background.
   This overrides the older base rule that hard-coded -webkit-text-fill-color:#fff. */
.ei-lobby-module-layer.is-entry-dialogue .ei-lobby-entry-dialogue-btn[class*="ei-lobby-entry-style-"]{
  color:var(--ei-theme-text)!important;
  -webkit-text-fill-color:var(--ei-theme-text)!important;
}
.ei-lobby-module-layer.is-entry-dialogue .ei-lobby-entry-dialogue-btn[class*="ei-lobby-entry-style-"]:not(:disabled):hover{
  color:var(--ei-theme-accent-text)!important;
  -webkit-text-fill-color:var(--ei-theme-accent-text)!important;
}


/* v0.4.186: unify Entry Dialogue top-bar action buttons and improve guest CTA readability. */
.ei-lobby-module-layer.is-entry-dialogue .ei-lobby-entry-dialogue-replay,
.ei-lobby-module-layer.is-entry-dialogue .ei-lobby-entry-dialogue-never{
  font-weight:800!important;
}
.ei-lobby-module-layer.is-entry-dialogue .ei-lobby-entry-dialogue-replay:disabled{
  opacity:.48!important;
  filter:saturate(.45)!important;
  cursor:not-allowed!important;
  transform:none!important;
}
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form button[type="submit"]{
  font-size:20px!important;
  line-height:1.25!important;
  font-weight:800!important;
  background:var(--ei-theme-accent)!important;
  color:var(--ei-theme-accent-text)!important;
  -webkit-text-fill-color:var(--ei-theme-accent-text)!important;
  border-color:var(--ei-theme-border)!important;
}
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form button[type="submit"]:hover,
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form button[type="submit"]:focus{
  background:var(--ei-theme-hover)!important;
  color:var(--ei-theme-accent-text)!important;
  -webkit-text-fill-color:var(--ei-theme-accent-text)!important;
}


/* v0.4.189: guest CTA contrast/size hard fix. */
.ei-lobby-guest-gate .ei-lobby-guest-form .ei-lobby-guest-enter-button{
  font-size:20px!important;
  line-height:1.3!important;
  font-weight:800!important;
  color:var(--ei-theme-accent-text,#2d1b03)!important;
  -webkit-text-fill-color:var(--ei-theme-accent-text,#2d1b03)!important;
}

/* v0.4.190: guest email and Taiwan PDPA/marketing consent fields */
.ei-lobby-guest-gate .ei-lobby-guest-form input[type="email"]{width:100%;box-sizing:border-box;min-height:46px;padding:10px 13px;border:1px solid rgba(127,127,127,.45);border-radius:10px;background:rgba(255,255,255,.92);color:#182033;font:inherit}
.ei-lobby-guest-consent{display:grid;gap:8px;padding:12px 14px;border:1px solid color-mix(in srgb,currentColor 26%,transparent);border-radius:10px;background:rgba(127,127,127,.09)}
.ei-lobby-guest-consent-check{display:grid!important;grid-template-columns:22px 1fr!important;align-items:start;gap:9px!important;font-weight:600!important;line-height:1.55}
.ei-lobby-guest-consent-check input{margin-top:4px;width:18px;height:18px}
.ei-lobby-guest-consent details{font-size:13px;line-height:1.6;opacity:.9}
.ei-lobby-guest-consent summary{cursor:pointer;font-weight:700}
.ei-lobby-guest-consent details div{padding-top:8px;white-space:normal}


/* v0.4.191: unify guest name/email fields and rebuild the consent control. */
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form input[type="text"],
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form input[type="email"]{
  width:100%!important;
  box-sizing:border-box!important;
  min-height:48px!important;
  padding:11px 14px!important;
  border:1px solid var(--ei-theme-border)!important;
  border-radius:10px!important;
  background:var(--ei-theme-bg-strong)!important;
  color:var(--ei-theme-text)!important;
  -webkit-text-fill-color:var(--ei-theme-text)!important;
  caret-color:var(--ei-theme-accent)!important;
  font-family:var(--ei-theme-font)!important;
  font-size:16px!important;
  line-height:1.35!important;
  box-shadow:none!important;
}
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form input[type="text"]::placeholder,
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form input[type="email"]::placeholder{
  color:var(--ei-theme-muted)!important;
  -webkit-text-fill-color:var(--ei-theme-muted)!important;
  opacity:.82!important;
  font:inherit!important;
}
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form input[type="text"]:focus,
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form input[type="email"]:focus{
  outline:2px solid var(--ei-theme-accent)!important;
  outline-offset:2px!important;
  border-color:var(--ei-theme-accent)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--ei-theme-accent) 22%,transparent)!important;
}
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form input[type="email"]:-webkit-autofill,
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form input[type="email"]:-webkit-autofill:hover,
.ei-lobby-guest-gate[class*="is-"] .ei-lobby-guest-form input[type="email"]:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--ei-theme-text)!important;
  box-shadow:0 0 0 1000px var(--ei-theme-bg-strong) inset!important;
  transition:background-color 9999s ease-out 0s;
}
.ei-lobby-guest-gate .ei-lobby-guest-form .ei-lobby-guest-email-label{
  display:block!important;
  color:var(--ei-theme-text,#fff4cf)!important;
  -webkit-text-fill-color:var(--ei-theme-text,#fff4cf)!important;
  opacity:1!important;
  text-shadow:none!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent{
  display:grid!important;
  gap:10px!important;
  width:100%!important;
  box-sizing:border-box!important;
  padding:14px 16px!important;
  border:1px solid color-mix(in srgb,var(--ei-theme-border) 78%,transparent)!important;
  border-radius:12px!important;
  background:color-mix(in srgb,var(--ei-theme-bg-strong) 78%,transparent)!important;
  color:var(--ei-theme-text)!important;
  -webkit-text-fill-color:var(--ei-theme-text)!important;
  text-align:left!important;
  justify-items:stretch!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent-check{
  display:grid!important;
  grid-template-columns:24px minmax(0,1fr)!important;
  align-items:start!important;
  justify-content:start!important;
  justify-items:start!important;
  gap:11px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
  cursor:pointer!important;
  font-weight:600!important;
  line-height:1.6!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent-check > span{
  display:block!important;
  min-width:0!important;
  margin:0!important;
  color:var(--ei-theme-text)!important;
  -webkit-text-fill-color:var(--ei-theme-text)!important;
  text-align:left!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent-check input[type="checkbox"]{
  appearance:none!important;
  -webkit-appearance:none!important;
  display:grid!important;
  place-content:center!important;
  width:22px!important;
  height:22px!important;
  min-width:22px!important;
  margin:2px 0 0!important;
  padding:0!important;
  border:2px solid var(--ei-theme-border)!important;
  border-radius:6px!important;
  background:var(--ei-theme-bg-strong)!important;
  box-shadow:0 1px 3px rgba(0,0,0,.18)!important;
  cursor:pointer!important;
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent-check input[type="checkbox"]::before{
  content:""!important;
  width:10px!important;
  height:6px!important;
  border-left:3px solid var(--ei-theme-accent-text)!important;
  border-bottom:3px solid var(--ei-theme-accent-text)!important;
  transform:rotate(-45deg) scale(0)!important;
  transform-origin:center!important;
  transition:transform .14s ease!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent-check input[type="checkbox"]:checked{
  background:var(--ei-theme-accent)!important;
  border-color:var(--ei-theme-accent)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--ei-theme-accent) 20%,transparent)!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent-check input[type="checkbox"]:checked::before{
  transform:rotate(-45deg) scale(1)!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent-check input[type="checkbox"]:focus-visible{
  outline:2px solid var(--ei-theme-accent)!important;
  outline-offset:3px!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent details,
.ei-lobby-guest-gate .ei-lobby-guest-consent summary,
.ei-lobby-guest-gate .ei-lobby-guest-consent details div{
  width:100%!important;
  box-sizing:border-box!important;
  text-align:left!important;
  color:var(--ei-theme-muted)!important;
  -webkit-text-fill-color:var(--ei-theme-muted)!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent summary{
  display:list-item!important;
  cursor:pointer!important;
  font-weight:700!important;
}

/* v0.4.192: definitive guest field/consent UI selectors. */
.ei-lobby-guest-gate .ei-lobby-guest-form .ei-lobby-guest-field{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:8px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-form .ei-lobby-guest-field-label{
  display:block!important;
  margin:0!important;
  padding:0!important;
  color:var(--ei-theme-text,#fff4cf)!important;
  -webkit-text-fill-color:var(--ei-theme-text,#fff4cf)!important;
  font:inherit!important;
  font-weight:700!important;
  line-height:1.45!important;
  text-align:left!important;
  opacity:1!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-form .ei-lobby-guest-input,
.ei-lobby-guest-gate .ei-lobby-guest-form input.ei-lobby-guest-input{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  min-height:50px!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:12px 14px!important;
  border:1px solid var(--ei-theme-border,#d9a91a)!important;
  border-radius:10px!important;
  background:var(--ei-theme-bg-strong,#201404)!important;
  color:var(--ei-theme-text,#fff4cf)!important;
  -webkit-text-fill-color:var(--ei-theme-text,#fff4cf)!important;
  font-family:var(--ei-theme-font,inherit)!important;
  font-size:16px!important;
  font-weight:400!important;
  line-height:1.35!important;
  box-shadow:none!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-form .ei-lobby-guest-input::placeholder{
  color:var(--ei-theme-muted,#d8c79f)!important;
  -webkit-text-fill-color:var(--ei-theme-muted,#d8c79f)!important;
  font-family:var(--ei-theme-font,inherit)!important;
  font-size:16px!important;
  font-style:normal!important;
  opacity:.78!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-form .ei-lobby-guest-input:focus{
  border-color:var(--ei-theme-accent,#f4c63f)!important;
  outline:2px solid var(--ei-theme-accent,#f4c63f)!important;
  outline-offset:2px!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent{
  display:block!important;
  width:100%!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:14px 16px!important;
  text-align:left!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent-check{
  position:relative!important;
  display:grid!important;
  grid-template-columns:24px minmax(0,1fr)!important;
  gap:12px!important;
  align-items:start!important;
  justify-items:stretch!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
  cursor:pointer!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent-native{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  opacity:0!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent-box{
  grid-column:1!important;
  display:block!important;
  width:22px!important;
  height:22px!important;
  box-sizing:border-box!important;
  margin:2px 0 0!important;
  border:2px solid var(--ei-theme-border,#d9a91a)!important;
  border-radius:6px!important;
  background:var(--ei-theme-bg-strong,#201404)!important;
  box-shadow:0 2px 5px rgba(0,0,0,.22)!important;
  position:relative!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent-box::after{
  content:""!important;
  position:absolute!important;
  left:5px!important;
  top:2px!important;
  width:7px!important;
  height:12px!important;
  border:solid var(--ei-theme-accent-text,#2d1b03)!important;
  border-width:0 3px 3px 0!important;
  transform:rotate(45deg) scale(0)!important;
  transform-origin:center!important;
  transition:transform .14s ease!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent-native:checked + .ei-lobby-guest-consent-box{
  background:var(--ei-theme-accent,#f4c63f)!important;
  border-color:var(--ei-theme-accent,#f4c63f)!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent-native:checked + .ei-lobby-guest-consent-box::after{
  transform:rotate(45deg) scale(1)!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent-native:focus-visible + .ei-lobby-guest-consent-box{
  outline:2px solid var(--ei-theme-accent,#f4c63f)!important;
  outline-offset:3px!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent-text{
  grid-column:2!important;
  display:block!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  color:var(--ei-theme-text,#fff4cf)!important;
  -webkit-text-fill-color:var(--ei-theme-text,#fff4cf)!important;
  font:inherit!important;
  font-weight:600!important;
  line-height:1.65!important;
  text-align:left!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent details{
  margin:10px 0 0 36px!important;
  text-align:left!important;
}

/* v0.4.193: guest form hard repair, compatible with old cached markup. */
.ei-lobby-guest-gate .ei-lobby-guest-form input[name="ei_lobby_guest_name"],
.ei-lobby-guest-gate .ei-lobby-guest-form input[name="ei_lobby_guest_email"]{
  width:100%!important;min-height:50px!important;box-sizing:border-box!important;
  margin:0!important;padding:12px 14px!important;
  border:1px solid var(--ei-theme-border,#d9a91a)!important;border-radius:10px!important;
  background:var(--ei-theme-bg-strong,#201404)!important;
  color:var(--ei-theme-text,#fff4cf)!important;-webkit-text-fill-color:var(--ei-theme-text,#fff4cf)!important;
  font-family:var(--ei-theme-font,inherit)!important;font-size:16px!important;font-weight:400!important;line-height:1.35!important;
  box-shadow:none!important;appearance:none!important;-webkit-appearance:none!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-form input[name="ei_lobby_guest_name"]::placeholder,
.ei-lobby-guest-gate .ei-lobby-guest-form input[name="ei_lobby_guest_email"]::placeholder{
  color:var(--ei-theme-muted,#d8c79f)!important;-webkit-text-fill-color:var(--ei-theme-muted,#d8c79f)!important;
  font-family:var(--ei-theme-font,inherit)!important;font-size:16px!important;font-style:normal!important;opacity:.78!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-form label:has(input[name="ei_lobby_guest_marketing_consent"]){
  display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;align-items:start!important;
  gap:12px!important;width:100%!important;margin:0!important;padding:0!important;text-align:left!important;cursor:pointer!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-form input[name="ei_lobby_guest_marketing_consent"]{
  justify-self:start!important;margin:2px 0 0!important;width:22px!important;height:22px!important;
  accent-color:var(--ei-theme-accent,#f4c63f)!important;cursor:pointer!important;
}
.ei-lobby-guest-gate .ei-lobby-guest-consent,
.ei-lobby-guest-gate .ei-lobby-guest-consent *{text-align:left!important;}


/* v0.4.195: unified comic-bubble tail hardening (desktop + mobile).
   Keep the tail independent from theme resets and never let mobile containers clip it. */
.ei-lobby [data-ei-firstfx="1"].ei-firstfx-active,
.ei-lobby .ei-firstfx-object-overlay,
.ei-lobby .ei-lobby-object-hover-bubble,
body > .ei-firstfx-object-overlay,
.ei-firstfx-fixed-bubble{
  overflow:visible!important;
}
.ei-firstfx-fixed-bubble::before,
.ei-firstfx-fixed-bubble::after,
body > .ei-firstfx-object-overlay > .ei-firstfx-bubble::before,
body > .ei-firstfx-object-overlay > .ei-firstfx-bubble::after,
.ei-lobby .ei-firstfx-bubble::before,
.ei-lobby .ei-firstfx-bubble::after{
  content:""!important;display:block!important;visibility:visible!important;opacity:1!important;
  position:absolute!important;width:0!important;height:0!important;padding:0!important;margin:0!important;
  background:transparent!important;border-style:solid!important;pointer-events:none!important;overflow:visible!important;
}
/* Fixed/mobile first-tip bubble: outer border tail + inner fill tail. */
.ei-firstfx-fixed-bubble.is-top::before{left:var(--ei-firstfx-tip-x,50%)!important;top:100%!important;bottom:auto!important;transform:translateX(-50%)!important;border-width:12px 10px 0!important;border-color:rgba(255,255,255,.34) transparent transparent!important;}
.ei-firstfx-fixed-bubble.is-top::after{left:var(--ei-firstfx-tip-x,50%)!important;top:calc(100% - 2px)!important;bottom:auto!important;transform:translateX(-50%)!important;border-width:10px 8px 0!important;border-color:rgba(17,24,39,.94) transparent transparent!important;}
.ei-firstfx-fixed-bubble.is-bottom::before{left:var(--ei-firstfx-tip-x,50%)!important;bottom:100%!important;top:auto!important;transform:translateX(-50%)!important;border-width:0 10px 12px!important;border-color:transparent transparent rgba(255,255,255,.34)!important;}
.ei-firstfx-fixed-bubble.is-bottom::after{left:var(--ei-firstfx-tip-x,50%)!important;bottom:calc(100% - 2px)!important;top:auto!important;transform:translateX(-50%)!important;border-width:0 8px 10px!important;border-color:transparent transparent rgba(17,24,39,.94)!important;}
.ei-firstfx-fixed-bubble.is-left::before{left:100%!important;right:auto!important;top:var(--ei-firstfx-tip-y,50%)!important;transform:translateY(-50%)!important;border-width:10px 0 10px 12px!important;border-color:transparent transparent transparent rgba(255,255,255,.34)!important;}
.ei-firstfx-fixed-bubble.is-left::after{left:calc(100% - 2px)!important;right:auto!important;top:var(--ei-firstfx-tip-y,50%)!important;transform:translateY(-50%)!important;border-width:8px 0 8px 10px!important;border-color:transparent transparent transparent rgba(17,24,39,.94)!important;}
.ei-firstfx-fixed-bubble.is-right::before{right:100%!important;left:auto!important;top:var(--ei-firstfx-tip-y,50%)!important;transform:translateY(-50%)!important;border-width:10px 12px 10px 0!important;border-color:transparent rgba(255,255,255,.34) transparent transparent!important;}
.ei-firstfx-fixed-bubble.is-right::after{right:calc(100% - 2px)!important;left:auto!important;top:var(--ei-firstfx-tip-y,50%)!important;transform:translateY(-50%)!important;border-width:8px 10px 8px 0!important;border-color:transparent rgba(17,24,39,.94) transparent transparent!important;}
@media(max-width:640px){
  .ei-firstfx-fixed-bubble::before,.ei-firstfx-fixed-bubble::after{display:block!important;visibility:visible!important;opacity:1!important;}
}
