:root{
  --bg:#eceff7; --ink:#14182b; --muted:#5d647d; --card:#fff; --line:#d6dbea;
  --accent:#4a3fe0; --accent-ink:#fff; --danger:#d83a52; --stage:#14182b;
  --font:"Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{--bg:#0f1220;--ink:#eef0fb;--muted:#9aa1bd;--card:#191d33;--line:#2a2f4d;--accent:#8a80ff;--accent-ink:#0f1220}
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--font);padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
[hidden]{display:none!important}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.lobby{min-height:100%;display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,6vw,96px);align-items:center;max-width:1100px;margin:0 auto;padding:32px 24px}
.intro h1{font-size:clamp(2.6rem,7vw,5.2rem);line-height:.98;letter-spacing:-.035em;font-weight:800;margin:0 0 18px}
.intro p{font-size:1.15rem;color:var(--muted);max-width:30ch;line-height:1.5;margin:0}
.panel{background:var(--card);border:1px solid var(--line);border-radius:28px;padding:22px;display:grid;gap:16px}
.modes{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mode{display:grid;gap:4px;justify-items:start;text-align:left;padding:18px;border-radius:20px;background:transparent;border:2px solid var(--line);transition:border-color .15s,background .15s}
.mode svg{margin-bottom:10px}
.mode b{font-weight:600;font-size:1.05rem}
.mode span{color:var(--muted);font-size:.9rem}
.mode.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.code{display:grid;gap:6px;font-size:.9rem;color:var(--muted)}
.code input{font:inherit;padding:12px 14px;border-radius:14px;border:2px solid var(--line);background:transparent;color:var(--ink)}
.primary{border:0;border-radius:18px;padding:16px;font-weight:600;font-size:1.1rem;background:var(--accent);color:var(--accent-ink)}
.primary:disabled{opacity:.6}
.ghost{border:1px solid var(--line);background:transparent;border-radius:12px;padding:8px 12px;font-size:.9rem}
.link{display:flex;gap:10px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px;color:var(--muted);font-size:.9rem}
.link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg{margin:0;min-height:1.2em;color:var(--danger);font-size:.92rem}

.call{position:fixed;inset:0;background:var(--stage);color:#fff;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}
.stage{position:relative;flex:1;min-height:0;display:grid;place-items:center;overflow:hidden}
#remote{width:100%;height:100%;object-fit:cover;background:#000;display:none}
.call.has-video #remote{display:block}
.call.has-video #remoteAvatar{display:none}
.status{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);background:#ffffff1f;backdrop-filter:blur(10px);padding:8px 16px;border-radius:99px;font-size:.95rem;white-space:nowrap}
.status.ok{display:none}
.top{position:absolute;top:14px;left:16px;right:16px;display:flex;justify-content:space-between;font-variant-numeric:tabular-nums;font-size:.95rem}
.top span{background:#0000004d;backdrop-filter:blur(8px);padding:6px 12px;border-radius:99px}
.net::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#e8b339;margin-right:8px}
.net.good::before{background:#3ddc97}.net.bad::before{background:var(--danger)}
.pip{position:absolute;right:16px;bottom:16px;width:clamp(96px,22vw,200px);aspect-ratio:3/4;border-radius:18px;overflow:hidden;background:#222845;border:2px solid #ffffff33}
.pip video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}

/* Audio presence: the ring grows with voice level */
.avatar{position:relative;display:grid;place-items:center;border-radius:50%;background:#2b3157;--lvl:0}
.avatar.big{width:clamp(130px,26vw,220px);aspect-ratio:1}
.avatar.small{position:absolute;inset:0;border-radius:0;width:100%;height:100%}
.avatar svg{width:42%;height:42%;stroke:#c9cdf5}
.avatar i{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 calc(var(--lvl)*28px) #8a80ff55;transition:box-shadow .08s}
.avatar.small i{display:none}

.dock{display:flex;justify-content:center;gap:18px;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:var(--stage)}
.ctl{width:60px;height:60px;border-radius:50%;border:0;display:grid;place-items:center;background:#ffffff1f;color:#fff;transition:background .15s}
.ctl:hover{background:#ffffff33}
.ctl .slash{opacity:0}
.ctl[aria-pressed=true]{background:#fff;color:var(--stage)}
.ctl[aria-pressed=true] .slash{opacity:1}
.ctl.end{background:var(--danger);width:76px;border-radius:30px}
.ctl.end svg{transform:rotate(0)}

@media (max-width:760px){
  .lobby{grid-template-columns:1fr;align-content:center;gap:24px}
  .intro p{max-width:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
