[hidden]{display:none!important}.shell-loading{visibility:hidden}
body{margin:0;background:#0b1727;color:#eff7ff;font:16px system-ui}header,main{padding:18px;max-width:1200px;margin:auto}a{color:#9cd9ff}section{margin:16px 0}button,input,select{padding:10px;margin:4px;font:inherit}iframe{width:100%;height:650px;border:1px solid #36516b}pre{white-space:pre-wrap;overflow-wrap:anywhere}label{display:block;margin:8px 0}.warning{color:#ffcf85}
/* The public player shell occupies only its embedding viewport. The host owns
   its own header; neither management chrome nor a fixed-height frame belongs here. */
body.player-mode{background:#080c0f;color:#f1f3f6;font:14px system-ui;min-height:100vh;min-height:100dvh}
.player-mode main{box-sizing:border-box;width:100%;height:100vh;height:100dvh;max-width:none;margin:0;padding:24px;display:grid;grid-template-columns:minmax(0,1fr);place-items:center}
.player-mode #lobby{box-sizing:border-box;width:290px;max-width:100%;margin:0;padding:24px;border:1px solid #29313b;border-radius:14px;background:#111820}
.player-mode #player-title{margin:0 0 6px;font-size:24px;line-height:1.25;letter-spacing:2px;text-transform:uppercase;overflow-wrap:anywhere}
.player-mode #player-description{margin:0 0 16px;color:#a3adba;font-size:11px;line-height:1.5}
.player-mode #join-form{display:flex;gap:8px;min-width:0}
.player-mode #name{box-sizing:border-box;min-width:0;width:100%;flex:1;margin:0;padding:9px 10px;border:1px solid #445363;border-radius:5px;background:#080d12;color:#f1f3f6;font-size:14px;outline:none}
.player-mode #name:focus{border-color:#73cee8;box-shadow:0 0 0 1px #73cee833}
.player-mode #join{margin:0;padding:9px 14px;border:0;border-radius:5px;background:#f0f2f6;color:#111820;font-size:14px;font-weight:700;cursor:pointer}
.player-mode #join:disabled{opacity:.55;cursor:default}
.player-mode #status{margin:12px 0 0;color:#bbc5d0;font-size:12px;overflow-wrap:anywhere}
.player-mode #status:empty,.player-mode #renderer{display:none}
.player-mode.playing main{display:block;padding:0}
.player-mode.playing #lobby{display:none}
.player-mode.playing #renderer{display:block;width:100%;height:100%;margin:0}
.player-mode #renderer iframe{display:block;box-sizing:border-box;width:100%;height:100%;border:0}
/* ChimpVibe preview: the same card, labelled as a private preview, with one full-width load button. */
.preview-mode #lobby{width:380px;border-color:#2f8a62}
.preview-mode #lobby::before{content:"PRIVATE";display:inline-block;margin:0 0 12px;padding:3px 9px;border:1px solid #2f8a62;border-radius:999px;color:#78d8aa;font-size:9px;font-weight:700;letter-spacing:.14em}
.preview-mode #player-description{font-size:12px;line-height:1.6}
.preview-mode #join{flex:1;padding:11px 14px;background:#78d8aa;color:#0a0d12;letter-spacing:.06em}
@media(max-width:340px){.player-mode main{padding:16px}.player-mode #lobby{padding:20px}}
