*{box-sizing:border-box}html,body{margin:0;height:100%;background:#000;color:#fff;font:14px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}.player{position:fixed;inset:0;display:grid;place-items:center;background:#000}.player video{width:100%;height:100%;object-fit:contain;background:#000;display:block}.overlay{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.player[data-status=offline] .overlay{background:#0009}.message{display:grid;gap:6px;text-align:center;padding:16px}.message b{font-size:18px}.message span{color:#bbb}.spinner{width:36px;height:36px;border-radius:50%;border:3px solid rgb(255 255 255 / .2);border-top-color:#fff;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:10px;padding:14px 16px;background:linear-gradient(transparent,#000000b3)}.title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;text-shadow:0 1px 3px #000}.title,.btn{opacity:0;transition:opacity .25s}.player.active .title,.player.active .btn,.btn.attention{opacity:1}button{font:inherit;color:#fff;cursor:pointer}.badge,.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:6px;background:#00000080;border:1px solid rgb(255 255 255 / .3);font-size:12px;font-weight:700;letter-spacing:.05em}.badge:hover,.btn:hover{background:#000c;border-color:#fff}.player[data-status=offline] .badge{opacity:.5}.dot{width:8px;height:8px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 3px #ef44444d}.player[data-status=offline] .dot{background:#888;box-shadow:none}.latency{font-weight:500;opacity:.8}.btn.sound.attention{background:#fff;color:#000;border-color:#fff}.play{position:absolute;width:84px;height:84px;border-radius:50%;display:grid;place-items:center;background:#0000008c;border:2px solid rgb(255 255 255 / .8)}.play:hover{background:#000c}.play[hidden]{display:none}.player[data-status=stopped] .dot{background:#888;box-shadow:none}.player[data-status=stopped] .stop{display:none}
