mobile: keep the two portrait panels side by side; wrap chip rows and grow touch targets; debug readouts behind the Profiling toggle; team gallery becomes a 2-col grid on small screens
acquisition ladder: visitor 60/30/10 then app pool 60/30/10 on quota refusals; client shows pool/seconds/2x for wait+grant; lease expiry is a normal end, not an error; busy vs quota split; /ws honors maintenance
speak the zerogpu-headers postMessage handshake with the huggingface.co parent (gradio protocol); /mint stashes the parent-minted quota headers, /ws redeems the ticket
native gradio lease path (LTX-style): frontend claims the GPU via a real gradio queue endpoint (ZeroGPU handshake = personal billing/PRO priority); direct ladder kept as 6s fallback
final quota design: per-visitor IP billing with app-pool fallback (user-level billing unreachable over raw WS — scheduler 401s non-handshake tokens); trim comments
three-tier quota ladder: logged-in user JWT (personal/PRO pool) > per-IP visitor token > shared app pool; frontend fetches the user JWT via hf.co/api/spaces/<id>/jwt before connecting