.presence-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;isolation:isolate;--presence-size:56px;--presence-green:#92e7b4;--presence-chat:#efc680;font-family:Inter,"Segoe UI",Arial,sans-serif}
.presence-layer,.presence-layer *{box-sizing:border-box}
.presence-layer[hidden],.presence-layer [hidden]{display:none!important}
.presence-node{position:absolute;inset:0;pointer-events:none}
.presence-chip{position:absolute;left:0;top:0;width:var(--presence-size);height:var(--presence-size);padding:0;margin:0;border:0;border-radius:50%;background:none;color:#edf2ee;pointer-events:none;user-select:none;will-change:transform;line-height:1;isolation:isolate;-webkit-user-select:none}
button.presence-chip{pointer-events:auto;cursor:pointer}
button.presence-chip:disabled{opacity:1;pointer-events:none}
button.presence-chip:hover{filter:none}
button.presence-chip:focus-visible{outline:2px solid #d6ecd9;outline-offset:6px}
.presence-rim{position:absolute;inset:0;padding:4px;border-radius:50%;background:linear-gradient(145deg,#b6c3b7b3 0%,#38443ed9 23%,#101915 58%,#7a8980b3 100%);box-shadow:0 0 0 1px #0c1312d9,0 5px 10px #050b0947,inset 0 1px 1px #f6fff74a;overflow:hidden}
.presence-rim:after{content:"";position:absolute;inset:1px;border:1px solid #e6f3e719;border-radius:50%;pointer-events:none}
.presence-face{position:relative;display:grid;place-items:center;width:100%;height:100%;overflow:hidden;border-radius:50%;background:linear-gradient(145deg,#31483e,#182820);box-shadow:inset 0 0 0 1px #08130f99}
.presence-initials{display:grid;place-items:center;width:100%;height:100%;color:var(--presence-accent);font-size:17px;font-weight:600;letter-spacing:.4px;text-shadow:0 1px 3px #0005;background:radial-gradient(ellipse at 15% 0%,#ecf7e61c,transparent 65%),repeating-linear-gradient(135deg,transparent 0 8px,#e3eee606 8px 9px)}
.presence-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;filter:saturate(.92);background:#1d2d25}
.presence-halo{position:absolute;inset:-4px;border:1px solid transparent;border-radius:50%;opacity:0;pointer-events:none}
.presence-nameplate{position:absolute;top:calc(100% + 6px);left:50%;display:flex;align-items:center;justify-content:center;gap:5px;min-height:21px;padding:4px 7px;transform:translateX(-50%);border:1px solid #cedcc92b;border-radius:6px;background:linear-gradient(#24302bf2,#131d19f2);box-shadow:0 2px 5px #06100b3d;color:#e0e8df;font-size:10px;font-weight:500;letter-spacing:.05px;white-space:nowrap;line-height:12px}
.presence-name{overflow:hidden;text-overflow:ellipsis;min-width:0}
.presence-self-label{flex-shrink:0;color:#afc9b2;font-size:7px;font-weight:700;letter-spacing:.65px;border-left:1px solid #a2bc9d40;padding-left:5px}
.presence-chip[data-self=true] .presence-rim{background:linear-gradient(145deg,#dae6cc,#627562 27%,#203528 65%,#bac9a9)}
.presence-chip[data-self=true] .presence-nameplate{border-color:#a9c29157;background:linear-gradient(#34452cf5,#1c2b20f5)}
.presence-chip[data-fanned=true][data-self=true] .presence-name{display:none}
.presence-chip[data-fanned=true][data-self=true] .presence-self-label{border:0;padding:0;font-size:8px}
.presence-anchor{position:absolute;left:0;top:0;width:10px;height:5px;border-radius:50%;border:1px solid #ceddcc78;background:#101b1680;box-shadow:0 1px 3px #02060352}
.presence-anchor[data-self=true]{width:12px;height:6px;border-color:#c3daa5bf}
.presence-tether{position:absolute;left:0;top:0;height:1px;transform-origin:left center;background:linear-gradient(90deg,#a6b9a84d,#bdccb86b 45%,#d0dccc12);pointer-events:none}
.presence-direction{position:absolute;inset:-9px;display:none;pointer-events:none}
.presence-direction:before{content:"";position:absolute;top:0;left:calc(50% - 4px);width:8px;height:6px;background:#d0dcc4;clip-path:polygon(50% 0,100% 100%,50% 75%,0 100%);filter:drop-shadow(0 1px 1px #101910)}
.presence-chip[data-seated=true] .presence-direction{display:block}
.presence-voice-mark{position:absolute;right:-2px;bottom:0;width:17px;height:17px;display:flex;align-items:center;justify-content:center;gap:2px;border:1px solid #799b846b;border-radius:50%;background:#172920;color:#89b998;opacity:0;box-shadow:0 1px 4px #03110980}
.presence-voice-mark i{display:block;width:2px;height:3px;border-radius:1px;background:currentColor}
.presence-voice-mark i:nth-child(2){height:6px}
.presence-chip[data-voice=true] .presence-voice-mark{opacity:1}
.presence-chip[data-muted=true] .presence-voice-mark{color:#9bada2;border-color:#738278;background:#27312c}
.presence-chip[data-muted=true] .presence-voice-mark:after{content:"";position:absolute;width:12px;height:1px;background:#c0c9c3;transform:rotate(-45deg);box-shadow:0 1px #27312c}
.presence-chip[data-speaking=true] .presence-rim{background:linear-gradient(140deg,#d2f5d8,#8bddaa 26%,#285c41 58%,#8be2ad);box-shadow:0 0 0 1px #b8f2c4c4,0 0 13px #75dc9a57,0 4px 8px #05190d80}
.presence-chip[data-speaking=true] .presence-halo{opacity:1;border-color:#a3efbb8c;animation:presence-voice-ring 1.2s ease-out infinite}
.presence-chip[data-speaking=true] .presence-voice-mark{color:#d9ffe1;border-color:#a9ecc0;background:#326647}
.presence-chip[data-speaking=true] .presence-voice-mark i{animation:presence-voice-bar .58s ease-in-out infinite alternate}
.presence-chip[data-speaking=true] .presence-voice-mark i:nth-child(2){animation-delay:-.2s}
.presence-chip[data-speaking=true] .presence-voice-mark i:nth-child(3){animation-delay:-.38s}
.presence-chip[data-speaking=true] .presence-nameplate{border-color:#98dfa583;color:#e2f8df}
.presence-chat-badge{position:absolute;right:-5px;top:-4px;display:grid;place-items:center;width:21px;height:20px;border:1px solid #f6daa1;border-radius:7px;background:linear-gradient(#efd6a2,#ccaa6d);color:#3d3527;box-shadow:0 2px 7px #13150c66;opacity:0;transform:scale(.9);pointer-events:none}
.presence-chat-glyph{position:relative;display:flex;align-items:center;justify-content:center;gap:1px;width:13px;height:9px;border:1px solid currentColor;border-radius:3px}
.presence-chat-glyph:after{content:"";position:absolute;left:2px;bottom:-3px;width:3px;height:3px;border-left:1px solid currentColor;transform:skewY(-35deg);background:#ddbf87}
.presence-chat-glyph i{width:1px;height:1px;background:currentColor;border-radius:50%}
.presence-chip[data-chatting=true] .presence-chat-badge{opacity:1;transform:scale(1);animation:presence-chat-pulse 1.2s ease-in-out 3}
.presence-chip[data-chatting=true]:not([data-speaking=true]) .presence-rim{box-shadow:0 0 0 1px #edcf92c9,0 0 11px #e9c77a45,0 4px 8px #19130866}
.presence-chip[data-chatting=true]:not([data-speaking=true]) .presence-halo{border-color:#edcf928c;opacity:1;animation:presence-chat-ring 1.2s ease-out 3}
.presence-chip[data-chatting=true][data-chat-sequence=b] .presence-chat-badge{animation-name:presence-chat-pulse-again}
.presence-chip[data-chatting=true][data-chat-sequence=b]:not([data-speaking=true]) .presence-halo{animation-name:presence-chat-ring-again}
.presence-chip[data-chatting=true] .presence-nameplate{border-color:#e0c49178}
.presence-chip[data-speaking=true][data-chatting=true] .presence-nameplate{border-color:#98dfa583}
@keyframes presence-voice-ring{0%{transform:scale(.98);opacity:.75}100%{transform:scale(1.14);opacity:0}}
@keyframes presence-voice-bar{from{transform:scaleY(.55)}to{transform:scaleY(1.3)}}
@keyframes presence-chat-pulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.18)}}
@keyframes presence-chat-ring{0%{transform:scale(.99);opacity:.65}100%{transform:scale(1.13);opacity:0}}
@keyframes presence-chat-pulse-again{0%,100%{filter:brightness(1)}50%{filter:brightness(1.18)}}
@keyframes presence-chat-ring-again{0%{transform:scale(.99);opacity:.65}100%{transform:scale(1.13);opacity:0}}
@media(max-width:650px){.presence-layer{--presence-size:50px}.presence-initials{font-size:15px}.presence-nameplate{font-size:9px}.presence-voice-mark{width:16px;height:16px}.presence-chat-badge{width:20px;height:19px}}
@media(prefers-reduced-motion:reduce){.presence-layer *,.presence-layer *:before,.presence-layer *:after{animation:none!important;transition:none!important}.presence-chip[data-speaking=true] .presence-halo,.presence-chip[data-chatting=true] .presence-halo{opacity:.6;transform:none}}
