/* EKM Live: Electric Kite Media brand tokens (mirror electrickitemedia.com) */
@font-face{font-family:Archivo;src:url(/fonts/Archivo-800.woff2) format('woff2');font-weight:800;font-display:swap}
@font-face{font-family:Archivo;src:url(/fonts/Archivo-500.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/Inter-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/Inter-500.woff2) format('woff2');font-weight:500 600;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/Inter-700.woff2) format('woff2');font-weight:700;font-display:swap}
:root{color-scheme:dark;--charcoal:#16181D;--panel:#1C1E24;--panel2:#2A2D35;--line:#31353D;--bone:#F2EEE6;--sub:#C9C4BA;--muted:#8A857B;--gold:#C9A24B;--gold-lt:#E3C77E;--gold-wash:rgba(201,162,75,.1);--gleam:linear-gradient(120deg,#8C6C28,#C9A24B 30%,#F4E0A6 50%,#C9A24B 72%,#8C6C28);--head:"Archivo",system-ui,sans-serif;--body:"Inter",system-ui,sans-serif;--ease:cubic-bezier(.22,.61,.21,1);--radius:6px}
*{box-sizing:border-box}
html,body{margin:0;background:var(--charcoal);color:var(--bone);font:16px/1.5 var(--body);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button,a,input{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
h1,h2,h3,p{margin:0}
.eyebrow{font:500 11px var(--head);letter-spacing:3px;text-transform:uppercase;color:var(--gold)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:800 15px/1.1 var(--head);padding:14px 20px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);color:var(--bone);text-decoration:none;white-space:nowrap;transition:border-color .2s var(--ease),background-position .5s var(--ease),opacity .2s}
.btn:hover{border-color:var(--gold)}
.btn-gold{background:var(--gleam);background-size:160% 100%;color:var(--charcoal);border-color:transparent}
.btn-gold:hover{background-position:100% 0}
.btn:disabled{opacity:.45;cursor:default}
input[type=text],input[type=password],input[type=number],select,textarea{width:100%;background:var(--charcoal);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;font-size:16px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-wash)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted)}
.dot.live{background:#6FCF8F;box-shadow:0 0 0 4px rgba(111,207,143,.15)}
.dot.offline{background:#E07A5F}

/* Bubble cloud */
.cloud{display:block;width:100%;height:100%;overflow:visible;user-select:none;-webkit-user-select:none}
.center-pill{fill:var(--bone)}
.center-text{fill:var(--charcoal);font-family:var(--head);font-weight:800;letter-spacing:-.02em}
.link{stroke:var(--gold);stroke-linecap:round;opacity:.22}
.link.top{opacity:.7}.link.hi{opacity:.5}.link.mid{opacity:.34}
.bubble{cursor:default}
.bubble circle{fill:#1F2229;stroke:#3A3D44;stroke-width:1.5}
.bubble .label{fill:var(--sub);font-family:var(--body);font-weight:700}
.bubble .num{fill:#A39E93;font-family:var(--body);font-weight:500}
.bubble.mid circle{fill:var(--panel2);stroke:var(--gold);stroke-opacity:.55}
.bubble.mid .label{fill:var(--bone)}
.bubble.hi circle{fill:var(--gold-lt);stroke:none}
.bubble.hi .label,.bubble.top .label{fill:var(--charcoal)}
.bubble.hi .num,.bubble.top .num{fill:rgba(22,24,29,.65)}
.bubble.top circle{fill:var(--gold);stroke:none}

/* Presenter sign-in */
.gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:rgba(22,24,29,.96);padding:16px}
.gate-card{width:min(380px,100%);display:grid;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:28px}
.gate-card h2{font:800 22px var(--head)}.gate-card p{color:var(--sub);font-size:14px}
