:root{color:#f7f1e8;--accent:#ffab62;--sub:#d2c8bb;--line:#e6d8c340;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#0a0c13;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}canvas,#arena{width:100%;height:100%;display:block;position:absolute;inset:0}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}.top{z-index:4;pointer-events:none;background:linear-gradient(#0a0b12cc,#0000);justify-content:space-between;align-items:center;padding:22px 32px;display:flex;position:absolute;inset:0 0 auto}.brand,.kicker,.credit{letter-spacing:.21em;font:700 11px/1.2 ui-monospace,monospace}.brand span,.kicker,.credit{color:var(--accent)}.brand i,.kicker b{background:var(--accent);width:7px;height:7px;box-shadow:0 0 12px var(--accent);margin-right:8px;display:inline-block;transform:rotate(45deg)}.tools,nav{pointer-events:auto;gap:6px;display:flex}.tools button,nav button{border:1px solid var(--line);background:#11141ddc;padding:9px 13px;font-size:12px}.tools button:hover,nav button:hover,nav button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}#cover{background:linear-gradient(90deg,#0a0b12f5 0%,#0a0b12c9 24%,#0a0b1240 60%,#0000 90%),linear-gradient(#0000 60%,#090b13ad);align-items:center;display:flex;position:absolute;inset:0}.intro{margin-top:4vh;margin-left:clamp(24px,7vw,110px)}.kicker b{width:4px;height:4px;margin:0 8px 2px}h1{letter-spacing:-.085em;color:#fff7ea;text-shadow:0 6px 45px #0007;margin:24px 0 27px;font:950 clamp(62px,11vw,174px)/.85 Arial,sans-serif}h1 span{letter-spacing:.08em;margin-top:18px;font:750 clamp(25px,4.3vw,65px)/1 sans-serif;display:block}.intro p,.objective p{color:var(--sub);line-height:1.75}.intro button{background:var(--accent);color:#1d1010;text-align:left;border:0;min-width:170px;margin:23px 0 13px;padding:13px 18px;font-weight:800;display:block}.intro button span{float:right}.intro button:hover{background:#ffc289}.intro small{color:var(--sub);font-size:11px}.credit{position:absolute;bottom:25px;right:32px}#hud{pointer-events:none;position:absolute;inset:0}.objective{border-left:2px solid var(--accent);background:#10131cdb;padding:14px 18px;position:absolute;top:83px;left:32px}.objective h2{margin:8px 0 2px;font-size:20px}.objective p{margin:0;font-size:12px}.reticle,#interact,#toast{text-shadow:0 1px 4px #000;position:absolute;left:50%;transform:translate(-50%)}.reticle{opacity:.7;top:50%;transform:translate(-50%,-50%)}#interact{border:1px solid var(--accent);white-space:nowrap;background:#17131bed;padding:11px 16px;font-size:14px;top:56%}kbd{border:1px solid var(--line);margin-right:3px;padding:2px 5px;font:700 11px ui-monospace,monospace}#toast{text-align:center;background:#10131cec;padding:10px 15px;font-size:13px;bottom:90px}#toast:empty{display:none}footer{background:linear-gradient(#0000,#080a10dc);justify-content:space-between;align-items:end;padding:22px 32px;display:flex;position:absolute;inset:auto 0 0}.help{color:var(--sub);font-size:12px}#error{z-index:5;background:#492523;padding:12px;position:absolute;bottom:15px;left:20px;right:20px}@media (width<=760px){.top,footer{padding:14px}.objective{top:65px;left:14px}footer{flex-wrap:wrap;gap:12px}nav button{padding:7px}.credit{right:14px}}#admission label{color:var(--sub);margin:18px 0 6px;font-size:12px;display:block}#admission input{border:1px solid var(--line);width:220px;max-width:75vw;color:inherit;font:inherit;background:#11141ded;padding:11px 13px;display:block}#admission input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#admission button{margin-top:10px}#admission-error{color:#ffc4a8;min-height:1.3em;display:block}#chat{color:#f1eee7;pointer-events:auto;background:#12151de8;border:1px solid #ffffff24;border-radius:8px;width:min(320px,100vw - 48px);font-size:13px;position:absolute;bottom:84px;left:24px}#chat summary{cursor:pointer;padding:9px 12px;font-weight:600}#chat-log{overflow-wrap:anywhere;overscroll-behavior:contain;min-height:28px;max-height:min(126px,24vh);padding:0 12px;line-height:1.5;overflow:auto}#chat-log div{margin:3px 0}#chat-log strong{color:#ffbd86}#chat-form{gap:6px;padding:7px 9px;display:flex}#chat-form input{min-width:0;font:inherit;color:inherit;background:#080b12;border:1px solid #ffffff30;border-radius:4px;flex:1;padding:7px 8px}#chat-form button{font:inherit;color:#fff4e9;cursor:pointer;background:#62432c;border:1px solid #ffc38c40;border-radius:4px;padding:6px 10px}#chat-form button:disabled{opacity:.55}#chat-status{color:#ffca9e;margin:0 10px 8px}#chat-status:empty{display:none}@media (width<=760px){#chat{width:min(300px,100vw - 28px);bottom:110px;left:14px}}#arena canvas{touch-action:none}#touch-controls{inset:auto max(16px,env(safe-area-inset-right)) calc(65px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));justify-content:space-between;align-items:end;display:flex;position:absolute}#joystick{aspect-ratio:1;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;background:#141823aa;border:1px solid #ffffff50;border-radius:50%;place-items:center;width:clamp(82px,24vw,114px);display:grid}#joystick span{aspect-ratio:1;pointer-events:none;background:#ffab629c;border:1px solid #ffd4a9;border-radius:50%;width:42%}#joystick.seated{visibility:hidden}#touch-seat{pointer-events:auto;touch-action:manipulation;background:#35281fdd;border:1px solid #ffbe84;border-radius:24px;max-width:45%;min-height:48px;padding:0 15px}#touch-seat:disabled{opacity:.65;border-color:#ffffff3b}#touch-help{left:16px;bottom:calc(175px + env(safe-area-inset-bottom));color:#ffeddb;text-shadow:0 1px 4px #000;margin:0;font-size:11px;position:absolute}.touch-mode .help,.touch-mode #interact,.touch-mode .reticle{display:none}.touch-mode footer{padding:8px 12px calc(8px + env(safe-area-inset-bottom));justify-content:center}.touch-mode nav button{min-height:44px}.touch-mode #chat{bottom:auto;top:calc(145px + env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));width:min(290px,100vw - 28px)}.touch-mode #chat-form input,#nickname{font-size:16px}.touch-mode #chat-log{max-height:15dvh}@media (height<=500px){.touch-mode #chat{width:min(260px,38vw);top:62px;left:auto;right:14px}.touch-mode #chat-log{max-height:12dvh}}#lyrics{color:#fff7ee;text-shadow:0 1px 3px #000;pointer-events:none;background:#10131de8;border-radius:8px;flex-wrap:wrap;justify-content:center;align-items:end;gap:0 .09em;width:max-content;max-width:min(54vw,680px);padding:8px 14px;font-size:clamp(16px,2.15vw,27px);line-height:1.32;display:flex;position:absolute;bottom:75px;left:50%;transform:translate(-50%)}.lyric-segment{white-space:pre-wrap;overflow-wrap:anywhere;grid-template-rows:1em auto;justify-items:start;min-width:0;max-width:100%;display:inline-grid}.lyric-chord{color:#ffc482;font:700 .66em/1.1 ui-monospace,monospace}.lyrics-status{color:#dfd1c2;font-size:12px}#lyrics-toggle[aria-pressed=false]{opacity:.68}.touch-mode #lyrics{bottom:calc(204px + env(safe-area-inset-bottom));max-width:calc(100vw - 30px);font-size:clamp(16px,4.3vw,23px)}@media (width<=760px){.top .tools button{padding-inline:8px}}@media (height<=500px){.touch-mode #lyrics{bottom:calc(97px + env(safe-area-inset-bottom));max-width:53vw}}#joystick{opacity:0;transition:opacity .12s}#joystick.engaged{opacity:1}#ticket-dialog{color:#fff4e5;background:#15121b;border:1px solid #baa9bf;border-radius:8px;width:min(550px,100vw - 28px);max-height:calc(100dvh - 30px);padding:0}#ticket-dialog::backdrop{background:#08060cba}#ticket-art{background:#eee6d8;width:100%;height:auto;display:block;position:static}#ticket-dialog form{justify-content:end;gap:9px;padding:10px;display:flex}#ticket-dialog button{background:#3c2c48;border:1px solid #b394bd66;border-radius:4px;min-height:42px;padding:0 12px}@media (width<=760px){.top{padding-top:max(10px,env(safe-area-inset-top));gap:4px}.top .brand{white-space:nowrap;font-size:9px}.top .tools{gap:3px}.top .tools button{min-height:36px;padding-inline:5px;font-size:11px}.touch-mode .objective{max-width:calc(100vw - 28px);padding:7px 10px;top:57px}.touch-mode .objective h2{font-size:16px}.touch-mode #chat{width:min(245px,100vw - 28px);top:132px}.touch-mode #lyrics{bottom:calc(174px + env(safe-area-inset-bottom))}}@media (height<=500px){.touch-mode #chat{width:min(245px,38vw);top:54px;left:auto;right:14px}.touch-mode #touch-help{bottom:calc(155px + env(safe-area-inset-bottom))}}#cover{background:#120d10;grid-template-columns:minmax(0,1fr) minmax(0,1.55fr);align-items:stretch;display:grid;overflow:auto}#cover .intro{z-index:1;grid-area:1/1;align-self:center;margin:0;padding:52px 24px 52px clamp(24px,6vw,96px)}.concert-date{color:#efb186;letter-spacing:.15em;font:700 12px/1.4 IBM Plex Mono,monospace}.concert-date span{color:#866057}#cover h1{margin:24px 0 34px;font-size:clamp(55px,9vw,142px)}#cover h1 span{color:#f4d9c8;letter-spacing:.14em;font-size:clamp(24px,3vw,46px)}.concert-status{border-block:1px solid #795148;grid-template-columns:auto minmax(0,1fr);gap:20px;margin:0 0 26px;padding:17px 0;display:grid}.concert-status dt{color:#e5ac92;margin-bottom:7px;font-size:12px}.concert-status dd{overflow-wrap:anywhere;margin:0;font-weight:700;line-height:1.4}#lobby-time{font-variant-numeric:tabular-nums;font:600 17px/1.4 IBM Plex Mono,monospace}.admission-fields{gap:8px;display:flex}#cover #admission input{width:100%;min-width:0;max-width:none}#cover #admission button{white-space:nowrap;min-width:0;margin:0;padding:11px 14px}#cover #admission button span{float:none;margin-left:6px}#cover #admission-error{margin-top:8px}@media (width<=720px){#cover{grid-template-rows:minmax(180px,38svh) auto;grid-template-columns:1fr}#cover .intro{grid-row:2;padding:4px 24px 24px}#cover h1{margin:16px 0 24px}}#cover{--paper:#f4e4cb;background:#180c15;grid-template-columns:minmax(0,1fr) minmax(0,.92fr)}#cover .intro{padding-inline:clamp(22px,6vw,100px) 20px}.concert-art{background:radial-gradient(at 24% 6%,#ff713c60,#0000 45%),repeating-linear-gradient(116deg,#0000 0 12%,#c9663319 13% 13.5%,#0000 14% 20%),linear-gradient(145deg,#361928,#751e28 51%,#190d21);border-left:1px solid #ffb98348;grid-area:1/2;place-items:center;min-width:0;display:grid;overflow:hidden}.concert-art span{color:#0000;-webkit-text-stroke:1px #f4c197a0;letter-spacing:-.13em;padding-right:.13em;font:900 clamp(140px,35vw,610px)/.8 Arial,sans-serif}#cover h1{color:var(--paper);font-size:clamp(58px,10vw,156px)}.concert-status{border-color:#ffb98355}#touch-controls{inset:0}#joystick,#joystick.engaged{aspect-ratio:auto;opacity:1;background:0 0;border:0;border-radius:0;width:auto;position:absolute;inset:0 50% 0 0}#touch-seat{bottom:calc(76px + env(safe-area-inset-bottom));position:absolute;right:16px}#chat{z-index:2}.chat-emoji{gap:4px;padding:0 9px 8px;display:flex}.chat-emoji button,.gestures button,.gestures summary{border:1px solid var(--line);background:#1b1821;border-radius:4px;padding:6px 9px;font-size:13px}.gestures{pointer-events:auto;z-index:3;margin-left:auto;position:relative}.gestures summary{cursor:pointer}.gestures div{white-space:nowrap;gap:4px;display:flex;position:absolute;bottom:calc(100% + 5px);right:0}@media (width<=720px){#cover{grid-template-rows:minmax(128px,24svh) auto;grid-template-columns:1fr}.concert-art{border-bottom:1px solid #ffb98348;border-left:0;grid-area:1/1}.concert-art span{font-size:clamp(128px,32vw,220px)}#cover .intro{padding:14px 24px 20px}}#tools-toggle{pointer-events:auto;border:1px solid var(--line);background:#11141de8;margin-left:auto;padding:8px 12px;font-size:12px}#show-tools{flex-wrap:wrap;justify-content:flex-end;max-width:calc(100% - 28px);position:absolute;top:66px;right:32px}.avatar-choice{border:0;align-items:center;gap:8px;margin:0 0 10px;padding:0;display:flex}.avatar-choice legend{color:var(--sub);margin-bottom:7px;font-size:12px}#cover .avatar-choice label{border:1px solid var(--line);cursor:pointer;align-items:center;gap:6px;margin:0;padding:7px 12px;display:flex}#cover #admission .avatar-choice input{width:auto;accent-color:var(--accent);margin:0}.touch-mode #chat{top:auto;bottom:calc(50px + env(safe-area-inset-bottom));width:min(310px,100% - 32px);left:50%;right:auto;transform:translate(-50%)}.touch-mode #touch-seat{bottom:calc(112px + env(safe-area-inset-bottom));z-index:3}@media (width<=760px){#show-tools{right:14px;top:calc(50px + env(safe-area-inset-top))}}#combat-hud{z-index:2;background:#170e1de8;border:1px solid #ffab6260;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:flex;position:absolute;bottom:90px;right:22px}#health-bar{accent-color:#ef6658;width:70px;height:9px}.touch-mode #combat-hud{right:12px;bottom:calc(154px + env(safe-area-inset-bottom))}
