:root{--dock-w: 340px;--bg: #0f1420;--panel: rgba(12, 18, 30, .8);--panel-border: rgba(255, 255, 255, .1);--text: #eaeef5;--muted: #9aa6ba;--accent: #1f6fd1;--accent-2: #ff8a3d;--ok: #2fbf71;--warn: #f2c94c;--bad: #e5533d;font-family:Segoe UI,system-ui,-apple-system,Roboto,sans-serif;font-size:14px;color:var(--text)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{touch-action:manipulation;overscroll-behavior:none;margin:0;height:100%;overflow:hidden;background:var(--bg)}#scene{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none;cursor:grab}#scene.dragging{cursor:grabbing}#hud{position:fixed;inset:0;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:12px;gap:8px}.panel,.hud-top,.hud-bottom,.stand-card,.exhibitors,.debug{pointer-events:auto;background:var(--panel);backdrop-filter:blur(8px);border:1px solid var(--panel-border);border-radius:12px}.hud-top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:8px 14px;flex-wrap:wrap}.event{display:flex;flex-direction:column;line-height:1.25}.event-title{display:flex;align-items:center;gap:8px}.test-badge{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.04em;color:#1b1b1b;background:#f6c518}.shop-place-note{color:var(--muted);font-size:11px}.version-badge{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:600;letter-spacing:.02em;color:var(--muted);background:#ffffff12;border:1px solid var(--panel-border);font-family:ui-monospace,Consolas,monospace}.event strong{font-size:16px;letter-spacing:.01em}.stats{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.stat b{font-variant-numeric:tabular-nums;color:#fff}.cafe-panel{position:absolute;left:50%;bottom:210px;transform:translate(-50%);width:min(350px,calc(100vw - 24px));padding:12px;display:grid;gap:10px;pointer-events:auto;background:#151d2c;border:1px solid #e3bf75;border-radius:12px;text-align:center;z-index:7}.cafe-panel button{min-height:44px}body.touch .cafe-panel{bottom:204px}body.touch .hud-options-body{display:flex;position:absolute;right:0;top:calc(100% + 6px);width:200px;padding:8px;gap:6px;flex-direction:column;background:#151d2c;border:1px solid var(--panel-border);border-radius:10px;box-shadow:0 8px 24px #00000073;z-index:20}body.touch .hud-options-body button{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:44px;padding:8px 12px;font-size:14px;text-align:left}body.touch .hud-options-body #btn-logout{margin-top:4px;color:#ffb4a8}body.touch #hud-version,body.touch .stats>.stat:nth-child(3){display:none}body.touch .stats{gap:6px;width:100%}body.touch .stats>.stat:nth-child(2){flex:1 0 calc(100% - 80px)}body.touch #btn-recenter,body.touch #btn-exhibitors,body.touch .hud-options>button{min-height:40px}.hud-bottom{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:8px 14px;width:fit-content;max-width:100%}.muted{color:var(--muted)}.pill{padding:3px 10px;border-radius:999px;font-weight:600;font-size:12px;letter-spacing:.02em;background:#333}.pill.loading,.pill.connecting{background:#3b4252}.pill.online{background:#1f6b35}.pill.degraded{background:#8a6d00}.pill.reconnecting{background:#8a3b00}.pill.error{background:#8a1f1f}button{font:inherit;color:var(--text);background:#253047;border:1px solid var(--panel-border);border-radius:8px;padding:6px 12px;cursor:pointer}button:hover{background:#2f3c57}button:disabled{opacity:.5;cursor:not-allowed}button.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.ghost{background:transparent}.help{color:var(--muted);font-size:12px}.banner{pointer-events:none;position:fixed;left:50%;top:130px;transform:translate(-50%);width:max-content;max-width:min(560px,calc(100vw - 24px))!important;z-index:8;background:#8a3b00eb;border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:10px 16px;font-weight:600;max-width:560px;text-align:center}.place-panel{position:fixed;left:50%;top:150px;transform:translate(-50%);z-index:8;pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:6px;max-width:min(520px,calc(100vw - 24px));padding:10px 14px;border-radius:12px;background:#0a0e16db;border:1px solid rgba(255,255,255,.2);text-align:center}.place-status{font-weight:600;color:#f2994a}.place-status.ok{color:#3ad16b}.place-stand select{margin-left:6px;max-width:260px}.place-actions{display:flex;gap:8px}.touch-only,body.touch .kbd-only{display:none}body.touch .touch-only{display:inline}body.touch .place-panel{top:70px}.banner.error{background:#8a1f1feb}.stand-card{--stand-color: var(--accent);position:fixed;left:12px;top:96px;width:var(--dock-w);max-width:calc(100vw - 24px);max-height:calc(100vh - 226px);overflow:auto;z-index:5;padding:0;border-radius:14px;text-align:left;animation:stand-card-in .18s ease-out}@keyframes stand-card-in{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}.stand-card-head{display:flex;align-items:center;gap:14px;padding:14px 16px 12px;background:linear-gradient(135deg,color-mix(in srgb,var(--stand-color) 38%,transparent),#ffffff08);border-bottom:1px solid var(--panel-border)}.stand-card-description:before,.stand-card-highlights:before{display:block;margin:0 0 4px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}.stand-card-description:before{content:"Sobre"}.stand-card-highlights:before{content:"Destaques"}.stand-card-links a:first-child{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.stand-card-links a:first-child:hover{filter:brightness(1.1)}.stand-card-title{min-width:0}.stand-card-chips{display:flex;flex-wrap:wrap;gap:6px;margin:12px 16px 0}.chip{font-size:11px;padding:2px 9px;border-radius:999px;background:#ffffff14;border:1px solid var(--panel-border);color:var(--text)}.stand-card-highlights{margin:12px 16px 0;padding:0;list-style:none;font-size:13px;line-height:1.45}.stand-card-highlights li{position:relative;padding-left:14px}.stand-card-highlights li:before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--stand-color)}.stand-card-links{display:flex;flex-wrap:wrap;gap:8px;margin:14px 16px 0}.stand-card-links a{font-size:12px;padding:4px 11px;border-radius:8px;background:#1f6fd138;border:1px solid rgba(140,192,255,.35);color:#cfe3ff;text-decoration:none}.stand-card-links a:hover{background:#1f6fd166}.stand-card-n{display:inline-block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:var(--stand-color);padding:2px 8px;border-radius:999px;font-weight:700}.stand-card-name{font-size:20px;font-weight:700;margin:2px 0}.stand-card-presenter{margin:12px 0 0;padding:10px 16px 12px;font-size:12px;color:var(--muted);border-top:1px solid var(--panel-border);display:flex;align-items:center;gap:8px}.stand-card-presenter:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--stand-color);flex:none}.exhibitors{position:fixed;right:12px;top:72px;z-index:6;width:300px;max-height:calc(100vh - 180px);overflow:auto;padding:10px 14px}.exhibitors li.exhibitors-group{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:6px}.exhibitors li.exhibitors-group:first-child{margin-top:0}.exhibitors-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.exhibitors ol{margin:0;padding-left:0;list-style:none;font-size:13px;line-height:1.6}.exhibitors li .exhibitor-code{display:inline-block;min-width:44px;color:var(--muted);font-size:12px;font-weight:700}.exhibitors li.near{color:var(--accent-2);font-weight:600}.debug{position:fixed;right:12px;top:72px;z-index:1;margin:0;padding:10px 32px 10px 12px;min-width:280px;max-width:calc(100vw - 24px);max-height:calc(100vh - 160px);overflow:auto}.debug pre{margin:0;font:12px/1.45 ui-monospace,Consolas,monospace;white-space:pre}.debug-online-btn{margin-top:8px;width:100%}.online-list{margin:6px 0 0;padding-left:22px;max-height:180px;overflow-y:auto;overflow-x:hidden;font-size:12px}.online-list .me{color:var(--accent-2);font-weight:700}.online-pick{all:unset;cursor:pointer;display:block;box-sizing:border-box;width:100%;padding:2px 4px;border-radius:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.online-pick:hover,.online-pick:focus-visible{background:#ffffff1a}.online-pick.following{color:#9be7a8;font-weight:700}.follow-bar{position:fixed;left:50%;bottom:96px;transform:translate(-50%);z-index:9;padding:10px 16px;border:1px solid rgba(155,231,168,.6);border-radius:999px;background:#101622f0;color:#c9f5d6;font:inherit;font-weight:600;cursor:pointer;pointer-events:auto;max-width:calc(100vw - 24px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.follow-bar[hidden]{display:none}body.touch .follow-bar{bottom:214px}.debug-tools{margin-top:8px;padding-top:8px;border-top:1px solid var(--panel-border);display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px}.debug-close{position:absolute;top:4px;right:6px;width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:18px;line-height:1;cursor:pointer}.debug-close:hover{background:#ffffff1a;color:var(--text)}.hud-top{position:relative;z-index:2}.fatal{position:fixed;inset:0;display:grid;place-items:center;background:var(--bg);padding:24px}.fatal-card{max-width:520px;background:#1b2029;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:24px 28px}.fatal-card h1{margin:0 0 12px;font-size:22px}.fatal-more summary{cursor:pointer;font-size:12px}.fatal-more p{margin:6px 0 0;font:12px/1.4 ui-monospace,Consolas,monospace}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(max-width:1100px){.event strong{font-size:14px}.help{display:none}}.login{position:fixed;inset:0;display:grid;place-items:center;padding:24px;overflow-y:auto;background:radial-gradient(1200px 600px at 20% 10%,rgba(31,111,209,.35),transparent 60%),radial-gradient(900px 500px at 90% 90%,rgba(255,138,61,.25),transparent 60%),var(--bg);z-index:10}.login-card{width:min(460px,100%);background:#101622eb;border:1px solid var(--panel-border);border-radius:16px;padding:28px 28px 20px;display:flex;flex-direction:column;gap:18px;box-shadow:0 20px 60px #00000073}.login-kicker{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2);font-weight:700}.login-card h1{margin:4px 0 6px;font-size:26px}.login-card p{margin:0}.login-field{display:flex;flex-direction:column;gap:6px}.login-field input{font:inherit;font-size:16px;color:var(--text);background:#0f1522;border:1px solid var(--panel-border);border-radius:10px;padding:10px 12px;outline:none}.login-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1f6fd140}.login-field input[readonly]{opacity:.7}.login-steps{list-style:none;margin:-4px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px;color:var(--muted)}.login-steps li{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:3px solid var(--panel-border)}.login-steps b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#ffffff1a;font-size:12px}.login-steps li.active{color:var(--text);font-weight:600;border-color:var(--accent)}.login-steps li.active b{background:var(--accent);color:#fff}.login-steps li.done{border-color:#25d366}.login-steps li.done b{background:#25d366;color:#0b2a17}.login-step{display:flex;flex-direction:column;gap:18px}.login-step[hidden]{display:none}.login-wa{display:flex;flex-direction:column;gap:10px}.login-wa[hidden],.login-code[hidden],.login-error[hidden],.login-verified[hidden],.login-field[hidden]{display:none}.phone-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:stretch}.phone-row input{min-width:0}.phone-country{display:flex;align-items:center;padding:0 12px;border:1px solid var(--panel-border);border-radius:10px;background:#ffffff0f;font-weight:700;color:var(--muted)}.wa-send{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 14px;border:0;border-radius:10px;background:#25d366;color:#0b2a17;font-weight:700;font-size:14px;white-space:nowrap;cursor:pointer}.wa-send:hover:not(:disabled){background:#3ee07a}.wa-send:disabled{background:#25d36640;color:#fff9;cursor:default}@media(max-width:420px){.phone-row{grid-template-columns:auto 1fr}.wa-send{grid-column:1 / -1;min-height:42px}}.login-card .primary:disabled{opacity:.5;cursor:not-allowed}.login-code{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid rgba(37,211,102,.35);border-radius:12px;background:#25d3660f}.code-boxes{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.login-field .code-boxes input{min-width:0;padding:10px 0;font-size:24px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}.code-boxes.shake{animation:code-shake .35s}@keyframes code-shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.login-code-actions{display:flex;gap:8px}.login-code-actions button{flex:1;min-height:40px}.login-verified{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid rgba(37,211,102,.45);background:#25d3661a;color:#c9f5d6;font-size:14px}.login-verified b{white-space:nowrap}.login-verified-mark{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#25d366;color:#0b2a17;font-weight:800}.link-btn{margin-left:auto;border:0;background:none;color:#9cc6ff;text-decoration:underline;cursor:pointer;font:inherit}.login-watch{display:block;margin-top:10px;text-align:center;color:#9cc6ff;text-decoration:none;font-size:14px}.login-watch b{text-decoration:underline}.login-watch.full{color:inherit;opacity:.7;cursor:default}.login-actions{display:grid;grid-template-columns:1fr 2fr;gap:10px}.login-error{margin:0;padding:8px 10px;border-radius:8px;background:#dc463c29;border:1px solid rgba(220,70,60,.5);color:#ffc9c2;font-size:13px}.login-avatars{border:0;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.login-avatars legend{padding:0;margin-bottom:8px;color:var(--muted)}.login-look{border:0;margin:0;padding:0;display:grid;gap:8px}.login-look legend{padding:0;margin-bottom:4px;color:var(--muted)}.look-group{display:grid;grid-template-columns:1fr 1fr;gap:8px}.look-option{position:relative;display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--panel-border);border-radius:10px;background:#0f1522;cursor:pointer;font-size:14px}.look-option input{position:absolute;opacity:0;pointer-events:none}.avatar-option:has(input:focus-visible),.look-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.look-option:has(input:checked){border-color:var(--accent);background:#1f6fd12e}.look-icon{width:18px;text-align:center;font-size:16px}.swatch{width:16px;height:16px;border-radius:50%;background:var(--c);border:1px solid rgba(255,255,255,.3);flex:none}.avatar-option{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;border:1px solid var(--panel-border);border-radius:10px;cursor:pointer;font-size:13px;text-align:center}.avatar-option input{position:absolute;opacity:0;pointer-events:none}.avatar-option:has(input:checked){border-color:var(--accent);background:#1f6fd12e}.avatar-chip{width:26px;height:34px;border-radius:6px 6px 3px 3px;position:relative}.avatar-chip:before{content:"";position:absolute;top:-12px;left:6px;width:14px;height:14px;border-radius:50%;background:#e8b58e}.avatar-chip-visitor{background:linear-gradient(#ff6b6b 0 55%,#2b3448 55%)}.avatar-chip-student{background:linear-gradient(#1f6fd1 0 55%,#2b3448 55%)}.avatar-chip-teacher{background:linear-gradient(#f2f4f7 0 55%,#1d2230 55%)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;font-size:16px;padding:12px 16px;border-radius:10px}button.primary:hover{background:#2a7fe6}.login-help{font-size:12px;text-align:center}kbd{display:inline-block;min-width:18px;padding:1px 5px;margin:0 1px;border-radius:5px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;font:600 11px/1.4 ui-monospace,Consolas,monospace;text-align:center}.hud-bottom{width:100%;flex-wrap:nowrap;align-items:flex-end;justify-content:space-between;background:transparent;backdrop-filter:none;border:0;padding:0;gap:12px;pointer-events:none}.controls-bar{pointer-events:auto;display:flex;flex-direction:column;min-width:0;flex:0 1 640px;gap:8px;background:var(--panel);backdrop-filter:blur(8px);border:1px solid var(--panel-border);border-radius:12px;padding:10px 14px;max-width:640px}.controls-hint{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted)}.controls-hint kbd{color:var(--text)}.chat{pointer-events:auto;width:var(--dock-w);max-width:100%;background:#0a0e16f5;border:1px solid rgba(255,255,255,.22);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.chat-head{display:flex;align-items:center;gap:8px;width:100%;border:0;border-radius:0;background:#ffffff0a;padding:8px 12px;font-weight:600;text-align:left}.chat-head:hover{background:#ffffff14}.chat-head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.chat-caret{margin-left:auto;font-size:10px;color:var(--muted)}.chat-unread{background:var(--accent-2);color:#1a0d00;font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px}.chat-body{display:flex;flex-direction:column}.chat.collapsed .chat-body{display:none}.chat-messages{list-style:none;margin:0;padding:8px 12px;height:180px;overflow-y:auto;font-size:13px;line-height:1.4;display:flex;flex-direction:column;gap:4px}.chat-time{display:inline-block;min-width:38px;margin-right:6px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.chat-messages li b{color:#fff}.chat-messages li.system{color:var(--muted);font-style:italic;font-size:12px}.chat-messages li.self b{color:#8cc0ff}.chat-form{display:flex;gap:6px;padding:8px;border-top:1px solid var(--panel-border)}.chat-form input{flex:1;min-width:0;font:inherit;color:var(--text);background:#0f1522;border:1px solid var(--panel-border);border-radius:8px;padding:7px 10px;outline:none}.chat-form input:focus{border-color:var(--accent)}.stand-card-logo{display:block;flex:none;max-width:130px;max-height:68px;margin:0;object-fit:contain;background:#fff;border-radius:8px;padding:5px 8px}.stand-card-description{margin:12px 16px 0;font-size:13px;line-height:1.45}@media(max-width:900px){.controls-hint span:nth-child(n+3){display:none}:root{--dock-w: 280px}body:not(.touch) .stand-card-logo{max-width:96px;max-height:52px}body:not(.touch) .stand-card-name{font-size:17px}body:not(.touch) .stand-card-head{gap:10px;padding-left:12px}}.banner-action{pointer-events:auto;margin-left:12px;background:#fff;color:#7a1515;border-color:#fff;font-weight:700;padding:5px 12px}.banner-action:hover{background:#ffe9e9}.touch-controls{display:none;gap:6px}.touch-controls button{min-width:44px;min-height:40px;font-size:16px}.joystick{display:none;position:fixed;left:14px;bottom:14px;width:124px;height:124px;border-radius:50%;background:#ffffff1f;border:2px solid rgba(255,255,255,.35);pointer-events:auto;touch-action:none;z-index:6}.joystick.active{background:#1f6fd140}.joystick-knob{position:absolute;left:50%;top:50%;width:54px;height:54px;border-radius:50%;background:#ffffffd9;box-shadow:0 4px 14px #00000059;transform:translate(-50%,-50%);pointer-events:none}body.touch .touch-controls,body.touch .touch-controls button,body.touch #hud button{touch-action:none}body.touch .joystick,body.touch .touch-controls{display:flex}body.touch .controls-hint,body.touch .help,body.touch .stats .stat:nth-child(n+4),body.touch #event-detail{display:none}body.touch #btn-recenter,body.touch #btn-exhibitors,body.touch .hud-options>button{padding:5px 10px;font-size:13px}body.touch .hud-top{padding:6px 10px;gap:6px}body.touch .hud-bottom{flex-direction:row;align-items:flex-end;padding-left:150px;min-height:140px}body.touch .controls-bar{max-width:none;flex:1;padding:8px 10px;gap:8px;position:relative;z-index:6}body.touch .touch-controls{justify-content:flex-start;gap:10px}body.touch .touch-controls button{width:50px;height:50px;flex:none;min-width:0;padding:0;border-radius:50%;font-size:20px;font-weight:700;background:#ffffff1a;border:1px solid rgba(255,255,255,.3)}body.touch #btn-run{width:auto;padding:0 16px;border-radius:25px;font-size:14px}@media(max-width:359px){body.touch .hud-bottom{padding-left:142px}body.touch .controls-bar{padding:8px 4px}body.touch .touch-controls{gap:4px}body.touch .touch-controls button{width:42px;height:42px}body.touch #btn-run{padding:0 8px;font-size:13px}}body.touch #btn-run[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}body.touch .avatar-status{min-width:0}body.touch .chat{position:static;width:min(340px,calc(100vw - 16px))}body.touch .chat.collapsed{width:auto;min-width:84px}body.touch .chat.collapsed>.chat-head{padding:8px 10px}body.touch .chat-messages{height:150px}body.touch .stand-card{left:8px;right:8px;width:auto;max-width:none;max-height:46vh;border-radius:12px}body.touch .stand-card-head{padding:10px 12px 8px;gap:10px}body.touch .stand-card-logo{max-width:90px;max-height:48px}body.touch .stand-card-name{font-size:17px}body.touch .stand-card-description{font-size:14px;line-height:1.5}body.touch .stand-card-highlights{font-size:13.5px}body.touch .stand-card-links a{font-size:13px;padding:7px 14px}body.touch .stand-card-close{display:inline-flex}.stand-card-close{display:none;position:absolute;top:6px;right:8px;width:30px;height:30px;border:0;border-radius:8px;background:#ffffff1f;color:var(--text);font-size:20px;line-height:1;align-items:center;justify-content:center;cursor:pointer}.stand-card-head{position:relative}body:not(.touch) .stand-card-head{padding-right:42px}body.touch .exhibitors,body.touch .debug{top:56px;right:8px;width:min(300px,calc(100% - 16px))}body.touch .debug,body.touch .exhibitors{z-index:8}body.touch .debug{left:8px;width:auto;min-width:0;padding-right:36px}body.touch .debug pre{font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}body.touch .debug-close{width:32px;height:32px;font-size:22px;color:var(--text)}.chat li.flash{background:#ffd66659;border-radius:6px;transition:background 1.2s ease-out}@media(max-width:520px),(max-height:720px){.login{padding:10px;place-items:start center}.login-card{padding:16px 14px 12px;gap:10px;border-radius:12px}.login-card h1{font-size:21px;margin:2px 0}.login-kicker{font-size:11px}.login-field input{padding:8px 10px}.login-avatars{gap:6px}.avatar-option{padding:6px 4px;gap:3px;font-size:12px}.avatar-chip{width:22px;height:28px}.look-layout{grid-template-columns:110px 1fr;gap:10px}.avatar-preview{width:110px;height:150px}.look-seg .look-option{padding:7px 4px;font-size:12px}.login-help{display:none}.login-step>.primary,.login-actions{position:sticky;bottom:0;box-shadow:0 -8px 16px #101622e6}.login-step>.primary,.login-actions .primary{padding:12px}.login-actions{background:#101622fa;padding-top:6px}.login-step{gap:12px}}.look-layout{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:start}.look-preview-wrap{display:flex;flex-direction:column;gap:6px;align-items:center}.avatar-preview{display:block;width:150px;height:210px;border-radius:12px;background:radial-gradient(120px 80px at 50% 85%,rgba(31,111,209,.25),transparent 70%),#0f1522;border:1px solid var(--panel-border)}.look-preview-caption{font-size:11px;color:var(--muted);text-align:center}.look-controls{display:flex;flex-direction:column;gap:10px;min-width:0}.look-row{display:flex;flex-direction:column;gap:6px}.look-controls{gap:12px}.look-row .look-seg+.look-swatches{margin-top:0}.look-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}.look-seg{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);min-width:0;gap:3px;padding:3px;background:#0f1522;border:1px solid var(--panel-border);border-radius:10px}.look-seg .look-option{border:0;background:transparent;justify-content:center;height:34px;padding:0 6px;font-size:13px;border-radius:8px;min-width:0}.look-seg .look-option span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.look-seg .look-option:has(input:checked){background:var(--accent);color:#fff}.look-swatches{display:grid;gap:6px;padding:3px;align-items:center;justify-items:center;border:1px solid var(--panel-border);border-radius:10px;background:#0f1522}.look-swatches.cols-5{grid-template-columns:repeat(5,1fr)}.look-swatches.cols-4{grid-template-columns:repeat(4,1fr)}.swatch-option{padding:0;border:0;background:transparent;width:34px;height:34px;justify-content:center;border-radius:50%}.swatch-option .swatch{width:28px;height:28px;border:2px solid rgba(255,255,255,.25);transition:transform .12s ease-out}.swatch-option:hover .swatch{transform:scale(1.08)}.swatch-option:has(input:checked){background:transparent}.swatch-option:has(input:checked) .swatch{border-color:#fff;box-shadow:0 0 0 2px var(--accent)}.swatch-option .sr{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.look-label em{font-style:normal;text-transform:none;letter-spacing:0;font-weight:500;color:var(--text);margin-left:6px}.stand-card-more{display:none}body.touch .stand-card-more{display:block;position:absolute;right:44px;bottom:8px;font-size:11px;color:var(--muted)}body.touch .stand-card-head{cursor:pointer;padding-bottom:20px}body.touch .stand-card.collapsed>:not(.stand-card-head){display:none}body.touch .stand-card.collapsed{max-height:none;overflow:hidden}.stand-card-corners{position:absolute;top:8px;right:10px;display:grid;grid-template-columns:11px 11px;gap:3px}.stand-card-corners button{width:11px;height:11px;padding:0;border:1px solid rgba(255,255,255,.45);border-radius:3px;background:#ffffff14;cursor:pointer}.stand-card-corners button:hover{background:#ffffff4d}.stand-card-corners button.active{background:var(--accent);border-color:var(--accent)}body.touch .stand-card-corners{display:none}.docks{pointer-events:none;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:8px;max-width:100%;margin-left:auto}.dock-badge{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.4;padding:1px 8px;border-radius:999px;background:#ffffff1a;color:#e3e8f0}.dock-badge.coins-badge{background:#ffd43b29;color:#ffd43b;display:inline-flex;align-items:center;gap:5px;transition:transform .15s ease-out}.dock-badge.coins-badge:before{content:"";width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff3a8,#ffd43b 55%,#c99a00);box-shadow:0 0 0 1px #78500099}.dock-badge.coins-badge.bump{transform:scale(1.25);background:#ffd43b61}.coin-fly{position:fixed;z-index:9;pointer-events:none;font-weight:800;font-size:18px;color:#ffd43b;text-shadow:0 2px 6px rgba(0,0,0,.6);transform:translate(-50%);animation:coin-fly 1.3s ease-out forwards}@keyframes coin-fly{0%{opacity:0;transform:translate(-50%,6px) scale(.8)}15%{opacity:1;transform:translate(-50%) scale(1.15)}to{opacity:0;transform:translate(-50%,-64px) scale(1)}}.next-goal{position:fixed;left:50%;top:72px;transform:translate(-50%);z-index:3;pointer-events:auto;display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:4px 10px;width:max-content;max-width:min(760px,calc(100vw - 16px));padding:6px 12px;border-radius:999px;background:#0a0e16d1;border:1px solid rgba(255,255,255,.18);font-size:13px;line-height:1.3;text-align:center}.next-goal:hover{background:#141c2ce6}.next-goal-kicker{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9fc3ff}.next-goal-coins{color:#ffd43b;font-weight:600}.next-goal-challenge{font-variant-numeric:tabular-nums;font-weight:700;color:#ffd166;white-space:nowrap}.next-goal-challenge.soon{color:#fff;background:#c8500ad9;border-radius:999px;padding:0 8px}body.touch .next-goal{min-height:36px;font-size:12px;border-radius:12px;padding:5px 10px}.missions-body{padding:8px 12px 10px;max-height:min(360px,55vh);overflow-y:auto;gap:0}.chat-head.flash{background:#ffd43b40}body.touch .docks{position:fixed;right:8px;left:8px;bottom:calc(150px + env(safe-area-inset-bottom,0px));flex-direction:row;flex-wrap:wrap-reverse;justify-content:flex-end;align-items:flex-start;gap:6px;z-index:7}body.touch .dock-missions,body.touch .dock-shop{position:static;width:min(340px,calc(100vw - 16px))}body.touch .dock-missions.collapsed,body.touch .dock-shop.collapsed{width:auto}body.touch .missions-body{max-height:min(240px,30vh)}.docks>.chat{max-height:var(--dock-max, none)}.docks>.chat>.chat-head,.docks .chat-form{flex:none}.docks>.chat>.chat-body{min-height:0;flex:1 1 auto}.docks .chat-messages{flex:1 1 auto;min-height:0}@media(orientation:landscape)and (max-height:500px){body.touch .docks{bottom:calc(88px + env(safe-area-inset-bottom,0px))}}@media(orientation:landscape)and (max-height:500px)and (min-width:780px){body.touch .docks{left:auto;bottom:calc(8px + env(safe-area-inset-bottom,0px));max-width:min(400px,calc(100vw - 16px))}body.touch .controls-bar{flex:0 1 auto}}.tabs{display:flex;gap:6px;margin-bottom:8px}.tab{flex:1;padding:6px 10px;border-radius:8px;border:1px solid var(--panel-border);background:#ffffff0a;color:var(--muted);font:inherit;font-size:13px;cursor:pointer}.tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.missions-list,.shop-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.shop-group{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:6px 0 -2px}.shop-group:first-child{margin-top:0}.shop-item.locked .shop-name:after{content:" 🔒"}.mission,.shop-item{padding:8px 10px;border:1px solid var(--panel-border);border-radius:10px;background:#ffffff08}.mission-top{display:flex;justify-content:space-between;gap:8px;font-size:13px}.mission-reward{color:#ffd43b;font-weight:600;white-space:nowrap}.mission-desc{font-size:12px;color:var(--muted);margin:2px 0 6px}.mission-bar{height:6px;border-radius:999px;background:#ffffff1a;overflow:hidden}.mission-bar i{display:block;height:100%;background:var(--accent);border-radius:999px}.mission.done .mission-bar i{background:var(--ok)}.mission.done .mission-top strong:after{content:" ✓";color:var(--ok)}.mission-count{font-size:11px;color:var(--muted);text-align:right;margin-top:3px}.shop-item{display:flex;gap:10px;align-items:center}.shop-info{flex:1;min-width:0}.shop-name{font-size:13px;font-weight:600}.shop-desc{font-size:12px;color:var(--muted)}.shop-item button{white-space:nowrap}.shop-item button.equipped{background:var(--ok);border-color:var(--ok);color:#fff}.missions-help{font-size:11px;margin:10px 0 0}.talk-status{position:fixed;left:50%;bottom:118px;transform:translate(-50%);background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;padding:8px 14px;font-size:13px;pointer-events:none;min-width:240px;max-width:calc(100% - 24px);text-align:center;z-index:2}.talk-bar{margin-top:6px;height:5px;background:#ffffff1f;border-radius:999px;overflow:hidden}.talk-bar i{display:block;height:100%;width:0;background:var(--accent-2);border-radius:999px;transition:width .2s linear}.talk-status.busy .talk-bar{display:none}body.touch .talk-status{bottom:200px}.stand-card-presenter .done{color:var(--ok);margin-left:6px}.exhibitors li.talked span:after{content:" ✓";color:var(--ok)}.challenge{position:fixed;left:12px;right:12px;top:72px;z-index:3;display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 16px;border-radius:12px;background:#783008db;border:1px solid rgba(255,170,80,.6);box-shadow:0 6px 24px #00000059;pointer-events:none}.challenge.result{background:#0a4628e0;border-color:#5adc8c8c}.challenge-kicker{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#ffd166;white-space:nowrap}.challenge.result .challenge-kicker{color:#9be7b5}.challenge-text{font-size:14px;font-weight:600;color:#fff}.challenge-timer{font-variant-numeric:tabular-nums;font-size:18px;color:#fff;background:#0000004d;border-radius:999px;padding:2px 10px;white-space:nowrap}body.touch .challenge{left:8px;right:8px;display:grid;grid-template-columns:1fr auto;grid-template-areas:"kicker timer" "text text";align-items:center;gap:4px 10px;padding:8px 12px}body.touch .challenge-kicker{grid-area:kicker}body.touch .challenge-timer{grid-area:timer}body.touch .challenge-text{grid-area:text}body.touch .challenge-text{font-size:13px}#hud *,.login *{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.28) transparent}#hud ::-webkit-scrollbar,.login ::-webkit-scrollbar{width:8px;height:8px}#hud ::-webkit-scrollbar-track,.login ::-webkit-scrollbar-track{background:transparent}#hud ::-webkit-scrollbar-thumb,.login ::-webkit-scrollbar-thumb{background:#ffffff38;border-radius:999px;border:2px solid transparent;background-clip:padding-box}#hud ::-webkit-scrollbar-thumb:hover,.login ::-webkit-scrollbar-thumb:hover{background:#ffffff61;background-clip:padding-box}.mission-items{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:2px 10px;font-size:12px;color:var(--muted)}.mission-items li.checked{color:var(--ok)}.debug-check{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:500;color:var(--text);cursor:pointer;user-select:none}.debug-check input{width:15px;height:15px;margin:0;accent-color:var(--accent);cursor:pointer}@media(max-width:520px),(max-height:720px){.look-layout{grid-template-columns:104px 1fr;gap:10px}.avatar-preview{width:104px;height:150px}.look-layout{grid-template-columns:104px minmax(0,1fr)}.look-seg{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.look-seg .look-option{padding:7px 4px;font-size:12px}.swatch-option{width:30px;height:30px}.swatch-option .swatch{width:24px;height:24px}}@media(max-width:359px){.look-swatches{gap:3px}.swatch-option{width:26px;height:26px}.swatch-option .swatch{width:22px;height:22px}}.compass{position:fixed;right:14px;top:76px;width:46px;height:46px;border-radius:50%;background:#0f141c6b;border:1px solid rgba(255,255,255,.18);pointer-events:none;z-index:1}.compass-rose{position:absolute;inset:0;transition:transform 80ms linear;font:700 10px/1 system-ui,sans-serif;color:#ffffffb3}.compass-rose>*{position:absolute;left:50%;top:50%}.compass-n{transform:translate(-50%,-50%) translateY(-15px);color:#ff6b5e;font-size:11px}.compass-s{transform:translate(-50%,-50%) translateY(15px)}.compass-e{transform:translate(-50%,-50%) translate(15px)}.compass-w{transform:translate(-50%,-50%) translate(-15px)}.compass-needle{width:4px;height:14px;transform:translate(-50%,-100%);background:linear-gradient(#ff6b5e,#ff6b5e33);border-radius:2px}body.touch .compass{width:40px;height:40px;right:10px}body.touch .compass-n{transform:translate(-50%,-50%) translateY(-12px)}body.touch .compass-s{transform:translate(-50%,-50%) translateY(12px)}body.touch .compass-e{transform:translate(-50%,-50%) translate(12px)}body.touch .compass-w{transform:translate(-50%,-50%) translate(-12px)}#hud{padding:max(12px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px))}body.touch .joystick{left:max(14px,env(safe-area-inset-left,0px))}body.touch #btn-recenter,body.touch #btn-exhibitors,body.touch .hud-options>button,body.touch .docks .chat-head,body.touch .exhibitors-head button,body.touch .shop-item button,body.touch .chat-form input,body.touch .chat-form button,body.touch .touch-controls button{min-height:44px}body.touch .exhibitors li:not(.exhibitors-group){min-height:44px;display:flex;align-items:center}@media(max-width:380px){body.touch .touch-controls{gap:4px}body.touch .touch-controls button{min-width:44px;padding-left:8px;padding-right:8px}body.touch .hud-bottom{padding-left:140px}}body.touch .challenge-kicker,body.touch .test-badge,body.touch .mission-count,body.touch .missions-help,body.touch .shop-place-note,body.touch .chat-time,body.touch .exhibitors li.exhibitors-group,body.touch .next-goal-kicker,body.touch .compass-rose{font-size:12px}.chat-messages li.system{color:#b8c0cc;font-style:normal}.stats>.stat:nth-child(n+3){display:none}.hud-options{position:relative}.hud-options>button{display:inline-flex;align-items:center;gap:6px;cursor:pointer;border:1px solid var(--panel-border);border-radius:8px}.hud-options>button:before{content:"☰";font-size:15px;line-height:1}.hud-options.open>button{background:#ffffff1f;border-color:#ffffff59}.hud-options:not(.open)>.hud-options-body{display:none}.hud-top:has(.hud-options.open){z-index:30}.hud-options-body{position:absolute;right:0;top:calc(100% + 6px);width:220px;padding:8px;gap:6px;flex-direction:column;flex-wrap:nowrap;background:#151d2c;border:1px solid var(--panel-border);border-radius:10px;box-shadow:0 8px 24px #00000073;z-index:20}.hud-options-body button{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:36px;padding:6px 12px;text-align:left}.hud-options-body #btn-logout{margin-top:4px;color:#ffb4a8}.menu-players{padding:2px 4px 6px;color:var(--muted);font-size:13px}body.touch .menu-players{display:block}body.touch .hud-top{flex-wrap:nowrap;align-items:center;gap:6px;padding:6px 8px 6px 12px}body.touch .event{flex:1 1 auto;min-width:0}body.touch .event-title{min-width:0;gap:6px}body.touch #event-name{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}body.touch .test-badge{flex:none}body.touch .stats{width:auto;flex:none;flex-wrap:nowrap;gap:6px}body.touch .stats>.stat{display:none}body.touch #btn-exhibitors{display:none}body.touch #btn-recenter,body.touch .hud-options>button{min-width:44px;min-height:44px;padding:0 10px;justify-content:center}body.touch #btn-recenter .btn-label,body.touch .hud-options>button .btn-label{display:none}body.touch #btn-recenter:before{content:"◎";font-size:20px;line-height:1}body.touch .hud-options>button:before{font-size:20px}body.touch .hud-options{position:static}body.touch .hud-options-body{width:220px}@media(max-width:380px){body.touch .test-badge{display:none}}body.touch .next-goal-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ranking-list{margin:6px 0;padding-left:0;list-style:none;counter-reset:rank}.ranking-list li{display:flex;align-items:center;gap:10px;min-height:36px;padding:4px 6px;border-radius:8px;counter-increment:rank}.ranking-list li:before{content:counter(rank);width:24px;height:24px;flex:none;display:grid;place-items:center;border-radius:50%;font-size:12px;font-weight:800;background:#ffffff14}.ranking-list li:nth-child(1):before{background:#f6c518;color:#1b1b1b}.ranking-list li:nth-child(2):before{background:#c9ced8;color:#1b1b1b}.ranking-list li:nth-child(3):before{background:#c98a4b;color:#1b1b1b}.ranking-list li .rank-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-list li .rank-coins{color:#ffd43b;font-weight:700;font-variant-numeric:tabular-nums}.ranking-list li.empty:before{display:none}.coach{position:fixed;left:50%;bottom:calc(110px + env(safe-area-inset-bottom,0px));transform:translate(-50%);width:min(360px,calc(100vw - 32px));padding:14px 16px 12px;pointer-events:auto;background:#101622f0;border:1px solid rgba(120,170,255,.45);border-radius:14px;box-shadow:0 12px 32px #00000073;z-index:25;animation:coach-in .25s ease-out}.coach-step{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8fb6ff}.coach-text{margin:6px 0 12px;font-size:16px;line-height:1.4}.coach-actions{display:flex;justify-content:space-between;gap:8px}.coach-actions button{min-height:40px}body.touch .coach-actions button{min-height:44px}.coach.done{border-color:#78dc8c99}@keyframes coach-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}body.touch .coach{bottom:auto;top:calc(138px + env(safe-area-inset-top,0px));animation:none}.celebrate{position:fixed;left:50%;top:30%;z-index:26;pointer-events:none;padding:12px 20px;border-radius:14px;background:linear-gradient(135deg,#1f8f4f,#2fb36a);color:#fff;text-align:center;box-shadow:0 10px 30px #00000073;animation:celebrate 2.4s ease-out forwards}body.touch:has(#coach:not([hidden])) .celebrate{top:54%}.celebrate b{display:block;font-size:13px;letter-spacing:.08em;text-transform:uppercase;opacity:.9}.celebrate span{display:block;font-size:20px;font-weight:800;margin-top:2px}.celebrate i{display:block;font-style:normal;font-size:18px;font-weight:800;color:#ffe066;margin-top:2px}@keyframes celebrate{0%{opacity:0;transform:translate(-50%,10px) scale(.7)}12%{opacity:1;transform:translate(-50%) scale(1.06)}20%{transform:translate(-50%) scale(1)}80%{opacity:1;transform:translate(-50%,-6px) scale(1)}to{opacity:0;transform:translate(-50%,-30px) scale(.96)}}@media(prefers-reduced-motion:reduce){.celebrate,.coach{animation-duration:.01s}}.stand-card-todo{margin:6px 0 0;padding:0;list-style:none;display:grid;gap:4px;font-size:13px}.stand-card-todo li{color:#cfe0ff}.stand-card-todo li.ok{color:#8fe3a8}body.touch .controls-bar{background:none;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:0 4px 6px;justify-content:flex-end}body.touch .touch-controls{display:grid;grid-template-columns:auto auto;grid-auto-rows:auto;align-items:center;gap:8px 12px;margin-left:auto}body.touch .touch-controls #btn-run{grid-row:span 2;width:72px;height:72px;padding:0;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:12px;font-weight:700;background:#141a268c;border:2px solid rgba(255,255,255,.55);box-shadow:0 4px 14px #00000059}body.touch .touch-controls #btn-run:before{content:"»";font-size:30px;line-height:.8;font-weight:800}body.touch .touch-controls #btn-run[aria-pressed=true]{background:var(--accent);border-color:#9cc4ff;box-shadow:0 0 0 4px #508cff59,0 4px 14px #00000059}body.touch .touch-controls #btn-zoom-in,body.touch .touch-controls #btn-zoom-out{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border-radius:50%;font-size:22px;line-height:1;background:#141a2673;border:1px solid rgba(255,255,255,.4)}@media(orientation:landscape)and (max-height:500px){body.touch #hud{padding-top:max(8px,env(safe-area-inset-top,0px))}body.touch .hud-top{align-self:flex-start;width:auto;max-width:46vw;padding:4px 6px 4px 12px}body.touch #event-name{font-size:14px}body.touch #btn-recenter,body.touch .hud-options>button{min-width:42px;min-height:42px}body.touch .next-goal,body.touch .challenge{right:max(12px,env(safe-area-inset-right,0px));transform:none;width:auto;max-width:none;min-height:42px;border-radius:12px;justify-content:flex-start}body.touch .next-goal{flex-wrap:nowrap;padding:4px 10px}body.touch .next-goal-text{-webkit-line-clamp:2;font-size:12px;text-align:left}body.touch .challenge{padding:6px 10px;gap:2px 8px}body.touch .challenge-text{-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;font-size:12px}body.touch .controls-bar{position:fixed;left:auto;right:max(12px,env(safe-area-inset-right,0px));bottom:max(8px,env(safe-area-inset-bottom,0px));flex:none;max-width:none;padding:0}body.touch .hud-bottom{min-height:0;padding-left:0}body.touch .joystick{bottom:max(10px,env(safe-area-inset-bottom,0px))}body.touch .docks{left:140px;right:140px;bottom:max(8px,env(safe-area-inset-bottom,0px));max-width:none;flex-wrap:nowrap;justify-content:center;align-items:flex-end;gap:6px}body.touch .docks>.chat.collapsed{width:auto}body.touch .docks .chat-head{min-height:42px;padding:6px 10px}@media(max-width:680px){body.touch .docks{gap:4px}body.touch .docks .chat-head{padding:6px 8px;gap:4px;font-size:13px}}body.touch .docks>.chat:not(.collapsed){position:fixed;top:62px;bottom:max(8px,env(safe-area-inset-bottom,0px));right:max(12px,env(safe-area-inset-right,0px));left:auto;width:min(360px,46vw);max-height:none;display:flex;flex-direction:column;z-index:12}body.touch .docks>.chat:not(.collapsed) .missions-body,body.touch .docks>.chat:not(.collapsed) .chat-body{max-height:none;flex:1 1 auto;min-height:0;overflow:auto}body.touch .hud-options-body{max-height:calc(100dvh - 70px);overflow:auto;width:240px}body.touch .exhibitors{right:max(12px,env(safe-area-inset-right,0px));width:min(340px,46vw);z-index:12}body.touch .coach{left:50%;right:auto;bottom:auto;transform:translate(-50%);width:min(480px,60vw);padding:8px 12px}body.touch .coach-text{margin:2px 0 6px;font-size:14px}body.touch .coach-actions button{min-height:40px}}.joystick-zone{display:none}body.touch .joystick-zone{display:block;position:fixed;left:0;bottom:0;width:36vw;height:min(230px,30vh);z-index:6;pointer-events:auto;touch-action:none}body.touch .joystick-zone .joystick{position:absolute;left:max(12px,env(safe-area-inset-left,0px));bottom:max(12px,env(safe-area-inset-bottom,0px));width:100px;height:100px;opacity:.55;transition:opacity .12s}body.touch .joystick-zone .joystick.active{opacity:1}body.touch .joystick-zone .joystick-knob{width:44px;height:44px}@media(orientation:landscape)and (max-height:500px){body.touch .joystick-zone{width:26vw;height:52vh}}body.touch .docks .chat.collapsed .chat-head>span:first-child{font-size:0}body.touch .docks .chat.collapsed .chat-head>span:first-child:before{font-size:18px;line-height:1}body.touch #missions.collapsed .chat-head>span:first-child:before{content:"📋"}body.touch #shop.collapsed .chat-head>span:first-child:before{content:"🛍️"}body.touch #chat.collapsed .chat-head>span:first-child:before{content:"💬"}body.touch .docks .chat.collapsed .chat-head{min-height:44px;padding:4px 10px;gap:6px}body.touch .docks .chat.collapsed .chat-caret{display:none}body.touch .docks{gap:8px}body.touch .docks>.chat.collapsed{width:auto}body.touch .banner:not(:has(button)){padding:6px 12px;font-size:13px;border-radius:999px;max-width:calc(100vw - 32px)!important}body.touch .next-goal{flex-wrap:nowrap;gap:8px;padding:4px 12px;min-height:36px;border-radius:999px}body.touch .next-goal-kicker{display:none}body.touch .next-goal-text{-webkit-line-clamp:1;min-width:0;flex:1 1 auto;text-align:left}body.touch .next-goal-coins{display:none}body.touch .next-goal-challenge{flex:none;white-space:nowrap}body.touch .stand-card.collapsed .stand-card-head{padding:6px 44px 6px 10px;gap:10px;min-height:48px;align-items:center}body.touch .stand-card.collapsed .stand-card-logo{max-height:30px;max-width:64px}body.touch .stand-card.collapsed .stand-card-tagline,body.touch .stand-card.collapsed .stand-card-more{display:none}body.touch .stand-card.collapsed .stand-card-title{display:flex;align-items:center;gap:8px;min-width:0}body.touch .stand-card.collapsed .stand-card-name{font-size:16px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.touch .stand-card.collapsed .stand-card-close{top:50%;transform:translateY(-50%)}.hud-options-body #btn-fullscreen{display:none}body.touch .hud-options-body #btn-fullscreen{display:flex}body.touch .challenge-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:14px}body.touch .docks>.chat.collapsed{flex:none;min-width:0}body.touch .docks .chat.collapsed .chat-head{width:auto;justify-content:center}@media(orientation:landscape)and (max-height:500px){body.touch .hud-options-body{display:grid;grid-template-columns:repeat(3,1fr);width:min(600px,74vw);gap:6px;position:fixed;top:62px;left:max(12px,env(safe-area-inset-left,0px));right:auto;max-height:calc(100dvh - 70px)}body.touch .hud-options-body .menu-players{grid-column:1 / -1}body.touch .hud-options-body button{min-height:40px;padding:6px 10px;font-size:14px}}body.touch .hud-options-body button{touch-action:pan-y}@media(orientation:landscape)and (max-height:500px)and (max-width:700px){body.touch #event-name{display:none}body.touch .event{flex:none}body.touch .hud-top{max-width:56vw}}body.touch .stand-card.collapsed{width:auto;min-width:64px;max-width:120px;padding:0;border-radius:14px;animation:none}body.touch .stand-card.collapsed .stand-card-head{flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 8px;min-height:0}body.touch .stand-card.collapsed .stand-card-title,body.touch .stand-card.collapsed .stand-card-close,body.touch .stand-card.collapsed .stand-card-more{display:none}body.touch .stand-card.collapsed .stand-card-logo{max-width:72px;max-height:34px}body.touch .stand-card.collapsed .stand-card-head:after{content:attr(data-code);font-size:12px;font-weight:800;letter-spacing:.06em;color:#fff;background:var(--stand-color, #2f6fd1);padding:1px 8px;border-radius:999px}body.touch .hud-top{align-self:flex-end;width:auto;max-width:none;background:none;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:0;gap:6px}body.touch .hud-top .event{flex:none}body.touch #event-name{display:none}body.touch #btn-recenter,body.touch .hud-options>button{border-radius:50%;width:44px;min-width:44px;height:44px;padding:0;background:#141a2699;border:1px solid rgba(255,255,255,.3)}body.touch #status-pill{font-size:0;width:12px;height:12px;min-width:12px;padding:0;border-radius:50%;box-shadow:0 0 0 2px #00000059}body.touch .test-badge{font-size:10px;padding:1px 6px}@media(orientation:landscape)and (max-height:500px){body.touch .hud-top{align-self:flex-end;max-width:none;padding:0}body.touch .hud-options-body{left:auto;right:max(12px,env(safe-area-inset-right,0px))}}.photo-flash{position:fixed;inset:0;background:#fff;pointer-events:none;z-index:60;animation:photo-flash .6s ease-out forwards}@keyframes photo-flash{0%{opacity:.9}to{opacity:0}}body.spectator #login,body.spectator #missions,body.spectator #shop,body.spectator #chat,body.spectator #joystick,body.spectator #hud-bottom,body.spectator #stand-card,body.spectator #next-goal,body.spectator #coach,body.spectator #talk-status,body.spectator #cafe-panel,body.spectator #place-panel,body.spectator #btn-recenter,body.spectator #btn-logout,body.spectator #btn-howto,body.spectator #btn-guide,body.spectator #btn-online,body.spectator #online-list{display:none!important}.spectator-bar{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:8px 10px 8px 14px;max-width:calc(100vw - 24px);background:#101622e6;border:1px solid rgba(255,255,255,.18);border-radius:999px;color:#fff;font-size:14px;z-index:30}.spectator-live{color:#ff4d4d;font-weight:800;letter-spacing:.05em;white-space:nowrap}.spectator-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.spectator-bar button{min-width:40px;height:36px;border-radius:18px;border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:#fff;font-size:14px;cursor:pointer}.spectator-bar .spectator-auto[aria-pressed=true]{background:#1f6fd1;border-color:#1f6fd1}.spectator-bar .spectator-play{display:inline-flex;align-items:center;height:36px;padding:0 14px;border-radius:18px;background:#1fa463;color:#fff;font-size:14px;font-weight:700;text-decoration:none;white-space:nowrap}@media(max-width:520px){.spectator-bar{gap:6px;padding:6px 8px 6px 12px;font-size:13px;width:calc(100vw - 24px);box-sizing:border-box}.spectator-name{flex:1}.spectator-live{font-size:0}.spectator-live:before{content:"●";font-size:14px}.spectator-name{white-space:normal;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.gl-lost{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:#0c101af5;color:#fff;font-size:18px;font-weight:700;text-align:center;border:none;cursor:pointer}.share-sheet{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:16px;background:#060a1499}.share-card{width:min(420px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:16px;border-radius:16px;background:#101622fa;border:1px solid rgba(120,170,255,.4);color:#fff;box-shadow:0 16px 40px #00000080}.share-card h3{margin:0 0 10px;font-size:18px}.share-card img{display:block;width:100%;border-radius:10px;margin-bottom:12px}.share-card ul{margin:0 0 14px;padding-left:18px;line-height:1.6}.share-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.share-actions button,.share-actions a{min-height:42px;padding:0 16px;border-radius:10px;font-size:15px;display:inline-flex;align-items:center;text-decoration:none;color:#fff}.share-actions .primary{background:#25a244;border:none;font-weight:700}.live-count{font-size:12px;font-weight:700;color:#fff;background:#141a26b3;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:3px 9px;white-space:nowrap}body.spectator #btn-invite,body.spectator #btn-summary,body.spectator #btn-postcard{display:none!important}.ranking-tabs{display:flex;gap:6px;margin:4px 0 8px}.ranking-tabs button{flex:1;min-height:34px;border-radius:8px}.ranking-tabs button[aria-pressed=true]{background:#1f6fd1;border-color:#1f6fd1;color:#fff}body.following #coach{display:none!important}
