:root { color-scheme: dark; font-family: Inter, system-ui, sans-serif; background: #050505; color: white; } * { box-sizing: border-box; } html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; } body { background: radial-gradient(circle at center, #202020 0%, #050505 65%); } #stage { position: fixed; inset: 0; display: grid; transition: grid-template-columns 200ms ease; } #stage.layout-split { grid-template-columns: 1fr 1fr; } #stage.layout-left-focus { grid-template-columns: 7fr 3fr; } #stage.layout-right-focus { grid-template-columns: 3fr 7fr; } .pane { position: relative; min-width: 0; min-height: 0; overflow: hidden; background: #0a0a0a; border: 1px solid #222; } .pane video { width: 100%; height: 100%; object-fit: contain; background: black; } .pane.connected .empty-state { display: none; } .pane-label { position: absolute; left: 18px; top: 18px; z-index: 4; padding: 8px 12px; border-radius: 999px; background: rgb(0 0 0 / 60%); backdrop-filter: blur(10px); font-weight: 700; } .empty-state { position: absolute; inset: 0; display: grid; place-items: center; color: #777; font-size: clamp(20px, 3vw, 44px); } #stage.layout-pip-left, #stage.layout-pip-right { display: block; } #stage.layout-pip-left .pane, #stage.layout-pip-right .pane { position: absolute; inset: 0; } #stage.layout-pip-left #left-pane, #stage.layout-pip-right #right-pane { z-index: 3; inset: auto 3vw 4vh auto; width: 28vw; height: 28vh; border: 3px solid white; border-radius: 18px; box-shadow: 0 20px 70px rgb(0 0 0 / 65%); } #join-panel { position: fixed; top: 18px; right: 18px; z-index: 10; display: flex; gap: 12px; opacity: 0.93; transition: opacity 200ms ease; } #join-panel.hidden { opacity: 0; pointer-events: none; } .join-card { width: 150px; padding: 12px; border-radius: 16px; background: rgb(10 10 10 / 82%); backdrop-filter: blur(14px); text-align: center; } .join-card h2 { margin: 0 0 8px; font-size: 15px; } .join-card img { display: block; width: 126px; height: 126px; background: white; border-radius: 8px; } #controls { position: fixed; bottom: 20px; left: 50%; z-index: 20; display: flex; gap: 8px; padding: 10px; transform: translateX(-50%); border-radius: 18px; background: rgb(0 0 0 / 70%); backdrop-filter: blur(14px); } button { appearance: none; border: 1px solid #444; border-radius: 11px; padding: 10px 14px; background: #1d1d1d; color: white; cursor: pointer; font-weight: 650; } button:hover { background: #303030; } #status { position: fixed; left: 18px; bottom: 20px; z-index: 20; color: #aaa; font-size: 13px; }