/*!
 * Mem UI · design tokens: the values every Mem component is built from. Named by meaning, not by
 * value, so a palette or scheme swap restyles everything at once.
 *
 *   Palettes:  "mems" (default; mems.chat's blue)  ·  "aurora" (MemOS's violet and cyan)
 *              <html data-mem-palette="aurora">
 *   Schemes:   dark (default)  ·  light: class "mem-light" on <html> or on any component
 *
 * The aurora palette matches MemOS's Compose kit (memos/kit, Theme.kt). MIT licensed.
 */
:root{--mem-bg:#09090b;--mem-bg-raised:#0f1115;--mem-ink:#eef2f7;--mem-ink-dim:#eef2f79e;--mem-ink-faint:#eef2f766;--mem-line:#ffffff14;--mem-line-strong:#ffffff24;--mem-surface:#ffffff09;--mem-surface-hover:#ffffff0f;--mem-accent:#a9dcff;--mem-accent-2:#6aa8e8;--mem-on-accent:#06121e;--mem-good:#8ee6b4;--mem-warn:#f3c27f;--mem-bad:#ff8a7a;--mem-glass-tint:#10121880;--mem-glass-sheen:#ffffff1c;--mem-glass-edge:#ffffff14;--mem-glass-blur:18px;--mem-glass-saturate:160%;--mem-radius-sm:14px;--mem-radius-md:22px;--mem-radius-lg:32px;--mem-radius-pill:999px;--mem-shadow-float:0 18px 40px -12px #000000b3, 0 3px 10px #0000004d;--mem-shadow-card:0 30px 80px -30px #000c;--mem-space-1:4px;--mem-space-2:8px;--mem-space-3:12px;--mem-space-4:16px;--mem-space-5:24px;--mem-space-6:32px;--mem-font:"Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", sans-serif;--mem-font-display:"Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, sans-serif;--mem-text-xs:11px;--mem-text-sm:13px;--mem-text-md:15px;--mem-text-lg:18px;--mem-text-xl:26px;--mem-safe-top:env(safe-area-inset-top,0px);--mem-safe-bottom:env(safe-area-inset-bottom,0px);--mem-ease:cubic-bezier(.2, .9, .25, 1);--mem-ease-snap:cubic-bezier(.3, .8, .25, 1.06);--mem-duration-fast:.15s;--mem-duration-slide:.24s;--mem-duration-slow:.4s;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-mem-palette=aurora]{--mem-bg:#07080d;--mem-ink:#f4f5fa;--mem-ink-dim:#e6e8f2b3;--mem-ink-faint:#e6e8f266;--mem-accent:#8b7cff;--mem-accent-2:#3fd8e0;--mem-on-accent:#0b0820;--mem-good:#5be3a1;--mem-warn:#ffc266;--mem-bad:#ff6b7a;--mem-glass-tint:#ffffff1a;--mem-glass-edge:#ffffff2e}.mem-light{--mem-bg:#eef1f6;--mem-bg-raised:#fff;--mem-ink:#10131a;--mem-ink-dim:#10131a94;--mem-ink-faint:#10131a61;--mem-line:#00000014;--mem-line-strong:#00000024;--mem-surface:#00000008;--mem-surface-hover:#0000000d;--mem-accent:#2f6fd6;--mem-accent-2:#5b8fe6;--mem-on-accent:#fff;--mem-glass-tint:#ffffff8c;--mem-glass-sheen:#fff9;--mem-glass-edge:#00000014;--mem-shadow-float:0 18px 40px -16px #141e3c59, 0 2px 8px #141e3c1f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mem-palette=aurora] .mem-light,[data-mem-palette=aurora].mem-light{--mem-accent:#6b5cf0;--mem-accent-2:#13a9b3}@media (prefers-reduced-motion:reduce){:root{--mem-duration-fast:0s;--mem-duration-slide:0s;--mem-duration-slow:0s}}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(1200px 600px at 15% -10%, #6aa8e829, transparent 60%), radial-gradient(900px 500px at 110% 10%, #a9dcff14, transparent 60%), var(--mem-bg);color:var(--mem-ink);font:400 var(--mem-text-md)/1.5 var(--mem-font);-webkit-font-smoothing:antialiased;background-attachment:fixed}button,input{font:inherit;color:inherit}h1,h2{font-family:var(--mem-font-display);letter-spacing:-.01em;margin:0}h1{font-size:clamp(24px,4.6vw,34px);font-weight:650;line-height:1.15}h2{font-size:var(--mem-text-lg);margin-bottom:var(--mem-space-3);font-weight:600}p{margin:0}.dim{color:var(--mem-ink-dim)}.small{font-size:var(--mem-text-sm)}.center{text-align:center;justify-content:center}.err{color:var(--mem-bad);font-size:var(--mem-text-sm);min-height:1.2em}.err:empty{display:none}.eyebrow{color:var(--mem-accent);font-size:var(--mem-text-sm);letter-spacing:.02em;font-weight:600}.page{min-height:100vh;min-height:100dvh;padding:0 16px calc(24px + var(--mem-safe-bottom));flex-direction:column;display:flex}.top{justify-content:space-between;align-items:center;gap:var(--mem-space-3);padding:calc(14px + var(--mem-safe-top)) 0 14px;width:100%;max-width:960px;margin:0 auto;display:flex}.brand{color:var(--mem-ink);font:650 var(--mem-text-lg) var(--mem-font-display);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.who{align-items:center;gap:var(--mem-space-2);min-width:0;display:flex}.who .dim{font-size:var(--mem-text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.narrow{gap:var(--mem-space-4);flex-direction:column;width:100%;max-width:560px;margin:0 auto;display:flex}.hero{padding:var(--mem-space-6) 0 var(--mem-space-3);gap:var(--mem-space-3);flex-direction:column;display:flex}.hero h1{font-size:clamp(30px,6vw,44px)}.assure{color:var(--mem-ink-faint);align-items:flex-start;gap:8px;display:flex}.assure svg{flex:none;margin-top:2px}.card{background:var(--mem-surface);border:1px solid var(--mem-line);border-radius:var(--mem-radius-md);padding:var(--mem-space-5);gap:var(--mem-space-3);box-shadow:var(--mem-shadow-card);flex-direction:column;display:flex}label{flex-direction:column;gap:6px;display:flex}label>span{font-size:var(--mem-text-sm);color:var(--mem-ink-dim)}input{border-radius:var(--mem-radius-sm);border:1px solid var(--mem-line-strong);width:100%;transition:border-color var(--mem-duration-fast);background:#00000040;outline:none;padding:12px 14px}input:focus{border-color:var(--mem-accent-2)}input:disabled{opacity:.6}.btn{border-radius:var(--mem-radius-pill);border:1px solid var(--mem-line-strong);background:var(--mem-surface-hover);font-weight:600;font-size:var(--mem-text-sm);cursor:pointer;transition:transform var(--mem-duration-fast) var(--mem-ease), background var(--mem-duration-fast), opacity var(--mem-duration-fast);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:10px 16px;text-decoration:none;display:inline-flex}.btn:hover{background:#ffffff1a}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:linear-gradient(135deg, var(--mem-accent), var(--mem-accent-2));color:var(--mem-on-accent);border-color:#0000}.btn.primary:hover{filter:brightness(1.06)}.btn.ghost{color:var(--mem-ink-dim);background:0 0;border-color:#0000}.btn.ghost:hover{color:var(--mem-ink);background:var(--mem-surface-hover)}.btn.danger{color:var(--mem-bad);background:#ff8a7a29;border-color:#ff8a7a59}.btn.small{font-size:var(--mem-text-xs);padding:6px 12px}.btn.wide{width:100%;font-size:var(--mem-text-md);padding:13px 18px}.btn.big{padding:15px 20px}.link{color:var(--mem-accent);cursor:pointer;font-size:var(--mem-text-sm);background:0 0;border:0;align-self:center;padding:4px;text-decoration:none}.link:hover{text-decoration:underline}.row{gap:var(--mem-space-2);flex-wrap:wrap;align-items:center;display:flex}.row.tight{flex-wrap:nowrap;gap:6px}.made .linkbox{font:500 var(--mem-text-sm) ui-monospace, "Cascadia Mono", Consolas, monospace;border-radius:var(--mem-radius-sm);border:1px dashed var(--mem-line-strong);word-break:break-all;-webkit-user-select:all;user-select:all;background:#0000004d;padding:12px 14px}.invites{margin:0;padding:0;list-style:none}.invite{align-items:center;gap:var(--mem-space-3);border-top:1px solid var(--mem-line);padding:12px 0;display:flex}.invite:first-child{border-top:0;padding-top:0}.invite .grow{flex:1;min-width:0}.invite .title{align-items:center;gap:8px;font-weight:600;display:flex;overflow:hidden}.chip{font-size:var(--mem-text-xs);border-radius:var(--mem-radius-pill);flex:none;padding:2px 8px;font-weight:600}.chip.open{color:var(--mem-accent);background:#a9dcff1f}.chip.live{color:var(--mem-good);background:#8ee6b424}.chip.off{background:var(--mem-surface-hover);color:var(--mem-ink-faint)}@media (max-width:520px){.invite{flex-direction:column;align-items:stretch}.who .dim{display:none}}.stage{flex-direction:column;flex:1;justify-content:center;width:100%;max-width:560px;margin:0 auto;padding-bottom:6vh;display:flex}.prejoin,.gone{text-align:center;align-items:center;gap:var(--mem-space-4);padding:var(--mem-space-6) var(--mem-space-5)}.prejoin .topic{font-size:var(--mem-text-lg);color:var(--mem-ink-dim)}.joinform{gap:var(--mem-space-3);text-align:left;flex-direction:column;width:100%;max-width:360px;display:flex}.prejoin .assure{text-align:left;max-width:360px}.avatar{--level:0;border:1px solid var(--mem-line-strong);width:112px;height:112px;font:600 34px var(--mem-font-display);color:var(--mem-ink);background:linear-gradient(145deg,#1e2a3a,#121822);border-radius:50%;place-items:center;display:grid;position:relative}.avatar.you{background:linear-gradient(145deg,#23334a,#142030)}.avatar.big{width:88px;height:88px;font-size:28px}.avatar:before{content:"";border:2px solid var(--mem-accent);opacity:calc(var(--level) * 1.4);transform:scale(calc(1 + var(--level) * .16));box-shadow:0 0 calc(var(--level) * 40px) #a9dcff73;border-radius:50%;transition:opacity 80ms linear,transform 80ms linear;position:absolute;inset:-6px}.person{align-items:center;gap:var(--mem-space-3);width:140px;transition:opacity var(--mem-duration-slow);flex-direction:column;display:flex}.person.away{opacity:.45}.pname{text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-weight:600;overflow:hidden}.incall{align-items:center;gap:var(--mem-space-5);flex-direction:column;display:flex}.people{justify-content:center;align-items:center;gap:var(--mem-space-2);margin-top:var(--mem-space-4);display:flex}.status{min-height:1.5em;color:var(--mem-ink-dim);font-size:var(--mem-text-lg);text-align:center}.status.clock{color:var(--mem-ink);font-variant-numeric:tabular-nums;font-weight:600;font-size:var(--mem-text-xl)}.controls{gap:var(--mem-space-5);border-radius:var(--mem-radius-pill);margin-top:var(--mem-space-3);background:var(--mem-glass-tint);border:1px solid var(--mem-glass-edge);box-shadow:var(--mem-shadow-float);-webkit-backdrop-filter:blur(var(--mem-glass-blur)) saturate(var(--mem-glass-saturate));padding:14px 22px;display:flex}.round{border:1px solid var(--mem-line-strong);background:var(--mem-surface-hover);cursor:pointer;width:60px;height:60px;transition:transform var(--mem-duration-fast) var(--mem-ease-snap), background var(--mem-duration-fast);border-radius:50%;place-items:center;display:grid}.round:hover{background:#ffffff1f}.round:active{transform:scale(.93)}.round.off{background:var(--mem-ink);color:var(--mem-bg)}.round.hangup{color:#fff;background:#e5484d;border-color:#0000}.round.hangup:hover{background:#f05a5f}@media (max-width:420px){.avatar{width:92px;height:92px;font-size:28px}.person{width:112px}}.quality{font-size:var(--mem-text-sm);margin-top:calc(-1 * var(--mem-space-3));align-items:center;gap:8px;display:inline-flex}.quality .dot{background:currentColor;border-radius:50%;width:8px;height:8px}.quality.good{color:var(--mem-good)}.quality.fair{color:var(--mem-warn)}.quality.poor{color:var(--mem-bad)}.quality .dim{color:var(--mem-ink-faint)}.people{gap:var(--mem-space-4) var(--mem-space-3);flex-wrap:wrap}.people.many .avatar{width:84px;height:84px;font-size:26px}.people.many .person{width:108px}.person{position:relative}.badge{background:var(--mem-bg-raised);border:1px solid var(--mem-line-strong);width:26px;height:26px;color:var(--mem-bad);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:2px;right:2px}.pname{justify-content:center;align-items:center;gap:6px;display:flex}.host-tag{font-size:var(--mem-text-xs);color:var(--mem-accent);border-radius:var(--mem-radius-pill);background:#a9dcff1f;padding:1px 6px;font-weight:600}.tile-menu{border:1px solid var(--mem-line-strong);background:var(--mem-bg-raised);width:30px;height:30px;color:var(--mem-ink-dim);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:absolute;top:0;right:8px}.tile-menu:hover{color:var(--mem-ink)}.menu{z-index:5;border-radius:var(--mem-radius-sm);background:var(--mem-bg-raised);border:1px solid var(--mem-line-strong);min-width:190px;box-shadow:var(--mem-shadow-float);text-align:left;flex-direction:column;gap:6px;padding:10px;display:flex;position:absolute;top:36px;right:-8px}.menu .btn{justify-content:flex-start}.status .count{font-size:var(--mem-text-md);font-weight:400}.notice{font-size:var(--mem-text-sm);color:var(--mem-ink);border-radius:var(--mem-radius-pill);background:#a9dcff1a;border:1px solid #a9dcff40;padding:8px 14px}.host-tools{gap:var(--mem-space-2);flex-wrap:wrap;justify-content:center;display:flex}.host-tools .btn.on{border-color:var(--mem-warn);color:var(--mem-warn)}.locked-note{align-items:center;gap:6px;display:inline-flex}.live-now{color:var(--mem-good);font-size:var(--mem-text-sm);align-items:center;gap:8px;display:inline-flex}.live-now .dot{background:currentColor;border-radius:50%;width:8px;height:8px}select{border-radius:var(--mem-radius-sm);border:1px solid var(--mem-line-strong);width:100%;color:var(--mem-ink);font:inherit;background:#00000040;padding:10px 12px}.pickers{gap:var(--mem-space-3);text-align:left;flex-direction:column;width:100%;display:flex}.miccheck{gap:var(--mem-space-3);text-align:left;flex-direction:column;align-items:stretch;width:100%;max-width:360px;display:flex}.miccheck .btn{align-self:flex-start}.meter{background:var(--mem-surface-hover);border-radius:999px;height:8px;overflow:hidden}.meter .fill{background:linear-gradient(90deg, var(--mem-accent-2), var(--mem-good));height:100%;transition:width 60ms linear}.settings{width:100%;max-width:360px;padding:var(--mem-space-4)}.round.active{background:#ffffff24}.echo-hint{align-items:center;gap:var(--mem-space-3);border-radius:var(--mem-radius-sm);max-width:480px;color:var(--mem-ink);font-size:var(--mem-text-sm);text-align:left;background:#f3c27f1a;border:1px solid #f3c27f4d;padding:10px 14px;display:flex}.row.between{justify-content:space-between;gap:var(--mem-space-4);flex-wrap:nowrap}.notify h2{margin-bottom:4px}@media (pointer:coarse){.kbd{display:none}}.badge.hand{color:var(--mem-warn);inset:2px auto auto 2px}.badge.net{border:2px solid var(--mem-bg-raised);width:12px;height:12px;bottom:6px;left:6px;right:auto}.badge.net.poor{background:var(--mem-bad)}.badge.net.fair{background:var(--mem-warn)}.round{position:relative}.unread{background:var(--mem-accent);min-width:20px;height:20px;color:var(--mem-on-accent);border-radius:999px;place-items:center;padding:0 5px;font-size:11px;font-weight:700;display:grid;position:absolute;top:-4px;right:-4px}.chat{width:100%;max-width:480px;padding:var(--mem-space-4);gap:var(--mem-space-3)}.chat .msgs{text-align:left;flex-direction:column;gap:6px;max-height:220px;display:flex;overflow-y:auto}.chat .msg{font-size:var(--mem-text-sm);overflow-wrap:anywhere}.chat .msg b{color:var(--mem-accent);font-weight:600}.chat .msg.mine b{color:var(--mem-ink-dim)}.chat form input{flex:1;padding:9px 12px}.volume{flex-direction:column;gap:4px;display:flex}.volume input[type=range]{width:100%;accent-color:var(--mem-accent);padding:0}@media (max-width:460px){.controls{gap:10px;padding:10px 14px}.round{width:52px;height:52px}}.in-room{color:var(--mem-good);align-items:center;gap:8px;display:flex}.in-room .dot{background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}label.check{cursor:pointer;flex-direction:row;align-items:flex-start;gap:10px}label.check input{width:18px;height:18px;accent-color:var(--mem-accent);flex:none;margin:2px 0 0}label.check span{color:var(--mem-ink-dim);font-size:var(--mem-text-sm)}label.check b{color:var(--mem-ink);font-weight:600}.knock{align-items:center;gap:var(--mem-space-2);border-radius:var(--mem-radius-sm);width:100%;max-width:480px;font-size:var(--mem-text-sm);background:#a9dcff1a;border:1px solid #a9dcff4d;padding:10px 14px;display:flex}.knock p{text-align:left;flex:1}.avatar.pulse:before{animation:pulse 1.6s var(--mem-ease) infinite}@keyframes pulse{0%,to{opacity:.2;transform:scale(1)}50%{opacity:.8;transform:scale(1.12)}}@media (prefers-reduced-motion:reduce){.avatar.pulse:before{animation:none}}
