/* ESC Stage Lobby (CHANGES 200) - UI. Third-party stage art in /stage/art is beta placeholder art. */
#escModeToggle{display:inline-flex;align-items:center;flex:0 0 auto;border:1px solid var(--gold,#d4af37);border-radius:999px;overflow:hidden;margin:0 6px;font:600 12px/1 Oswald,sans-serif;letter-spacing:.04em;text-transform:uppercase;pointer-events:auto;height:28px}
#escModeToggle button{background:transparent;border:0;color:var(--gold,#d4af37);padding:0 12px;height:100%;font:inherit;cursor:pointer;white-space:nowrap}
#escModeToggle button[aria-pressed="true"]{background:var(--gold,#d4af37);color:var(--s-on,#111)}
@media (max-width:900px){#escModeToggle{display:inline-flex!important;margin:0 4px}#escModeToggle button{padding:0 8px;font-size:11px}}
body.esc-stage-mode .esc-hide-in-stage{display:none!important}
#escStage{position:fixed;left:0;right:0;bottom:0;z-index:300;display:none;flex-direction:column;background:var(--s-bg);color:var(--s-tx);font:400 14px/1.4 Oswald,system-ui,sans-serif;overflow:hidden}
body.esc-stage-mode #escStage{display:flex}
#escStage *{box-sizing:border-box}
#escStage button{font-family:inherit}
#escStage a{color:var(--gold,#d4af37)}
.es-btn{background:var(--s-card);color:var(--gold,#d4af37);border:1px solid color-mix(in srgb,var(--s-gold) 40%,var(--s-bd));border-radius:8px;padding:6px 12px;font:600 13px Oswald,sans-serif;cursor:pointer;letter-spacing:.03em}
.es-btn:hover{background:color-mix(in srgb,var(--s-gold) 18%,var(--s-card))}.es-btn.pri{background:var(--gold,#d4af37);color:var(--s-on,#14110a);border-color:var(--gold,#d4af37)}.es-btn.red{color:#ff8a8a;border-color:#6b2b2b}.es-btn.sm{padding:3px 8px;font-size:12px}.es-btn[disabled]{opacity:.45;cursor:not-allowed}
.es-muted{color:var(--s-mu)}.es-small{font-size:12px}
/* list view */
#esList{flex:1;overflow:auto;padding:14px 16px 40px;max-width:1100px;width:100%;margin:0 auto}
.esl-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.esl-head h2{margin:0 8px 0 0;font:600 22px Oswald,sans-serif;color:var(--gold,#d4af37);letter-spacing:.06em;text-transform:uppercase}
.esl-sp{flex:1}
.esl-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 12px}
.es-chip{background:var(--s-card);color:var(--s-tx);border:1px solid var(--s-bd);border-radius:999px;padding:3px 11px;font:500 12px Oswald,sans-serif;cursor:pointer}
.es-chip[aria-pressed="true"]{background:var(--gold,#d4af37);color:#14110a;border-color:var(--gold,#d4af37)}
.es-note{background:var(--s-card);border:1px solid var(--s-bd);border-radius:10px;padding:8px 12px;margin:0 0 12px;color:var(--s-tx)}
.es-row{display:grid;grid-template-columns:76px 1fr auto;gap:12px;align-items:center;background:linear-gradient(180deg,var(--s-card),#120e21);border:1px solid var(--s-bd);border-radius:12px;padding:10px;margin-bottom:8px}
.es-row:hover{border-color:#6b5a2a}
.es-row .th{width:76px;height:54px;border-radius:8px;background:#000 center/cover no-repeat;border:1px solid var(--s-bd);position:relative;overflow:hidden}
.es-row .th img{position:absolute;inset:auto 3px 3px auto;height:20px;width:auto;max-width:60%;object-fit:contain;background:rgba(0,0,0,.55);border-radius:4px;padding:1px 3px}
.es-row .nm{font:600 16px Oswald,sans-serif;color:var(--s-tx);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.es-row .sub{color:var(--s-mu);font-size:12px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:62vw}
.es-row .np{color:var(--s-tx);font-size:13px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.es-row .rt{text-align:right;display:flex;flex-direction:column;gap:5px;align-items:flex-end}
.es-row .cnt{font:600 15px Oswald,sans-serif;color:#9de6a8}
.es-tag{font:600 10px Oswald,sans-serif;letter-spacing:.08em;text-transform:uppercase;border-radius:4px;padding:1px 6px;background:color-mix(in srgb,var(--s-gold) 18%,var(--s-card));color:#cdbf8a}
.es-tag.live{background:#5a1c1c;color:#ffb0b0}.es-tag.ok{background:#1d4a2a;color:#a8f0b8}.es-tag.lock{background:#3b2a12;color:#f0c36a}.es-tag.esc{background:#d4af37;color:#14110a}
/* room */
#esRoom{flex:1;display:none;min-height:0}
#escStage[data-view="room"] #esRoom{display:flex}
#escStage[data-view="room"] #esList{display:none}
#escStage[data-view="list"] #esRoom{display:none}
.er-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:auto}
/* ===== Stage room layout (Release 2): Turntable-style stage, backstage dock, 3 screens; all colours follow the header theme variables ===== */
#escStage,#esModal,#esToast{--s-bg:var(--bg,#0b0912);--s-chrome:var(--chrome,#100c1d);--s-card:color-mix(in srgb,var(--chrome,#171229),#fff 8%);--s-bd:var(--border,#2d2548);--s-tx:var(--text,#eee);--s-mu:var(--muted,#a79fb8);--s-gold:var(--gold,#d4af37);--s-on:#14110a;--s-glass:color-mix(in srgb,var(--chrome,#100c1d) 55%,transparent);--s-glass2:color-mix(in srgb,var(--chrome,#100c1d) 70%,transparent);--s-in:color-mix(in srgb,var(--chrome,#0a0814),#000 35%)}
html[data-theme="noir"] #escStage,html[data-theme="noir"] #esModal,html[data-theme="noir"] #esToast{--s-on:#0a0a0a}
#esRoom{position:relative;isolation:isolate;overflow:hidden;--bgimg:none}
#esRoom::before{content:"";position:absolute;inset:-24px;z-index:-1;background:var(--bgimg) center/cover no-repeat,var(--s-bg);filter:blur(16px) brightness(.5) saturate(1.1)}
#esRoom.globe::before{display:none}
.er-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;container-type:inline-size;container-name:erm}
.er-bar{display:flex;gap:8px;align-items:center;padding:6px 10px;background:var(--s-glass2);border-bottom:1px solid var(--s-bd);flex-wrap:wrap;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);min-height:48px}
.er-bar .t{font:600 17px Oswald,sans-serif;color:var(--s-tx);margin-right:2px;max-width:34cqw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.er-hnow{display:flex;gap:8px;align-items:center;flex:1 1 140px;min-width:0;color:var(--s-tx);font:500 13px Oswald,sans-serif;overflow:hidden;white-space:nowrap}
.er-hnow .ic{color:var(--s-gold)}.er-hnow .tt{overflow:hidden;text-overflow:ellipsis;min-width:0}.er-hnow .rem{color:var(--s-gold);font-weight:600;flex:none}
.er-stat{font:500 12px Oswald,sans-serif;color:var(--s-mu);white-space:nowrap}
.er-stagebox{position:relative;flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;container-type:size;padding:6px}
.er-scene{--u:8.6cqw;position:relative;width:min(100cqw,calc(100cqh*16/9));aspect-ratio:16/9;overflow:hidden;background:#0b0912 center/100% 100% no-repeat;container-type:inline-size;flex:none;border-radius:6px;box-shadow:0 8px 30px rgba(0,0,0,.55)}
.er-scene.globe{background:transparent;box-shadow:none}
.er-art{position:absolute;inset:0;background:url(./stage/art/stage.png) center top/100% auto no-repeat;pointer-events:none}
.er-scene.bgimg .er-art{display:none}.er-scene.globe .er-art{opacity:.45}
.er-floor{position:absolute;left:0;right:0;bottom:0;height:34%;background:url(./stage/art/floor.jpg) center/cover;opacity:.9;pointer-events:none}
.er-scene.bgimg .er-floor{display:none}.er-scene.globe .er-floor{opacity:.3}
.er-vig{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.38))}
.er-screen{position:absolute;z-index:2;background:#05040a;border:max(2px,.25cqw) solid color-mix(in srgb,var(--s-gold) 40%,#262033);border-radius:.6cqw;overflow:hidden;box-shadow:0 0 1.6cqw color-mix(in srgb,var(--s-gold) 35%,transparent)}
.er-screen.main{left:50%;transform:translateX(-50%);top:3%;width:34%;aspect-ratio:16/9}
.er-screen.side{top:7%;width:24%;aspect-ratio:16/10}
.er-screen.l{left:4%}.er-screen.r{right:4%}
.er-screen.main.off{left:0;top:0;transform:none;width:2px;height:2px;opacity:0;pointer-events:none;border:0;box-shadow:none}
.er-screen .vid,.er-screen .vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.er-screen .sbg{position:absolute;inset:-6%;width:112%;height:112%;object-fit:cover;filter:blur(8px) brightness(.55) saturate(1.3)}
.er-screen .cov{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.er-screen .chip{position:absolute;left:.5cqw;top:.4cqw;z-index:2;font:700 clamp(7px,.95cqw,11px) Oswald,sans-serif;letter-spacing:.12em;text-transform:uppercase;background:rgba(0,0,0,.62);color:#fff;border-radius:3px;padding:0 .6cqw}
.er-screen .ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4cqw;text-align:center;color:#fff;font:600 clamp(9px,1.5cqw,16px) Oswald,sans-serif;letter-spacing:.06em;padding:1cqw}
.er-screen .ph img{max-width:60%;max-height:55%;object-fit:contain}.er-screen .ph small{font-weight:400;opacity:.8;font-size:.8em}
.er-screen a.adl{position:absolute;inset:0;display:block}.er-screen a.adl img{width:100%;height:100%;object-fit:contain;display:block}
.er-tap{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.72);color:#fff;font:600 15px Oswald;cursor:pointer;z-index:3;text-align:center;padding:6px}
.er-booth{position:absolute;left:50%;transform:translateX(-50%);top:72.5%;width:46%;height:25.5%;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}
.er-desk{position:relative;z-index:4;flex:none;width:100%;height:5.2cqw;display:flex;align-items:center;justify-content:center;border-radius:.8cqw .8cqw .3cqw .3cqw;background:linear-gradient(180deg,#2b2a33,#101016 60%,#07070a);border:1px solid color-mix(in srgb,var(--s-gold) 45%,#3a3944);border-top:.35cqw solid color-mix(in srgb,var(--s-gold) 60%,#555);box-shadow:0 .8cqw 1.8cqw rgba(0,0,0,.6)}
.er-desk::before,.er-desk::after{content:"";position:absolute;top:50%;width:3.4cqw;height:3.4cqw;margin-top:-1.7cqw;border-radius:50%;background:radial-gradient(circle,#777 0 8%,#15151a 9% 40%,#2a2a32 41% 46%,#0b0b0e 47%);box-shadow:0 0 .6cqw rgba(0,0,0,.8)}
.er-desk::before{left:1.6cqw}.er-desk::after{right:1.6cqw}
.er-led{position:absolute;left:50%;transform:translateX(-50%);top:39%;z-index:3;width:42%;height:7%;display:flex;align-items:center;gap:1cqw;padding:0 1.2cqw .7cqw;background:#07060b;border:1px solid #2c2a33;border-radius:.5cqw;--led:#ffb02e;box-shadow:inset 0 0 .8cqw #000,0 0 1.2cqw color-mix(in srgb,var(--s-gold) 30%,transparent)}
.er-led .win{flex:1;min-width:0;overflow:hidden;white-space:nowrap}
.er-led .tx{display:inline-block;font:700 clamp(9px,1.6cqw,18px)/1.2 'Courier New',ui-monospace,monospace;letter-spacing:.06em;color:var(--led);text-shadow:0 0 .6cqw var(--led);text-transform:uppercase}
.er-led .tx.mq{animation:ermq 9s linear infinite alternate}
@keyframes ermq{0%,12%{transform:translateX(0)}88%,100%{transform:translateX(var(--d,0))}}
.er-led .tm{flex:none;font:700 clamp(9px,1.4cqw,16px)/1 'Courier New',ui-monospace,monospace;color:var(--led);text-shadow:0 0 .5cqw var(--led)}
.er-led .dots{position:absolute;left:1cqw;right:1cqw;bottom:.45cqw;height:.45cqw;background:repeating-linear-gradient(90deg,#3b2a0d 0 .3cqw,transparent .3cqw .6cqw)}
.er-led .dots i{display:block;height:100%;width:0;background:repeating-linear-gradient(90deg,var(--led) 0 .3cqw,transparent .3cqw .6cqw)}
.er-decks{position:relative;width:100%;flex:1 1 auto;min-height:0;display:flex;justify-content:center}
.er-deck{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;position:relative}
.er-deck .av{flex:1 1 auto;min-height:0;position:relative;z-index:1;margin-bottom:-1cqw;cursor:pointer;display:flex;align-items:flex-end}
.er-deck .av img{height:100%;width:auto;display:block}
.er-deck.cur .av img{animation:erbob .6s ease-in-out infinite alternate}
@keyframes erbob{to{transform:translateY(-3%)}}
.er-deck.stepup .av{animation:erstep 1s cubic-bezier(.2,.9,.3,1.1) both}
@keyframes erstep{0%{transform:translateY(240%) scale(.6);opacity:0}25%{opacity:1}100%{transform:none;opacity:1}}
.er-desk .dm{display:flex;gap:.8cqw;align-items:center;justify-content:center;z-index:3;max-width:70%;min-width:0}.er-desk .meta{display:flex;gap:.6cqw;align-items:center;justify-content:center;min-width:0;flex:0 1 auto}
.er-desk .nm{background:rgba(0,0,0,.68);border-radius:999px;padding:.1cqw 1cqw;font:600 clamp(9px,1.3cqw,14px)/1.3 Oswald,sans-serif;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:16cqw}
.er-desk .pt{background:var(--s-gold);color:var(--s-on);border-radius:999px;padding:.1cqw .9cqw;font:700 clamp(9px,1.2cqw,13px)/1.3 Oswald,sans-serif;white-space:nowrap}
.er-deck.empty .av{align-items:center;justify-content:center;color:#fff;font:600 clamp(9px,1.5cqw,16px) Oswald,sans-serif;text-shadow:0 1px 3px #000;text-align:center;letter-spacing:.06em;cursor:default}
.er-fl{position:absolute;inset:0;z-index:2;pointer-events:none}
.er-fl .p{position:absolute;transform:translate(-50%,-100%);transition:left .4s,top .4s;pointer-events:auto;cursor:pointer}
.er-fl .p img{height:100%;width:auto;display:block}
.er-fl .p.me::after{content:"";position:absolute;left:10%;right:10%;bottom:-2%;height:6%;border-radius:50%;background:color-mix(in srgb,var(--s-gold) 70%,transparent)}
.er-fl .you,.er-you{position:absolute;left:50%;transform:translateX(-50%);bottom:100%;margin-bottom:.2cqw;background:var(--s-gold);color:var(--s-on);font:700 clamp(8px,1.05cqw,12px)/1 Oswald,sans-serif;letter-spacing:.1em;padding:.25cqw .7cqw;border-radius:999px;white-space:nowrap;z-index:2}
.er-fl .you::after{content:"";position:absolute;left:50%;top:100%;margin-left:-.4cqw;border:.4cqw solid transparent;border-top-color:var(--s-gold)}
.er-fl .p.dance img,.er-deck.dance .av img{animation:erdance .45s ease-in-out 8}
@keyframes erdance{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-14%) rotate(-5deg)}70%{transform:translateY(-6%) rotate(5deg)}}
.bub{position:absolute;left:50%;bottom:100%;transform:translateX(-50%);font-size:clamp(14px,2.4cqw,22px);animation:erbub 3s forwards;pointer-events:none;z-index:25}
@keyframes erbub{0%{opacity:0;transform:translate(-50%,6px)}10%,80%{opacity:1}100%{opacity:0;transform:translate(-50%,-14px)}}
.cb{position:absolute;left:50%;bottom:100%;transform:translateX(-50%);margin-bottom:1.8cqw;width:max-content;max-width:17cqw;background:rgba(0,0,0,.74);border-radius:.8cqw;padding:.3cqw .8cqw .4cqw;font:500 clamp(9px,1.2cqw,13px)/1.25 Oswald,sans-serif;color:#fff;text-align:left;z-index:30;pointer-events:none;animation:ercb 7s forwards;word-break:break-word}
.er-deck .cb{margin-bottom:.4cqw}
.cb b{display:block;font-weight:700;font-size:.92em}
@keyframes ercb{0%{opacity:0}6%,88%{opacity:1}100%{opacity:0}}
.r-superuser{color:#ff8a8a!important}.r-admin,.r-staff{color:#ffb86b!important}.r-partner{color:#8ccbff!important}.r-artist{color:#dda8ff!important}.r-mod{color:#7de3b0!important}.r-user{color:var(--s-tx)}
.er-closed{position:absolute;inset:0;background:rgba(5,4,10,.9);display:none;flex-direction:column;gap:10px;align-items:center;justify-content:center;z-index:40;text-align:center;padding:16px;color:#fff}
.er-dock{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center;padding:6px 10px;background:var(--s-glass2);border-top:1px solid var(--s-bd);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.er-back{display:flex;flex-direction:column;gap:2px;min-width:0}
.er-back .lab{font:600 10px Oswald,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--s-mu)}
.er-bslots{display:flex;gap:6px;align-items:flex-end;min-width:0;overflow:hidden}
.er-bs{position:relative;flex:0 0 66px;width:66px;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;cursor:pointer;background:none;border:0;padding:0;color:var(--s-tx)}
.er-bs .av{height:42px;width:auto;display:block}
.er-bs .nm{font:500 10px/1.2 Oswald,sans-serif;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;color:var(--s-tx)}
.er-bs .no{position:absolute;left:3px;top:2px;background:var(--s-gold);color:var(--s-on);font:700 10px/1 Oswald;border-radius:999px;padding:2px 5px}
.er-bs.me .nm{color:var(--s-gold);font-weight:700}
.er-bs.enter{animation:erenter .8s ease-out both}
@keyframes erenter{from{transform:translateX(-30px);opacity:0}to{transform:none;opacity:1}}
.er-bs.empty .play{background:var(--s-gold);color:var(--s-on);border-radius:7px;font:700 10px/1.1 Oswald,sans-serif;letter-spacing:.03em;padding:5px 3px;min-height:30px;width:100%;display:flex;align-items:center;justify-content:center;text-align:center;margin-bottom:2px}
.er-bs.empty[disabled] .play{background:transparent;color:var(--s-mu);border:1px dashed var(--s-bd)}
.er-bs[disabled]{cursor:default}
.er-more{align-self:center;color:var(--s-mu);font:600 12px Oswald;padding:0 4px;white-space:nowrap}
.er-votes{display:flex;align-items:center;gap:12px;justify-content:center}
.er-rb{position:relative;width:56px;height:56px;border-radius:50%;border:3px solid;font:700 10px/1 Oswald,sans-serif;letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--s-tx);text-shadow:0 1px 2px #000;box-shadow:0 3px 8px rgba(0,0,0,.55),inset 0 2px 4px rgba(255,255,255,.35);padding:0;flex:none}
.er-rb.dn{background:radial-gradient(circle at 35% 30%,#ff7a7a,#b3122b 70%);border-color:#ffc2c2}
.er-rb.up{background:radial-gradient(circle at 35% 30%,#62f09a,#117a3d 70%);border-color:#bdf8d4}
.er-rb.on{outline:3px solid #fff;outline-offset:2px}
.er-rb:hover:not([disabled]){filter:brightness(1.15)}.er-rb[disabled]{filter:grayscale(.85) brightness(.65);cursor:not-allowed}
.er-rb .n{position:absolute;right:-6px;top:-6px;background:#000;color:var(--s-tx);border:1px solid #fff;border-radius:999px;font:700 10px/1 Oswald;padding:2px 5px;min-width:18px;text-align:center}
.er-rb .n:empty{display:none}
.er-gz{min-width:170px;text-align:center}
.er-gz .lb{font:600 10px Oswald,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--s-mu)}
.er-gz .bar{position:relative;height:12px;border-radius:6px;margin:3px 0;background:linear-gradient(90deg,#b3122b,#6d6d75 50%,#117a3d);border:1px solid rgba(255,255,255,.25)}
.er-gz .bar i{position:absolute;top:-4px;left:50%;width:5px;height:18px;margin-left:-2px;background:#fff;border-radius:2px;box-shadow:0 0 4px #000;transition:left .6s}
.er-gz .ends{display:flex;justify-content:space-between;font:700 11px Oswald,sans-serif}.er-gz .sk{color:#ff8f8f}.er-gz .ro{color:#7be8a6}
.er-hint{font:400 12px/1.35 Oswald,sans-serif;color:var(--s-mu);text-align:right;min-width:0}
@container erm (max-width:1040px){
  .er-dock{grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .er-hint{display:none}
}
@container erm (max-width:620px){
  .er-dock{grid-template-columns:minmax(0,1fr);gap:4px}
}
.er-meta{display:flex;flex-wrap:wrap;gap:6px;padding:6px 10px;background:var(--s-glass2);border-top:1px solid var(--s-bd);align-items:center;color:var(--s-mu)}
.er-side{width:360px;flex:0 0 360px;border-left:1px solid var(--s-bd);display:flex;flex-direction:column;background:var(--s-glass2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);min-height:0}
.er-banner{border:1px solid var(--s-gold);background:color-mix(in srgb,var(--s-gold) 14%,transparent);color:var(--s-tx);border-radius:10px;padding:8px 10px;font-size:13px}
.er-banner b{color:var(--s-gold)}
/* short landscape phones / small windows */
@media (max-height:520px) and (min-width:821px){
  .er-dock,.er-dock{grid-template-columns:minmax(0,1fr) auto!important;gap:6px!important}
  .er-bs{flex-basis:44px!important;width:44px!important;min-height:40px!important}.er-bs .av{height:26px!important}.er-bs .nm{font-size:9px}
  .er-bs.empty .play{font-size:9px;min-height:24px}
  .er-rb{width:40px!important;height:40px!important;font-size:8px!important}.er-gz{min-width:96px!important}.er-gz .ends{font-size:9px}
  .er-bar .es-btn{min-height:28px}
  .er-side{width:270px;flex-basis:270px}
  .er-bar{min-height:38px;padding:3px 8px}.er-bar .t{font-size:15px}
  .er-dock{padding:3px 8px;gap:6px}.er-back .lab{display:none}.er-bs{flex-basis:50px;width:50px;min-height:44px}.er-bs .av{height:30px}
  .er-rb{width:46px;height:46px;font-size:9px}.er-gz{min-width:120px}.er-gz .lb{display:none}
  .er-meta{display:none}.er-hint{display:none}.er-hnow{display:none}
}
/* phones and narrow windows: stacked layout */
@media (max-width:820px){
  .es-row{grid-template-columns:60px 1fr auto;gap:8px;padding:8px}.es-row .th{width:60px;height:46px}
  #esRoom{flex-direction:column;overflow:auto;overflow-x:hidden}
  .er-main{flex:0 0 auto;overflow:visible;container-type:inline-size}
  .er-bar{padding:4px 8px;gap:6px}.er-bar .t{font-size:15px;max-width:38cqw}
  .er-hnow{order:9;flex:1 0 100%}.er-hnow .tt{flex:1}
  .er-stagebox{container-type:normal;display:block;padding:0;flex:none}
  .er-scene{width:100%;aspect-ratio:1/.98;border-radius:0;background-size:cover}
  .er-screen.main{display:none}
  .er-screen.side{top:2.5%;width:47%}.er-screen.l{left:2%}.er-screen.r{right:2%}
  .er-booth{top:70%;width:96%;height:27%}
  .er-led{top:34.5%;width:92%;height:7.5%;padding:0 2.4cqw 1.6cqw}
  .er-desk{height:9cqw}.er-desk::before,.er-desk::after{width:6cqw;height:6cqw;margin-top:-3cqw;left:auto}.er-desk::before{left:2cqw}.er-desk::after{right:2cqw}
  .er-led .tx{font-size:clamp(9px,3cqw,13px)}.er-led .tm{font-size:clamp(8px,2.8cqw,12px)}
  .er-led .dots{height:1.2cqw;bottom:1.1cqw}
  .er-desk .nm{font-size:11px;max-width:40cqw}.er-desk .pt{font-size:11px}
  .er-screen .chip{font-size:8px}.er-screen .ph{font-size:12px}
  .cb{max-width:46cqw;font-size:11px;margin-bottom:1.5cqw}.er-fl .you{font-size:9px;padding:2px 6px}
  .er-dock{padding:6px 8px;position:sticky;bottom:0;z-index:20;background:color-mix(in srgb,var(--s-chrome) 92%,transparent)}
  .er-dock .er-votes{order:-1}
  .er-bs{flex-basis:56px;width:56px;min-height:60px}.er-bs .av{height:38px}
  .er-rb{width:52px;height:52px}.er-votes{gap:8px}.er-gz{min-width:0;flex:1;max-width:190px}
  .er-side{width:100%;flex:1 1 auto;border-left:0;border-top:1px solid var(--s-bd);min-height:60vh}
  #esRoom:not(.globe) .er-side{margin-bottom:56px}
  .er-pane{max-height:70vh}
  #escStage .es-btn,#escStage .es-chip,#escStage .er-tabs button{min-height:44px}
  #escStage .es-btn{min-width:44px}
  #escStage .es-chip{padding:0 14px}
  #escStage input[type=text],#escStage input:not([type]),#escStage select,#escStage textarea,.es-in{min-height:44px;font-size:16px}
  #escStage input[type=checkbox]{width:22px;height:22px}
  .es-chk{min-height:44px;align-items:center}
  .er-msg .fl,.cm .rep{min-width:44px;min-height:44px}
  .es-person{min-height:44px}
}
@media (max-width:820px) and (max-height:480px){
  .er-scene{aspect-ratio:16/9}.er-dock{position:static}
}
@media (prefers-reduced-motion:reduce){.er-led .tx.mq,.er-deck.cur .av img,.er-bs.enter,.er-deck.stepup .av{animation:none}}

.er-closed{position:absolute;inset:0;background:rgba(5,4,10,.9);display:none;flex-direction:column;gap:10px;align-items:center;justify-content:center;z-index:9;text-align:center;padding:16px}
.er-tabs{display:flex;border-bottom:1px solid var(--s-bd)}
.er-tabs button{flex:1;background:transparent;border:0;border-bottom:3px solid transparent;color:var(--s-mu);padding:9px 4px;font:600 14px Oswald,sans-serif;cursor:pointer;letter-spacing:.05em;text-transform:uppercase}
.er-tabs button[aria-selected="true"]{color:var(--gold,#d4af37);border-bottom-color:var(--gold,#d4af37)}
.er-pane{flex:1;overflow:auto;padding:10px;min-height:0;display:none}
.er-pane.on{display:flex;flex-direction:column;gap:8px}
.er-pane h4{margin:10px 0 4px;color:var(--gold,#d4af37);font:600 13px Oswald;letter-spacing:.08em;text-transform:uppercase}
.er-pane h4:first-child{margin-top:0}
.er-card{background:var(--s-card);border:1px solid var(--s-bd);border-radius:10px;padding:8px 10px}
.er-trk{display:grid;grid-template-columns:52px 1fr auto;gap:8px;align-items:center;padding:5px 0;border-bottom:1px solid var(--s-bd)}
.er-trk img{width:52px;height:38px;object-fit:cover;border-radius:4px;background:#000}
.er-trk .tt{font-size:13px;color:var(--s-tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.er-trk .ss{font-size:11px;color:var(--s-mu);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.er-trk .ac{display:flex;gap:3px}
.es-lv{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;margin-right:4px;line-height:1}
.es-lv b{font:700 10px Oswald;color:var(--s-on,#14110a);background:var(--gold,#d4af37);border-radius:3px;padding:0 4px}
.es-lv i{display:block;height:2px;width:100%;background:var(--s-bd);margin-top:1px}.es-lv i u{display:block;height:100%;background:#9de6a8}
.es-bd{font:600 9px Oswald;letter-spacing:.06em;text-transform:uppercase;padding:0 5px;border-radius:3px;margin-left:3px;background:color-mix(in srgb,var(--s-gold) 18%,var(--s-card));color:#cdbf8a;vertical-align:middle}
.es-bd.Artist{background:#3a1d5a;color:#e0b8ff}.es-bd.Partner{background:#1d3a5a;color:#b8dcff}.es-bd.Staff{background:#5a3a1d;color:#ffd9b8}.es-bd.SuperUser,.es-bd[data-b="Super User"]{background:#5a1d1d;color:#ffb8b8}.es-bd[data-b="Early Beta"]{background:#1d5a3a;color:#b8ffd9}
.er-chatlog{flex:1;overflow:auto;display:flex;flex-direction:column;gap:3px;min-height:120px}
.er-msg{font-size:13px;line-height:1.35;word-break:break-word;padding:2px 0}
.er-msg .who{font-weight:600;color:var(--s-gold);cursor:pointer}
.er-msg.me .who{color:#9de6a8}.er-msg.sys{color:var(--s-mu);font-style:italic;font-size:12px}.er-msg.act{font-style:italic;color:var(--s-tx)}
.er-msg .fl{opacity:0;cursor:pointer;margin-left:4px;font-size:11px;color:var(--s-mu);border:0;background:transparent}.er-msg:hover .fl,.er-msg:focus-within .fl{opacity:1}
@media (hover:none){.er-msg .fl{opacity:.6}}
.er-chatin{display:flex;gap:6px;flex-wrap:wrap}
.er-chatin input[type=text]{flex:1;min-width:0;background:var(--s-in);color:var(--s-tx);border:1px solid var(--s-bd);border-radius:8px;padding:8px}
.er-emo{display:flex;gap:4px;flex-wrap:wrap}
.er-emo button{background:var(--s-card);border:1px solid var(--s-bd);border-radius:6px;font-size:16px;cursor:pointer;padding:1px 6px}
.er-signin{text-align:center;padding:18px 10px}
.er-sign-box{background:linear-gradient(180deg,var(--s-card),var(--s-card));border:1px solid color-mix(in srgb,var(--s-gold) 45%,var(--s-bd));border-radius:12px;padding:14px;text-align:center}
.es-in{width:100%;background:var(--s-in);color:var(--s-tx);border:1px solid var(--s-bd);border-radius:8px;padding:8px;font:inherit;margin:3px 0 8px}
.es-lab{display:block;color:var(--s-mu);font-size:11px;letter-spacing:.07em;text-transform:uppercase}
.es-chk{display:flex;gap:8px;align-items:flex-start;font-size:13px;margin:6px 0}
/* modal */
#esModal{position:fixed;inset:0;z-index:420;background:rgba(0,0,0,.72);display:none;align-items:center;justify-content:center;padding:12px}
#esModal.on{display:flex}
#esModal .box{background:var(--s-chrome);border:1px solid var(--gold,#d4af37);border-radius:14px;padding:16px;width:min(560px,100%);max-height:92vh;overflow:auto;color:var(--s-tx);position:relative}
#esModal.wide .box{width:min(820px,100%)}
#esModal h3{margin:0 0 8px;color:var(--gold,#d4af37);font:600 19px Oswald;letter-spacing:.05em}
#esModal .x{position:absolute;right:10px;top:8px;background:transparent;border:0;color:var(--s-tx);font-size:22px;cursor:pointer}
.es-av-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:6px}
.es-av-grid button{background:var(--s-card);border:2px solid var(--s-bd);border-radius:8px;padding:2px;cursor:pointer;height:74px}
.es-av-grid button[aria-pressed="true"]{border-color:#d4af37}.es-av-grid button[disabled]{opacity:.35}
.es-av-grid img{height:100%;max-width:100%;object-fit:contain}
.es-bg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}
.es-bg-grid button{height:54px;border:2px solid var(--s-bd);border-radius:6px;background:#000 center/cover;cursor:pointer;color:var(--s-tx);font:600 10px Oswald;text-shadow:0 1px 2px #000;padding:0;display:flex;align-items:flex-end;justify-content:center}
.es-bg-grid button[aria-pressed="true"]{border-color:#d4af37}
#esToast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:440;background:var(--s-card);border:1px solid var(--gold,#d4af37);color:var(--s-tx);border-radius:10px;padding:8px 14px;display:none;max-width:90vw;font:500 14px Oswald}
.es-bell{position:relative}.es-bell b{position:absolute;right:-4px;top:-6px;background:#e33;color:var(--s-tx);border-radius:999px;font:700 10px Oswald;padding:0 5px}
.es-prev iframe{width:100%;height:152px;border:0;border-radius:8px;margin-top:6px}
/* v2 additions matching the JS class names */
.es-h{margin:12px 0 5px;color:var(--gold,#d4af37);font:600 13px Oswald;letter-spacing:.08em;text-transform:uppercase}
.es-list{display:flex;flex-direction:column}
.es-trk{display:grid;grid-template-columns:52px 1fr auto;gap:8px;align-items:center;padding:5px 0;border-bottom:1px solid var(--s-bd)}
.es-trk>img,.es-trk>.ph{width:52px;height:38px;object-fit:cover;border-radius:4px;background:#000}
.es-trk .ti{font-size:13px;color:var(--s-tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.es-trk .by{font-size:11px;color:var(--s-mu);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.es-trk .i{min-width:0}
.acts{display:flex;gap:3px;align-items:center}
.es-person{display:flex;gap:8px;align-items:center;padding:5px 6px;border-radius:8px;cursor:pointer}
.es-person:hover{background:color-mix(in srgb,var(--s-gold) 10%,transparent)}.es-person.cur{background:color-mix(in srgb,var(--s-gold) 16%,transparent);border-left:3px solid var(--gold,#d4af37)}
.es-person>img{width:30px;height:38px;object-fit:contain;flex:0 0 auto}
.es-person .i{flex:1;min-width:0;font-size:13px}
.es-modrow{display:flex;flex-wrap:wrap;gap:5px;align-items:center;border:1px dashed color-mix(in srgb,var(--s-gold) 45%,var(--s-bd));border-radius:8px;padding:6px;margin:6px 0}
.es-prof-head{display:flex;gap:12px;align-items:center;margin-bottom:8px}
.es-prof-head>img{height:110px;width:auto;object-fit:contain}
.es-signin-chat{margin:auto;text-align:center;padding:18px 10px;background:linear-gradient(180deg,var(--s-card),var(--s-card));border:1px solid color-mix(in srgb,var(--s-gold) 45%,var(--s-bd));border-radius:12px}
.es-signin-chat .big{font:600 22px Oswald;color:var(--gold,#d4af37);margin-bottom:4px}
.es-avgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:6px}
.es-av{background:var(--s-card);border:2px solid var(--s-bd);border-radius:8px;padding:2px;cursor:pointer;height:74px}
.es-av.on{border-color:#d4af37}.es-av img{height:100%;max-width:100%;object-fit:contain}
.es-bggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px;margin:4px 0 10px}
.es-bgopt{height:54px;border:2px solid var(--s-bd);border-radius:6px;background:#000 center/cover;cursor:pointer;color:var(--s-tx);font:600 10px Oswald;text-shadow:0 1px 2px #000;padding:0;display:flex;align-items:flex-end;justify-content:center}
.es-bgopt.on{border-color:#d4af37;box-shadow:0 0 0 2px rgba(212,175,55,.4)}
.er-log{flex:1;overflow:auto;display:flex;flex-direction:column;gap:3px;min-height:120px}
.cm{font-size:13px;line-height:1.35;word-break:break-word;padding:2px 0}
.cm .nm{font-weight:600;color:var(--s-gold);cursor:pointer}.cm.me{font-style:italic;color:var(--s-tx)}.cm.sys{color:var(--s-mu);font-style:italic;font-size:12px}
.cm .rep{opacity:.25;cursor:pointer;margin-left:4px;font-size:11px;color:var(--s-mu);border:0;background:transparent}.cm:hover .rep{opacity:1}
@media (hover:none){.cm .rep{opacity:.6}}
.er-form{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.er-form .es-in{flex:1;min-width:0;margin:0}
.er-emotes{display:flex;gap:4px}
.er-pane.on#erPaneChat{padding-bottom:8px}
#erPaneChat.on{display:flex}
.er-main #erMP{background:#000}
.es-tag.lock{white-space:nowrap}
@media (max-width:820px){.er-pane{max-height:70vh}.er-bar .es-btn{padding:3px 7px}.es-modal .box{max-height:96vh}}

.cm .nm.r-user,.er-msg .who.r-user{color:var(--s-tx)}
.cm .nm.r-superuser{color:#ff8a8a}.cm .nm.r-admin,.cm .nm.r-staff{color:#ffb86b}.cm .nm.r-partner{color:#8ccbff}.cm .nm.r-artist{color:#dda8ff}
#escStage ::placeholder{color:var(--s-mu);opacity:.85}
/* Noir's red accent is 4.3:1 on its panels; lift it just inside the Stage so small text passes 4.5:1 */
html[data-theme="noir"] #escStage,html[data-theme="noir"] #esModal,html[data-theme="noir"] #esToast{--gold:#ff4757}

.er-vol{display:inline-flex;align-items:center;gap:6px;flex:none}
.er-vol input[type=range]{width:96px;accent-color:var(--s-gold);height:24px;margin:0}
.er-vol .es-btn{min-width:34px}
@media (max-width:820px){.er-vol input[type=range]{width:90px;min-height:44px}.er-vol .es-btn{min-height:44px;min-width:44px}}

.er-screen .ph.promo{background:radial-gradient(circle at 30% 20%,#2b1650,#0b0a14 70%);gap:.5cqw}
.er-screen .ph.promo img{max-width:46%;max-height:44%}
.er-screen .ph.promo .pt1{font:700 clamp(8px,1.5cqw,16px) Oswald;letter-spacing:.12em;color:#fff}
.er-screen .ph.promo small{font-size:clamp(7px,1.05cqw,11px);letter-spacing:.04em}
.er-screen .ph.promo .modhint{opacity:.55}

.er-step{z-index:6;white-space:nowrap;background:color-mix(in srgb,var(--s-card) 80%,transparent);flex:none}
@media (max-width:820px){.er-step{min-height:44px;font-size:12px}}
