@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#10171b;--panel:#172126f5;--line:#ffffff1b;--text:#f2f4e9;--muted:#a5b4b7;--accent:#d8fa71;--ink:#17211a;--radius:18px;font-family:'Be Vietnam Pro',sans-serif;font-size:14px;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;color:inherit;border:0}button,a,input{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent)}button{transition:background .18s,color .18s,box-shadow .18s}button:disabled{opacity:.45;cursor:default}button:hover:not(:disabled){filter:brightness(1.12)}button:active:not(:disabled){filter:brightness(.9)}[hidden]{display:none!important}#scene{display:block;width:100vw;height:100dvh;touch-action:none;outline:none}#world-screen{position:absolute;left:0;top:0;width:960px;height:540px;transform-origin:0 0;will-change:transform;z-index:1;background:#050809}#world-screen iframe{border:0;width:100%;height:100%}.topbar{position:absolute;top:0;left:0;right:0;padding:25px 32px;display:flex;justify-content:space-between;align-items:center;z-index:5;background:linear-gradient(#0b151ac9,transparent);pointer-events:none}.topbar>*{pointer-events:auto}.brand{color:var(--text);text-decoration:none;display:flex;align-items:center;gap:12px;font:600 22px 'Space Grotesk',sans-serif;letter-spacing:-1px}.brand-mark{width:44px;height:44px;border:1px solid #d8fa7160;border-radius:14px;display:grid;place-items:center;font-size:35px;color:var(--accent);padding-bottom:6px}.brand small{display:block;letter-spacing:2.4px;font:500 9px 'Be Vietnam Pro',sans-serif;margin-top:5px;color:var(--muted)}.venue-tag{display:flex;align-items:center;gap:10px;font-size:12px;color:#e6ede5;padding:12px 18px;border:1px solid var(--line);background:#152126b0;border-radius:30px}.status-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 12px #d8fa7180}.divider{height:13px;width:1px;background:#ffffff35;margin:0 4px}#crowd-count{color:var(--muted)}.top-actions{display:flex;gap:10px}.round-button,.quiet-button{height:44px;background:#172126c9;border:1px solid #ffffff29;border-radius:12px}.round-button{width:44px;font-size:18px}.quiet-button{padding:0 15px}.quiet-button span{margin-left:14px}.scene-caption{position:absolute;top:140px;left:34px;pointer-events:none;text-shadow:0 2px 20px #081419;z-index:2}.scene-caption>span{font:500 10px 'Space Grotesk',sans-serif;letter-spacing:3px;color:var(--accent)}h1{font:500 clamp(28px,3.1vw,46px)/1.15 'Space Grotesk','Be Vietnam Pro',sans-serif;letter-spacing:-1.7px;margin:15px 0}.scene-caption p{color:#c2cece;font-size:11px}.camera-toolbar{position:absolute;top:102px;right:32px;display:flex;gap:3px;padding:4px;border-radius:12px;background:#132025d9;border:1px solid var(--line);z-index:3}.camera-toolbar button{padding:10px 13px;background:transparent;border-radius:8px;color:#adbdc0;font-size:11px;min-height:36px}.camera-toolbar button.active{color:var(--text);background:#344248}.bottom-hud{position:absolute;left:28px;right:28px;bottom:max(25px,env(safe-area-inset-bottom));display:flex;align-items:flex-end;justify-content:space-between;gap:20px;z-index:5;pointer-events:none}.bottom-hud>*{pointer-events:auto}.music-button,.skin-button{display:flex;gap:12px;align-items:center;text-align:left;border:1px solid #ffffff29;background:#152026ed;border-radius:16px;padding:15px 16px;min-width:230px;box-shadow:0 10px 30px #0003}.music-button small,.skin-button small{display:block;font:500 8px 'Space Grotesk',sans-serif;letter-spacing:1.4px;color:var(--muted);margin-bottom:8px}.music-button strong,.skin-button strong{font-size:12px;font-weight:500;display:block;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-symbol{width:40px;height:40px;background:#d8fa7119;border-radius:12px;display:grid;place-items:center;color:var(--accent);font-size:27px}.button-arrow{margin-left:14px;font-size:22px;color:var(--accent)}.skin-button{min-width:220px}.skin-button>span:last-child{margin-left:auto;font-size:24px;color:var(--muted)}.mini-avatar{width:38px;height:42px;position:relative;background:linear-gradient(transparent 42%,var(--avatar-color,#c6f35d) 42%);border-radius:12px 12px 6px 6px}.mini-avatar:before{content:'';position:absolute;left:10px;top:0;width:19px;height:23px;background:#dbaa83;border-radius:7px;border-top:6px solid #29322e}.dance-dock{text-align:center}.dock-label{font-size:9px;font-weight:600;letter-spacing:1.7px;margin-bottom:12px;text-shadow:0 2px 5px #000}.dock-label span{color:#9aadae;font-size:8px;margin-left:15px}.dance-options{display:flex;gap:5px;padding:6px;background:#131e24ed;border:1px solid #ffffff29;border-radius:18px;box-shadow:0 10px 30px #0004}.dance-button{display:flex;align-items:center;flex-direction:column;justify-content:center;gap:7px;width:74px;height:74px;border-radius:12px;background:transparent;color:#b4c3c6;font-size:10px;position:relative}.dance-button.active{background:var(--accent);color:var(--ink)}.dance-button svg{height:29px;width:29px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.dance-button .key{position:absolute;top:5px;right:7px;font-size:8px;opacity:.55}.panel{position:absolute;padding:22px;width:330px;background:var(--panel);border:1px solid #ffffff27;border-radius:var(--radius);z-index:8;box-shadow:0 20px 80px #0007;backdrop-filter:blur(18px)}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:19px}.panel h2{font-size:15px;margin:0;font-weight:600}.close-button{font-size:25px;background:transparent;color:var(--muted);min-width:32px;height:32px}.settings-panel{right:32px;top:90px}.help-panel{right:32px;top:90px;width:360px}.help-panel p{font-size:12px;line-height:1.9;color:#c6d2d2}kbd{display:inline-block;padding:0 6px;border:1px solid #ffffff35;border-radius:4px;margin:2px}.music-panel{bottom:116px;left:28px;width:370px}.skin-panel{right:28px;bottom:116px;width:310px}.panel label{font-size:12px}.input-row{display:flex;gap:8px;margin-top:10px}.input-row input{min-width:0;width:100%;height:44px;padding:0 12px;background:#0c171b;border:1px solid #ffffff30;border-radius:8px;color:var(--text);font-size:12px}.input-row input::placeholder{color:#93a4a8}.accent-button{background:var(--accent);color:var(--ink);font-weight:600;border-radius:8px;padding:0 17px;min-height:44px}.muted{font-size:11px;color:var(--muted);line-height:1.8}.field-error{font-size:12px;color:#ffaaa2;line-height:1.6}.music-controls{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:center;border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.music-controls input{grid-column:1/-1}.music-controls label{display:flex;justify-content:space-between;font-size:10px;gap:7px}.wide-button{background:#344448;border-radius:8px;min-height:44px;font-size:12px}.panel a{display:block;margin-top:15px;color:var(--accent);font-size:12px}.control-row{display:flex;justify-content:space-between;margin:18px 0 12px}.control-row output{color:var(--accent);font-size:11px}input[type=range]{width:100%;accent-color:var(--accent);height:20px;cursor:pointer;margin:0}input[type=checkbox]{accent-color:var(--accent);width:20px;height:20px}.switch-row{display:flex;align-items:center;justify-content:space-between;margin-top:15px}.settings-panel>.wide-button{width:100%;margin-top:20px}.skin-options{display:flex;flex-direction:column;gap:6px}.skin-option{display:flex;align-items:center;gap:14px;padding:11px;border-radius:10px;background:transparent;text-align:left;border:1px solid transparent;min-height:62px}.skin-option.active{border-color:#d8fa7170;background:#d8fa7110}.skin-option .mini-avatar{transform:scale(.8);transform-origin:center;flex-shrink:0}.skin-option strong{font-size:12px;display:block;font-weight:500}.skin-option small{color:var(--muted);font-size:10px;display:block;margin-top:5px}.skin-option .check{margin-left:auto;color:var(--accent)}#toast{position:absolute;left:50%;bottom:155px;transform:translateX(-50%);z-index:12;border:1px solid #d8fa7145;border-radius:10px;background:#1c2a28f5;padding:12px 20px;font-size:12px;max-width:90vw;text-align:center}#loading{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;background:#111c21}.load-mark{font:700 80px 'Space Grotesk',sans-serif;color:var(--accent)}#loading strong{font-size:20px}#loading>span:last-child{color:var(--muted);font-size:12px}#mobile-movement{display:none}body[data-camera=floor] .scene-caption,body[data-camera=stage] .scene-caption{opacity:0}
.mini-avatar.photo-avatar{width:34px;height:51px;background-color:transparent;background-size:600% 500%;background-repeat:no-repeat;border-radius:0;transform:none;flex-shrink:0}.mini-avatar.photo-avatar:before{display:none}.skin-option .mini-avatar.photo-avatar{width:42px;height:63px;transform:none}.skin-option{min-height:76px}.skin-button:has(.photo-avatar){padding-top:10px;padding-bottom:10px}
.sample-music{display:flex;align-items:center;gap:10px;width:100%;background:#d8fa7114;border:1px solid #d8fa7130;border-radius:10px;padding:13px;color:var(--accent);font-size:12px;min-height:44px}.sample-music>span:last-child{margin-left:auto;font-size:10px;color:var(--muted)}
@media(min-width:1700px){.bottom-hud{left:40px;right:40px}.scene-caption{top:160px}.dance-button{width:86px;height:82px}}
@media(max-width:1050px){.venue-tag{display:none}.scene-caption{top:115px}.scene-caption p{display:none}.music-button,.skin-button{min-width:0;padding:12px}.music-button small,.skin-button small{display:none}.button-arrow{display:none}.skin-button>span:last-child{display:none}.dance-button{width:59px;height:68px}.bottom-hud{gap:12px;left:16px;right:16px}.music-panel{left:16px}.skin-panel{right:16px}}
@media(max-width:700px){.topbar{padding:16px}.brand{font-size:19px;gap:9px}.brand-mark{height:38px;width:38px;font-size:30px}.brand small{font-size:7px}.quiet-button{font-size:11px;padding:0 10px}.quiet-button span{margin-left:7px}.round-button{width:38px}.round-button,.quiet-button{height:38px}.top-actions{gap:6px}.camera-toolbar{top:80px;right:16px}.camera-toolbar button{font-size:10px;padding:6px 9px;min-height:32px}.scene-caption{top:139px;left:18px}.scene-caption>span{font-size:7px;letter-spacing:2px}h1{font-size:27px;letter-spacing:-1px;margin-top:10px}.bottom-hud{bottom:max(14px,env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;gap:11px}.dance-dock{grid-column:1/-1;grid-row:2}.dance-options{justify-content:space-around;padding:5px;border-radius:14px}.dance-button{width:18%;height:59px;gap:4px;font-size:9px}.dance-button svg{width:24px;height:24px}.dock-label{display:none}.music-button,.skin-button{width:100%;padding:9px 11px;border-radius:12px;gap:9px;min-height:54px}.music-button strong,.skin-button strong{font-size:10px;max-width:120px}.music-symbol{width:32px;height:32px;font-size:23px;border-radius:9px}.mini-avatar{transform:scale(.75);transform-origin:center;width:30px;height:36px}.mini-avatar:before{left:6px}.skin-button{justify-content:flex-start}.music-panel,.skin-panel{bottom:151px;left:14px;right:14px;width:auto;max-height:calc(100dvh - 235px);overflow:auto}.settings-panel,.help-panel{top:78px;right:14px;left:14px;width:auto;max-height:calc(100dvh - 235px);overflow:auto}.panel{padding:18px}.skin-options{gap:1px}.skin-option{padding:6px 10px;min-height:53px}.panel-title{margin-bottom:12px}#mobile-movement{display:grid;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(2,40px);gap:3px;position:absolute;bottom:169px;left:17px;z-index:4}#mobile-movement button{border-radius:9px;background:#17272ed9;border:1px solid #ffffff35;font-size:20px;touch-action:none}#mobile-movement button[data-move=up]{grid-column:2}#mobile-movement button[data-move=left]{grid-column:1;grid-row:2}#mobile-movement button[data-move=down]{grid-column:2;grid-row:2}#mobile-movement button[data-move=right]{grid-column:3;grid-row:2}#toast{bottom:285px;white-space:normal;width:max-content;max-width:90vw}.skin-panel~.bottom-hud{pointer-events:none}.bottom-hud>*{pointer-events:auto}}
@media(max-width:700px){.skin-button .mini-avatar.photo-avatar{width:27px;height:40px}.skin-button:has(.photo-avatar){padding:6px 11px}.skin-option .mini-avatar.photo-avatar{width:34px;height:51px}.skin-option{min-height:62px}}
@media(max-height:520px){.scene-caption{display:none}.bottom-hud{bottom:10px}.dance-button{height:50px}.dance-button svg{height:22px}.dock-label{display:none}.panel{max-height:calc(100dvh - 160px);overflow:auto;top:70px;bottom:auto}.topbar{padding-top:10px}#mobile-movement{bottom:100px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
