/* ===== Round 4: calls + nicknames + design QA ===== */
#callv{position:fixed;inset:0;z-index:200;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:cvIn .32s cubic-bezier(.2,.9,.25,1.05);overflow:hidden;background:#0b0b12}
#callv .cbg{opacity:1}#callv::before{content:"";position:absolute;inset:0;background:#0b0b12}
#callv.out{animation:cvOut .25s ease forwards}@keyframes cvIn{from{opacity:0;transform:scale(1.04)}}@keyframes cvOut{to{opacity:0;transform:scale(.97)}}
#callv .cbg{position:absolute;inset:-20%;background:radial-gradient(circle at 30% 20%,color-mix(in srgb,var(--pc) 70%,#000),transparent 60%),radial-gradient(circle at 80% 90%,#3b0764,transparent 55%),#0b0b12;filter:blur(30px)}
.cin{position:relative;text-align:center;margin-top:-8vh}.cin h2{font-size:32px;margin:22px 0 4px;letter-spacing:-.02em}.cin p{opacity:.8;font-weight:700;margin:0}
.cpulse{display:inline-block;border-radius:50%;animation:cpl 1.6s ease-out infinite}@keyframes cpl{0%{box-shadow:0 0 0 0 rgba(255,255,255,.35)}100%{box-shadow:0 0 0 34px rgba(255,255,255,0)}}
.cbtns{position:absolute;left:50%;bottom:calc(30px + env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:14px;padding:12px 16px;border-radius:32px;background:rgba(20,20,30,.55);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);z-index:3}
.cbtns.in{background:none;backdrop-filter:none;gap:40px;bottom:calc(60px + env(safe-area-inset-bottom))}
.cb{width:60px;height:60px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#fff;display:grid;place-items:center;cursor:pointer;position:relative;transition:transform .2s cubic-bezier(.2,.9,.25,1.4),background .2s}
.cb.on{background:#fff;color:#111}.cb.red{background:#ef4444}.cb.grn{background:#22c55e;animation:cpl 1.6s ease-out infinite}.cbtns.in .cb{width:72px;height:72px}
.cb span{position:absolute;top:calc(100% + 8px);font-size:13px;font-weight:800;white-space:nowrap}
.cb:active{transform:scale(.9)}
.ctop{position:absolute;top:calc(14px + env(safe-area-inset-top));left:0;right:0;text-align:center;z-index:3;text-shadow:0 1px 8px rgba(0,0,0,.6)}.ctop b{display:block;font-size:19px}.ctop span{font-size:14px;font-weight:700;opacity:.85;font-variant-numeric:tabular-nums}
.ctiles{position:absolute;inset:0;display:grid;gap:4px;padding:0}.ctiles[data-n="2"]{grid-template-rows:1fr 1fr}.ctiles[data-n="3"]{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.ctiles[data-n="3"] .ctile:first-child{grid-column:span 2}
@media(min-width:760px){.ctiles[data-n="2"]{grid-template-rows:none;grid-template-columns:1fr 1fr}.ctiles{padding:4px}}
.ctile{position:relative;overflow:hidden;display:grid;place-items:center;background:rgba(255,255,255,.04);border-radius:0}@media(min-width:760px){.ctile{border-radius:18px}}
.ctile video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s}.ctile.hasv video{opacity:1}.ctile.hasv .cav{opacity:0}
.cav{transition:opacity .3s}.ctile.conn .cav{animation:cpl 1.6s ease-out infinite;border-radius:50%}
.cnm{position:absolute;left:12px;bottom:12px;font-weight:800;font-size:13px;padding:4px 10px;border-radius:99px;background:rgba(0,0,0,.45)}.ctiles[data-n="1"] .cnm{display:none}
#cself{position:absolute;right:14px;top:calc(70px + env(safe-area-inset-top));width:104px;height:150px;object-fit:cover;border-radius:18px;border:2px solid rgba(255,255,255,.7);box-shadow:0 12px 30px rgba(0,0,0,.5);z-index:4;background:#222}#cself.mir{transform:scaleX(-1)}
@media(min-width:760px){#cself{width:200px;height:130px;top:auto;bottom:120px;right:24px}}
#callv.aud .ctiles .cav .av{width:140px!important;height:140px!important;font-size:52px!important}
body.incall #qafab,body.incall .jarvis-fab,body.incall #utoast{display:none}
.cbtn{padding:6px 10px!important;font-size:16px}
/* nicknames card */
.alv{padding:12px 0;border-bottom:1px solid var(--line)}.alv:last-of-type{border:0;margin-bottom:10px}.alh{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.alr{display:grid;grid-template-columns:24px 1fr 1.2fr;align-items:center;gap:10px;margin:6px 0 6px 6px;font-weight:700;font-size:14px}.alr input{margin:0;min-height:38px;padding:6px 10px}
.ctile:not(:first-child) .cnm{top:12px;bottom:auto}
