:root,body{--sa-t:var(--discord-safe-area-inset-top,env(safe-area-inset-top,0px));--sa-r:var(--discord-safe-area-inset-right,env(safe-area-inset-right,0px));--sa-b:var(--discord-safe-area-inset-bottom,env(safe-area-inset-bottom,0px));--sa-l:var(--discord-safe-area-inset-left,env(safe-area-inset-left,0px));--bg:#12141c;--fg:#f4f1ea;--accent:#fc3;--panel:#141620eb}[hidden]{display:none!important}html,body{background:var(--bg);height:100dvh;color:var(--fg);margin:0;font:16px/1.3 system-ui,sans-serif;overflow:hidden}body{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#app{position:fixed;inset:0}#app canvas{width:100%;height:100%;display:block}#ui{pointer-events:none;padding:var(--sa-t) var(--sa-r) var(--sa-b) var(--sa-l);position:fixed;inset:0}#ui button{pointer-events:auto;font:inherit;color:var(--fg);cursor:pointer;background:#2b2f42;border:0;border-radius:10px;padding:10px 16px}#ui button.primary{background:var(--accent);color:#1a1a1a;font-weight:700}#ui button:disabled{opacity:.6;cursor:default}.panel{pointer-events:auto;background:var(--panel);border-radius:16px;gap:10px;width:min(340px,86vw);padding:18px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.title{text-align:center;margin:0;font-size:22px}.members{gap:6px;max-height:40dvh;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.members li{align-items:center;gap:8px;display:flex}.members li.you .name{color:var(--accent)}.av{border-radius:50%;width:28px;height:28px}.badge{opacity:.7;border:1px solid;border-radius:6px;padding:0 5px;font-size:12px}.link{opacity:.7;word-break:break-all;-webkit-user-select:text;user-select:text;pointer-events:auto;margin:0;font-size:12px}.corner{top:calc(var(--sa-t) + 8px);right:calc(var(--sa-r) + 8px);gap:6px;display:flex;position:absolute}.icon{padding:8px 10px!important}.banner{top:calc(var(--sa-t) + 56px);background:var(--panel);white-space:nowrap;border-radius:10px;padding:8px 14px;position:absolute;left:50%;transform:translate(-50%)}.fatal{pointer-events:auto;text-align:center;background:#000000bf;place-content:center;gap:12px;padding:24px;display:grid;position:absolute;inset:0}.perf{color:#0f0;z-index:9;pointer-events:none;background:#000a;padding:2px 4px;font:12px monospace;position:fixed;top:4px;left:4px}.score{top:calc(var(--sa-t) + 6px);pointer-events:none;text-shadow:0 2px 6px #000a;z-index:5;align-items:baseline;gap:14px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.score .n{font-variant-numeric:tabular-nums;text-align:center;min-width:1ch;font-size:30px;font-weight:800}.score .clk{font-variant-numeric:tabular-nums;font-size:16px}.score .side{flex-direction:column;align-items:center;gap:3px;display:flex}.score .pips{gap:4px;height:8px;display:flex}.score .pips i{box-sizing:border-box;opacity:.55;border:1.5px solid;border-radius:50%;width:7px;height:7px}.score .pips i.on{opacity:1;background:currentColor}.flash{opacity:0;pointer-events:none;z-index:8;background:#fff;position:fixed;inset:0}.edge{opacity:0;pointer-events:none;z-index:7;position:fixed;inset:0;box-shadow:inset 0 0 36px 14px}.wash{opacity:0;pointer-events:none;z-index:4;position:fixed;inset:0}.score.mp{box-shadow:0 0 0 2px var(--gold);border-radius:12px;padding:2px 12px;animation:1s ease-in-out infinite alternate mp}@keyframes mp{0%{box-shadow:0 0 0 2px color-mix(in srgb, var(--gold) 45%, transparent)}to{box-shadow:0 0 10px 2px var(--gold)}}@media (prefers-reduced-motion:reduce){.score.mp{animation:none}}body[data-compact] .score{display:none}.dev{left:calc(var(--sa-l) + 4px);top:calc(var(--sa-t) + 30px);color:#ffe14d;z-index:9;pointer-events:none;white-space:pre;background:#000a;padding:2px 4px;font:12px/1.3 monospace;position:fixed}.stick{box-sizing:border-box;pointer-events:none;border:2px solid #ffffff59;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;position:absolute}.knob{background:#ffffff59;border-radius:50%;width:44px;height:44px;margin:-22px 0 0 -22px;position:absolute;top:50%;left:50%}.pad{pointer-events:none;position:absolute;inset:0}#ui .pad button{touch-action:none;background:#ffffff1a;border:2px solid #ffffff73;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute}#ui .pad button.on{background:#ffffff47}#ui .pad button.pulse{border-color:#fff;animation:.7s ease-out infinite pulse}@keyframes pulse{0%{box-shadow:0 0 #fffc}to{box-shadow:0 0 0 18px #fff0}}@media (prefers-reduced-motion:reduce){#ui .pad button.pulse{animation:none;box-shadow:0 0 0 6px #fff9}}#ui .pad .strike{width:76px;height:76px;right:calc(var(--sa-r) + 12px);bottom:calc(var(--sa-b) + 12px)}#ui .pad .jump{width:56px;height:56px;right:calc(var(--sa-r) + 98px);bottom:calc(var(--sa-b) + 12px)}#ui .pad .dash{width:56px;height:56px;right:calc(var(--sa-r) + 22px);bottom:calc(var(--sa-b) + 98px)}.rotate{z-index:20;background:var(--bg);pointer-events:auto;place-items:center;display:none;position:fixed;inset:0}@media (orientation:portrait){.rotate{display:grid}}body[data-compact] .rotate{display:none!important}.rotate svg{width:96px;height:96px;animation:1.6s infinite turn}@keyframes turn{0%,20%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}@media (prefers-reduced-motion:reduce){.rotate svg{animation:none;transform:rotate(-90deg)}}body[data-compact] #ui{visibility:hidden}.results{pointer-events:auto;text-align:center;text-shadow:0 2px 8px #000a;z-index:6;place-content:center;justify-items:center;gap:min(3.5vh,18px);padding:8px;display:grid;position:absolute;inset:0}.results .rscore{font-variant-numeric:tabular-nums;align-items:baseline;gap:.35em;font-size:min(22vh,132px);font-weight:800;line-height:1;display:flex}.results .rscore .dash{opacity:.6}.results .tiles{gap:min(2vw,14px);display:flex}.results .tile{box-sizing:border-box;background:#0a0c149e;border-radius:12px;justify-items:center;gap:2px;min-width:min(24vw,150px);padding:min(1.8vh,10px) min(1.6vw,12px);display:grid}.results .tile.me{box-shadow:inset 0 0 0 2px var(--accent)}.results .tile .icon{font-size:min(5vh,26px);line-height:1}.results .tile .v{font-variant-numeric:tabular-nums;font-size:min(8vh,40px);font-weight:800;line-height:1.1}.results .tile .v small{opacity:.8;font-size:.4em;font-weight:600}.results .tile .who{min-height:1.3em;font-size:min(3.4vh,16px);font-weight:700}#ui .results button.primary{min-width:7em;font-size:min(5vh,24px)}.devctl{right:calc(var(--sa-r) + 8px);top:calc(var(--sa-t) + 56px);z-index:9;pointer-events:auto;color:#ffe14d;flex-direction:column;align-items:flex-end;gap:4px;font:11px/1.3 monospace;display:flex;position:fixed}.devctl>button{color:#ffe14d;cursor:pointer;background:#000a;border:1px solid #ffe14d88;border-radius:6px;padding:3px 8px;font:11px monospace}.devbody{box-sizing:border-box;width:232px;max-height:calc(100vh - var(--sa-t) - var(--sa-b) - 250px);background:#000d;border-radius:8px;padding:6px 8px;overflow-y:auto}.devbody label{grid-template-columns:78px 1fr 40px;align-items:center;gap:6px;margin:3px 0;display:grid}.devbody label>:nth-child(2):last-child{grid-column:2/4;justify-self:start}.devbody input[type=range]{width:100%;min-width:0;margin:0}.devbody select{grid-column:2/4;min-width:0;font:11px monospace}.devbody b{text-align:right;font-weight:400}.devnote{color:#ff9e7a;margin-top:4px}.devbody select{box-sizing:border-box;width:100%}@media (height<=500px){.dev{font-size:9px}.devctl,.devctl>button,.devbody select{font-size:10px}.devbody label{margin:1px 0}}
