:root{--bg:#faf6f0;--surface:#fffdf9;--ink:#2a211b;--muted:#7a6d63;--line:#e6ddd2;--accent:#d9674a;--accent-ink:#fff;--ok:#2f7d5b;--warn:#a8660f;--danger:#b3372b;--video:#16120f;--radius:12px;--font-body:system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Fraunces", Georgia, serif;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--bg:#17130f;--surface:#211b16;--ink:#f3ece4;--muted:#a3968a;--line:#342c25;--accent:#e8846b;--accent-ink:#2a120b;--ok:#6cc79b;--warn:#e3b25a;--danger:#f08a7d;--video:#0d0b0a}}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font-body);margin:0;font-size:16px;line-height:1.5}h1,h2,h3,p{margin:0}[hidden]{display:none!important}.wordmark{font-family:var(--font-display);color:var(--ink);letter-spacing:.2px;font-size:22px;font-weight:500;text-decoration:none}.wordmark span{color:var(--accent)}button,input,select{font:inherit;color:inherit}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:15px;transition:border-color .15s,background .15s;display:inline-flex}.btn:hover{border-color:var(--muted)}.btn:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:500}.btn-primary:hover{border-color:var(--accent);filter:brightness(1.05)}.btn[disabled]{opacity:.6;cursor:progress}.btn-small{padding:6px 12px;font-size:13px}.field{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:100%;padding:10px 14px}.field::placeholder{color:var(--muted)}.error{color:var(--danger);font-size:14px}.muted{color:var(--muted)}.home{max-width:880px;margin:0 auto;padding:48px 16px 64px}.home header{margin-bottom:56px}.home h1{font-family:var(--font-display);max-width:14ch;margin-bottom:16px;font-size:clamp(34px,6vw,52px);font-weight:500;line-height:1.1}.home .lede{color:var(--muted);max-width:46ch;font-size:18px}.choices{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:14px;padding:24px;display:flex}.card h2{font-size:18px;font-weight:500}.card form{flex-direction:column;gap:10px;display:flex}.code-input{text-transform:uppercase;letter-spacing:4px;text-align:center;font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:20px}.how{color:var(--muted);max-width:60ch;margin-top:40px;font-size:14px}.topbar{justify-content:space-between;align-items:center;gap:12px;max-width:1120px;margin:0 auto;padding:14px 16px;display:flex}.room-chip{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.room-chip code{letter-spacing:2px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:4px 10px;font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:14px}.layout{grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:16px;max-width:1120px;margin:0 auto;padding:0 16px 32px;display:grid}@media (width<=820px){.layout{grid-template-columns:minmax(0,1fr)}}.stage{aspect-ratio:16/9;background:var(--video);border-radius:var(--radius);position:relative;overflow:hidden}.stage video{background:var(--video);width:100%;height:100%;display:block}.overlay{text-align:center;background:var(--video);color:#f3ece4;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:absolute;inset:0}.overlay p{max-width:46ch}.overlay .muted{color:#b9ada1;font-size:14px}.overlay form{flex-direction:column;gap:10px;width:min(480px,100%);display:flex}.overlay .field{color:#f3ece4;background:#241e19;border-color:#3a322c}.overlay .error{color:#f08a7d}.cast-controls{align-items:center;gap:8px;display:flex}.overlay .btn:not(.btn-primary){color:#f3ece4;background:#241e19;border-color:#3a322c}.spinner{border:3px solid #3a322c;border-top-color:#e8846b;border-radius:50%;width:28px;height:28px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.meta .title{font-size:15px;font-weight:500}.meta .sub{color:var(--muted);font-size:13px}.pickers{flex-wrap:wrap;gap:8px;display:flex}.pickers select{border:1px solid var(--line);background:var(--surface);border-radius:8px;max-width:220px;padding:6px 10px;font-size:13px}.host-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-top:12px;padding:12px 16px}.host-panel summary{cursor:pointer;font-size:14px}.host-panel form{gap:8px;margin-top:12px;display:flex}.host-panel .error{margin-top:8px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.panel h2{color:var(--muted);margin-bottom:12px;font-size:13px;font-weight:400}.viewers{flex-direction:column;gap:12px;margin:0 0 16px;padding:0;list-style:none;display:flex}.viewer{align-items:center;gap:10px;display:flex}.avatar{background:color-mix(in srgb, var(--accent) 22%, transparent);width:32px;height:32px;color:var(--ink);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:500;display:grid}.viewer .who{flex:1;min-width:0}.viewer .name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.viewer .state{font-size:12px}.tone-ok{color:var(--ok)}.tone-warn{color:var(--warn)}.tone-muted{color:var(--muted)}.toast{background:var(--ink);color:var(--bg);z-index:10;border-radius:999px;padding:8px 16px;font-size:14px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}dialog{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);width:min(400px,100vw - 32px);padding:24px}dialog::backdrop{background:#00000080}dialog h2{font-family:var(--font-display);margin-bottom:4px;font-size:22px;font-weight:500}dialog form{flex-direction:column;gap:12px;margin-top:16px;display:flex}
