@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-normal-7BpKI3vF.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-normal-YHFkNujK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-normal-CFFu7zhK.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-ui:"Plus Jakarta Sans Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Fraunces Variable", "Iowan Old Style", Georgia, serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--bg-0:#06051a;--bg-1:#0c0a28;--bg-2:#141039;--bg-3:#1d1750;--surface-1:#ffffff0b;--surface-2:#ffffff13;--surface-3:#ffffff1c;--surface-solid:#16123e;--surface-solid-2:#1e1850;--border:#ffffff1a;--border-strong:#ffffff2e;--text:#f5f2ff;--text-2:#f5f2ffb8;--text-3:#f5f2ff80;--text-4:#f5f2ff57;--accent:#ff6f9f;--accent-2:#ff9a7b;--accent-3:#ffc07a;--accent-soft:#ff6f9f29;--accent-glow:#ff6f9f73;--accent-grad:linear-gradient(135deg, #ff6f9f 0%, #ff8a86 52%, #ffb877 100%);--on-accent:#fff;--violet:#a594ff;--violet-soft:#a594ff29;--star:#ffe2a6;--success:#3ddc97;--success-soft:#3ddc9729;--danger:#ff5a6e;--danger-soft:#ff5a6e29;--warning:#ffc861;--bubble-mine:var(--accent-grad);--bubble-theirs:#ffffff16;--bubble-theirs-border:#ffffff14;--radius-xs:8px;--radius-sm:12px;--radius-md:16px;--radius-lg:22px;--radius-xl:28px;--radius-pill:999px;--shadow-1:0 1px 2px #00000040, 0 4px 16px #0000002e;--shadow-2:0 12px 40px #0302148c, 0 2px 8px #0000004d;--shadow-glow:0 8px 32px var(--accent-glow);--blur:saturate(160%) blur(22px);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--app-height:100dvh;--titlebar:0px}:root[data-accent=lavender]{--accent:#9d8bff;--accent-2:#b59cff;--accent-3:#d7b8ff;--accent-soft:#9d8bff2e;--accent-glow:#9d8bff73;--accent-grad:linear-gradient(135deg, #8f7dff 0%, #b18cff 55%, #e0a8ff 100%)}:root[data-accent=gold]{--accent:#f4a93b;--accent-2:#ffc561;--accent-3:#ffe08f;--accent-soft:#f4a93b2e;--accent-glow:#f4a93b6b;--accent-grad:linear-gradient(135deg, #f09a3a 0%, #f7b64d 55%, #ffd982 100%);--on-accent:#2a1600}:root[data-accent=aurora]{--accent:#36d1c4;--accent-2:#5b9dff;--accent-3:#9d8bff;--accent-soft:#36d1c429;--accent-glow:#36d1c466;--accent-grad:linear-gradient(135deg, #2cc8c0 0%, #4f9cff 55%, #9a86ff 100%)}:root[data-desktop=mac]{--titlebar:38px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-ui);color:var(--text);background:var(--bg-0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;touch-action:manipulation;font-size:15px;line-height:1.45}.sky{z-index:0;pointer-events:none;background:radial-gradient(1200px 700px at 12% -10%, #7858ff47, transparent 60%), radial-gradient(900px 600px at 105% 15%, #ff69a029, transparent 60%), radial-gradient(1000px 800px at 50% 120%, #4840c84d, transparent 60%), linear-gradient(180deg, var(--bg-1) 0%, var(--bg-0) 100%);position:fixed;inset:0}.sky canvas{width:100%;height:100%;position:absolute;inset:0}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}button:disabled{cursor:default}a{color:var(--accent-3);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus-visible,textarea:focus-visible{outline:none}img{-webkit-user-drag:none}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600}p{margin:0}.display{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "WONK" 1;font-optical-sizing:auto;letter-spacing:-.02em}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.mono{font-family:var(--font-mono)}.grow{flex:1;min-width:0}.row{align-items:center;gap:10px;display:flex}.col{flex-direction:column;gap:10px;display:flex}.center{justify-content:center;align-items:center;display:flex}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.no-select{-webkit-user-select:none;user-select:none}*{scrollbar-width:thin;scrollbar-color:#ffffff24 transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#ffffff1f padding-box padding-box;border:3px solid #0000;border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:#ffffff38}::-webkit-scrollbar-track{background:0 0}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)scale(.985)}}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-ring{0%{opacity:.7;transform:scale(.9)}to{opacity:0;transform:scale(1.9)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes twinkle{0%,to{opacity:.35}50%{opacity:1}}@keyframes shimmer{to{background-position:200% 0}}@keyframes float-up{0%{opacity:0;transform:translate(0)scale(.6)rotate(0)}12%{opacity:1}to{transform:translate(var(--dx,0px), -70vh) scale(var(--s,1.2)) rotate(var(--r,12deg));opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.spinner{border:2px solid #ffffff40;border-top-color:currentColor;border-radius:50%;flex:none;width:18px;height:18px;animation:.8s linear infinite spin}.glass{border:1px solid var(--border);-webkit-backdrop-filter:var(--blur);background:linear-gradient(#ffffff12,#ffffff09)}.card{border-radius:var(--radius-lg);padding:18px}.btn{--h:46px;height:var(--h);border-radius:var(--radius-pill);letter-spacing:.005em;white-space:nowrap;transition:transform .18s var(--ease-out), box-shadow .25s var(--ease-out), background .2s, opacity .2s;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:9px;padding:0 20px;font-size:15px;font-weight:600;display:inline-flex;position:relative}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5}.btn-primary{background:var(--accent-grad);color:var(--on-accent);box-shadow:0 6px 24px var(--accent-glow), inset 0 1px 0 #ffffff59}.btn-primary:hover:not(:disabled){box-shadow:0 10px 34px var(--accent-glow), inset 0 1px 0 #fff6}.btn-secondary{background:var(--surface-2);border:1px solid var(--border);color:var(--text);-webkit-backdrop-filter:var(--blur)}.btn-secondary:hover:not(:disabled){background:var(--surface-3)}.btn-ghost{color:var(--text-2)}.btn-ghost:hover:not(:disabled){color:var(--text);background:var(--surface-1)}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 6px 22px #ff5a6e59}.btn-success{background:var(--success);color:#032417;box-shadow:0 6px 22px #3ddc9759}.btn-sm{--h:36px;padding:0 14px;font-size:13.5px}.btn-lg{--h:54px;padding:0 28px;font-size:16px}.btn-block{width:100%}.icon-btn{--size:40px;width:var(--size);height:var(--size);color:var(--text-2);transition:background .2s, color .2s, transform .18s var(--ease-out);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn:active:not(:disabled){transform:scale(.92)}.icon-btn.solid{background:var(--surface-2);border:1px solid var(--border);color:var(--text)}.icon-btn.accent{background:var(--accent-grad);color:var(--on-accent);box-shadow:0 4px 18px var(--accent-glow)}.icon-btn.sm{--size:32px}.icon-btn.lg{--size:48px}.field{flex-direction:column;gap:7px;display:flex}.field>label,.field-label{color:var(--text-2);padding-left:4px;font-size:13px;font-weight:600}.field-hint{color:var(--text-3);padding-left:4px;font-size:12.5px}.input{border-radius:var(--radius-md);border:1px solid var(--border);width:100%;height:50px;color:var(--text);background:#ffffff0e;padding:0 18px;font-size:16px;transition:border-color .2s,background .2s,box-shadow .2s}.input::placeholder{color:var(--text-4)}.input:focus{border-color:color-mix(in srgb, var(--accent) 70%, transparent);box-shadow:0 0 0 4px var(--accent-soft);background:#ffffff13}.input.code{font-family:var(--font-mono);letter-spacing:.08em;text-align:center;text-transform:uppercase;font-size:19px}.input-error{color:var(--danger);padding-left:4px;font-size:13px}select.input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-3) 50%), linear-gradient(135deg, var(--text-3) 50%, transparent 50%);background-position:calc(100% - 22px) 22px,calc(100% - 16px) 22px;background-repeat:no-repeat;background-size:6px 6px;padding-right:40px}select.input option{background:var(--surface-solid)}.toggle{background:#ffffff24;border-radius:999px;flex:none;width:48px;height:28px;transition:background .25s;position:relative}.toggle:after{content:"";width:22px;height:22px;transition:transform .28s var(--ease-spring);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #0000004d}.toggle[aria-checked=true]{background:var(--accent-grad)}.toggle[aria-checked=true]:after{transform:translate(20px)}.toggle:disabled{opacity:.4}.segmented{border-radius:var(--radius-pill);border:1px solid var(--border);background:#ffffff0f;gap:2px;padding:4px;display:inline-flex}.segmented button{border-radius:var(--radius-pill);height:34px;color:var(--text-2);align-items:center;gap:7px;padding:0 16px;font-size:13.5px;font-weight:600;transition:background .2s,color .2s;display:inline-flex}.segmented button[aria-pressed=true]{color:var(--text);background:#ffffff24;box-shadow:0 1px 6px #00000040}.avatar{--size:40px;width:var(--size);height:var(--size);font-family:var(--font-display);font-weight:600;font-size:calc(var(--size) * .42);color:#fff;-webkit-user-select:none;user-select:none;background:linear-gradient(140deg,#7d6bff,#ff7aa8);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%}.avatar .presence{width:calc(var(--size) * .28);height:calc(var(--size) * .28);background:var(--success);border:2.5px solid var(--bg-1);border-radius:50%;min-width:10px;min-height:10px;position:absolute;bottom:0;right:0;box-shadow:0 0 10px #3ddc97b3}.avatar.glow:before{content:"";background:conic-gradient(from 180deg, var(--accent), var(--violet), var(--accent-3), var(--accent));z-index:-1;opacity:.85;filter:blur(.5px);border-radius:50%;position:absolute;inset:-4px}.overlay{z-index:50;padding:calc(16px + var(--safe-top)) 16px calc(16px + var(--safe-bottom));-webkit-backdrop-filter:blur(8px);background:#0403129e;justify-content:center;align-items:center;animation:.2s ease-out fade-in;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius-xl);border:1px solid var(--border-strong);width:min(520px,100%);max-height:100%;box-shadow:var(--shadow-2);animation:rise-in .35s var(--ease-out);background:linear-gradient(#221c56eb,#120e34f0);flex-direction:column;display:flex;position:relative;overflow:hidden}.modal.wide{width:min(920px,100%)}.modal-head{align-items:center;gap:12px;padding:20px 20px 8px 24px;display:flex}.modal-head h2{flex:1;font-size:19px}.modal-body{flex-direction:column;gap:16px;padding:12px 24px 24px;display:flex;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:14px 20px 20px;display:flex}@media (max-width:640px){.overlay.sheet-mode{align-items:flex-end;padding:0}.overlay.sheet-mode .modal{width:100%;max-height:calc(100% - 24px - var(--safe-top));padding-bottom:var(--safe-bottom);animation:sheet-up .4s var(--ease-out);border-radius:26px 26px 0 0}.overlay.sheet-mode .modal:before{content:"";background:#ffffff38;border-radius:3px;width:40px;height:5px;margin:8px auto 0;display:block}}@keyframes sheet-up{0%{transform:translateY(100%)}}.toasts{z-index:100;top:calc(76px + var(--safe-top) + var(--titlebar) * .4);pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:min(440px,100% - 24px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;border-radius:var(--radius-pill);border:1px solid var(--border-strong);box-shadow:var(--shadow-2);-webkit-backdrop-filter:var(--blur);animation:rise-in .3s var(--ease-out);background:#1e1850eb;align-items:center;gap:10px;padding:11px 16px;font-size:14px;font-weight:500;display:flex}.toast.error{border-color:#ff5a6e80}.toast.success{border-color:#3ddc9773}.list{border-radius:var(--radius-md);background:var(--surface-1);border:1px solid var(--border);flex-direction:column;display:flex;overflow:hidden}.list-row{text-align:left;align-items:center;gap:14px;width:100%;min-height:58px;padding:10px 16px;display:flex}.list-row+.list-row{border-top:1px solid var(--border)}button.list-row:hover{background:var(--surface-1)}.list-row .row-icon{background:var(--surface-2);width:34px;height:34px;color:var(--text-2);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.list-row .row-title{font-size:14.5px;font-weight:600}.list-row .row-sub{color:var(--text-3);font-size:12.5px}.badge{border-radius:var(--radius-pill);letter-spacing:.02em;background:var(--surface-2);height:22px;color:var(--text-2);white-space:nowrap;align-items:center;gap:5px;padding:0 9px;font-size:11.5px;font-weight:700;display:inline-flex}.badge.ok{background:var(--success-soft);color:var(--success)}.badge.warn{color:var(--warning);background:#ffc86124}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.accent{background:var(--accent-soft);color:var(--accent-3)}.divider{background:var(--border);border:none;height:1px;margin:4px 0}.callout{border-radius:var(--radius-md);background:var(--violet-soft);color:var(--text-2);border:1px solid #a594ff38;gap:12px;padding:14px 16px;font-size:13.5px;line-height:1.5;display:flex}.callout.warn{background:#ffc8611a;border-color:#ffc86147}.callout.danger{background:var(--danger-soft);border-color:#ff5a6e4d}.callout svg{flex:none;margin-top:1px}.kbd{font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:2px 6px;font-size:12px}.code-display{font-family:var(--font-mono);letter-spacing:.06em;flex-wrap:wrap;justify-content:center;gap:8px;font-size:22px;font-weight:600;display:flex}.code-display span{border:1px solid var(--border);background:#ffffff12;border-radius:12px;padding:10px 12px}.qr{background:#fff;border-radius:20px;width:188px;height:188px;padding:12px;box-shadow:0 10px 40px #00000059}.qr img,.qr canvas{width:100%;height:100%;image-rendering:pixelated}.tabs{border-bottom:1px solid var(--border);gap:4px;display:flex}.tabs button{height:42px;color:var(--text-3);align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex;position:relative}.tabs button[aria-selected=true]{color:var(--text)}.tabs button[aria-selected=true]:after{content:"";background:var(--accent-grad);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:10px;right:10px}.menu{z-index:60;border:1px solid var(--border-strong);min-width:200px;box-shadow:var(--shadow-2);-webkit-backdrop-filter:var(--blur);animation:pop-menu .18s var(--ease-out);background:#1c174af7;border-radius:16px;padding:6px;position:fixed}@keyframes pop-menu{0%{opacity:0;transform:scale(.95)}}.menu-item{width:100%;height:40px;color:var(--text);text-align:left;border-radius:10px;align-items:center;gap:11px;padding:0 12px;font-size:14px;font-weight:500;display:flex}.menu-item:hover{background:var(--surface-2)}.menu-item.danger{color:var(--danger)}.menu-item svg{color:var(--text-3)}.menu-item.danger svg{color:var(--danger)}.splash{z-index:2;justify-content:center;align-items:center;animation:.4s ease-out fade-in;display:flex;position:fixed;inset:0}.logo .logo-heart{transform-box:fill-box;transform-origin:50%}.logo.animated .logo-heart{animation:2.4s ease-in-out infinite heartbeat}@keyframes heartbeat{0%,to{scale:1}14%{scale:1.07}28%{scale:1}42%{scale:1.05}56%{scale:1}}.onboarding{z-index:1;height:var(--app-height);padding:calc(28px + var(--safe-top) + var(--titlebar)) 16px calc(24px + var(--safe-bottom));flex-direction:column;align-items:center;display:flex;position:relative;overflow-y:auto}.onb-card{width:min(460px,100%);animation:rise-in .6s var(--ease-out);flex-direction:column;gap:18px;margin:auto 0;display:flex}.onb-back{align-self:flex-start;margin-left:-8px}.welcome{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.welcome-logo{filter:drop-shadow(0 18px 50px #ff6f9f59);margin-bottom:4px}.welcome-title{background:linear-gradient(#fff 30%,#ffd3e5 100%);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(44px,11vw,60px);font-weight:600;line-height:1}.welcome-tag{font-family:var(--font-display);color:var(--text-2);margin-bottom:16px;font-size:19px;font-style:italic}.welcome-actions{flex-direction:column;gap:10px;width:100%;margin-top:8px;display:flex}.server-field{text-align:left;width:100%;margin:4px 0}.server-field.compact .field>label{font-size:12px}.input-wrap{align-items:center;display:flex;position:relative}.input-wrap .spinner{position:absolute;right:16px}.onb-form{flex-direction:column;gap:16px;display:flex}.onb-head{flex-direction:column;gap:8px;margin-bottom:4px;display:flex}.onb-head h2,.center-col h2{font-size:30px;font-weight:600;line-height:1.1}.onb-head p{font-size:14.5px;line-height:1.55}.center-col{flex-direction:column;align-items:center;gap:16px;display:flex}.onb-foot{color:var(--text-3);text-align:center;align-items:center;gap:7px;max-width:420px;margin-top:28px;font-size:12.5px;display:flex}.install-hint{text-align:left;border-radius:var(--radius-md);background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);color:var(--text-2);gap:12px;padding:14px 16px;font-size:13.5px;line-height:1.5;display:flex}.install-hint strong{color:var(--text);margin-bottom:2px;display:block}.inline-icon{vertical-align:-2px;display:inline}.avatar-picker{border-radius:50%;position:relative}.avatar-picker-badge{background:var(--accent-grad);width:32px;height:32px;color:var(--on-accent);border:3px solid var(--bg-1);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:0;right:0}.waiting-orbit{filter:drop-shadow(0 12px 40px #a594ff66);margin:10px 0}.small{font-size:12.5px}.wrap{flex-wrap:wrap}.gap-lg{gap:18px}.section-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);padding-left:4px;font-size:11.5px;font-weight:700}.settings-modal .modal-body{flex:1;min-height:0;padding:0;overflow:hidden}.settings-modal{height:min(720px,100%)}.settings{height:100%;min-height:0;display:flex}.settings-nav{flex-direction:column;flex:none;gap:2px;width:200px;padding:8px 10px 20px 16px;display:flex;overflow-y:auto}.settings-nav button{height:40px;color:var(--text-2);text-align:left;border-radius:12px;align-items:center;gap:11px;padding:0 12px;font-size:14px;font-weight:600;display:flex}.settings-nav button:hover{background:var(--surface-1);color:var(--text)}.settings-nav button[aria-current=true]{background:var(--surface-3);color:var(--text)}.settings-nav button[aria-current=true] svg{color:var(--accent)}.settings-body{flex:1;min-width:0;padding:8px 24px 28px 12px;overflow-y:auto}@media (max-width:720px){.settings{flex-direction:column}.settings-nav{scrollbar-width:none;flex-direction:row;gap:6px;width:100%;padding:4px 16px 10px;overflow-x:auto}.settings-nav::-webkit-scrollbar{display:none}.settings-nav button{background:var(--surface-1);border:1px solid var(--border);border-radius:999px;flex:none;height:36px}.settings-body{padding:10px 18px 28px}}.profile-hero,.us-hero,.about-hero{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:10px 0 6px;display:flex}.us-hero .days-num{background:var(--accent-grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:64px;line-height:1}.about-hero .display{font-size:32px}.safety{border-radius:var(--radius-lg);background:var(--surface-1);border:1px solid var(--border);flex-direction:column;gap:14px;padding:18px;display:flex}.safety-emoji{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.safety-emoji span{text-align:center;background:#ffffff0d;border-radius:14px;padding:8px 0;font-size:34px}.safety-digits{letter-spacing:.06em;color:var(--text-2);text-align:center;grid-template-columns:repeat(4,1fr);gap:6px 10px;font-size:15px;display:grid}.badge.big{align-self:flex-start;height:32px;padding:0 14px;font-size:13px}.dot-online{background:var(--success);border-radius:50%;width:9px;height:9px;box-shadow:0 0 10px #3ddc97cc}.accent-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.accent-swatch{border:1px solid var(--border);background:var(--surface-1);color:var(--text-2);border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:12px 6px;font-size:13px;font-weight:600;display:flex}.accent-swatch span{border-radius:50%;width:36px;height:36px;box-shadow:0 4px 14px #0000004d}.accent-swatch.on{border-color:var(--accent);color:var(--text);box-shadow:0 0 0 3px var(--accent-soft)}.cam-preview{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.cam-preview video{aspect-ratio:16/9;object-fit:cover;background:#000;border-radius:16px;width:100%;max-width:360px}.link-req{align-items:center;gap:14px;display:flex}.row-icon.big{background:var(--surface-2);border-radius:16px;flex:none;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.share-modal .modal-body{gap:14px}.share-tabs-row{gap:10px}.share-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;max-height:340px;margin:-4px;padding:4px;display:grid;overflow-y:auto}.share-empty{grid-column:1/-1;justify-content:center;align-items:center;gap:10px;min-height:140px;display:flex}.share-tile{border:1.5px solid var(--border);background:var(--surface-1);text-align:left;transition:border-color .2s, transform .2s var(--ease-out), background .2s;border-radius:16px;flex-direction:column;gap:8px;padding:8px;display:flex}.share-tile:hover{background:var(--surface-2)}.share-tile.selected{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);background:var(--surface-2)}.share-thumb{aspect-ratio:16/10;color:var(--text-3);background:#00000059;border-radius:10px;justify-content:center;align-items:center;display:flex;overflow:hidden}.share-thumb img{object-fit:contain;width:100%;height:100%}.share-name{align-items:center;gap:7px;min-width:0;padding:0 4px 2px;font-size:13px;font-weight:600;display:flex}.share-name img{flex:none;width:16px;height:16px}.share-name span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.share-options{border-radius:var(--radius-md);background:var(--surface-1);border:1px solid var(--border);flex-direction:column;display:flex;overflow:hidden}.share-options>p{padding:10px 16px 12px}.share-option{cursor:pointer;align-items:center;gap:14px;padding:12px 16px;display:flex}.share-option+.share-option{border-top:1px solid var(--border)}.share-option.dim{opacity:.55}.share-option .row-icon{background:var(--surface-2);width:34px;height:34px;color:var(--text-2);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.row-title{font-size:14.5px;font-weight:600;display:block}.row-sub{color:var(--text-3);font-size:12.5px;line-height:1.4;display:block}.action-sheet .modal-body{gap:4px;padding:14px 14px 18px}.menu-layer{z-index:60;position:fixed;inset:0}.react-bar{background:#ffffff0f;border-radius:999px;justify-content:space-between;gap:2px;margin-bottom:4px;padding:4px;display:flex}.react-bar button{width:38px;height:38px;transition:transform .15s var(--ease-spring);border-radius:50%;font-size:22px}.react-bar button:hover{transform:scale(1.2)}.react-bar button.on{background:var(--accent-soft)}.check-code-box{border-radius:var(--radius-md);background:var(--surface-1);border:1px solid var(--border);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:14px;display:flex}.check-code{letter-spacing:.12em;color:var(--accent-3);font-size:30px;font-weight:700}.drag{-webkit-app-region:drag}.no-drag,.drag button,.drag input,.drag a{-webkit-app-region:no-drag}.shell{z-index:1;height:var(--app-height);display:flex;position:relative;overflow:hidden}.side{border-right:1px solid var(--border);-webkit-backdrop-filter:blur(24px);background:linear-gradient(#140f3c8c,#0a082273);flex-direction:column;flex:none;width:330px;display:flex}.side-brand{height:calc(56px + var(--titlebar) * .5);padding-top:calc(var(--titlebar) * .5);color:var(--text-2);flex:none;justify-content:center;align-items:center;font-size:18px;font-weight:600;display:flex}:root[data-desktop=mac] .side-brand{justify-content:flex-end;padding-right:22px}.side-scroll{flex:1;padding:4px 18px 18px;overflow-y:auto}.me-chip{text-align:left;background:var(--surface-1);border:1px solid var(--border);border-radius:18px;align-items:center;gap:11px;margin:0 12px 12px;padding:10px 12px;display:flex}.me-chip:hover{background:var(--surface-2)}.me-chip b{font-size:14px;display:block}.me-chip small{color:var(--text-3);font-size:12px;display:block}.me-chip small.conn-online:before{content:"";background:var(--success);vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.us-panel{flex-direction:column;gap:14px;display:flex}.constellation{justify-content:space-between;align-items:flex-start;padding:16px 8px 4px;display:flex;position:relative}.constellation-line{opacity:.9;width:80%;height:50px;position:absolute;top:22px;left:10%;right:10%}.constellation-person{text-align:center;flex-direction:column;align-items:center;gap:8px;width:100px;font-size:14px;font-weight:600;display:flex;position:relative}.constellation-person span:last-child{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.constellation-heart{margin-top:20px;font-size:20px;animation:2.6s ease-in-out infinite breathe;position:relative}.days-card{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 18%, transparent), #a594ff1a);border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);text-align:center;border-radius:20px;flex-direction:column;align-items:center;gap:2px;padding:16px;display:flex}.days-card .days-num{background:var(--accent-grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:44px;font-weight:600;line-height:1.05}.days-card .days-label{font-size:14px;font-weight:600}.days-card .days-since{font-size:12px}.days-card.empty{color:var(--text-2);flex-direction:row;justify-content:center;gap:10px;font-size:14px;font-weight:600}.mood-card{background:var(--surface-1);border:1px solid var(--border);border-radius:18px;padding:12px 16px;font-size:12.5px}.mood-card p{font-family:var(--font-display);color:var(--text);margin-top:2px;font-size:17px;font-style:italic}.quick-actions{grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:8px;display:grid}.quick-actions button{background:var(--surface-1);border:1px solid var(--border);color:var(--text-2);border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:12px 4px 10px;font-size:12px;font-weight:600;transition:background .2s,transform .15s;display:flex}.quick-actions button:hover{background:var(--surface-2);color:var(--text)}.quick-actions button:active{transform:scale(.95)}.quick-actions button svg{color:var(--accent)}.e2ee-card{background:var(--success-soft);text-align:left;color:var(--success);border:1px solid #3ddc9738;border-radius:16px;align-items:center;gap:12px;padding:12px 14px;display:flex}.e2ee-card.warn{color:var(--warning);background:#ffc86114;border-color:#ffc86140}.e2ee-card b{color:var(--text);font-size:13.5px;display:block}.e2ee-card small{color:var(--text-3);font-size:12px;display:block}.media-grid{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px;display:grid}.media-tile{aspect-ratio:1;background-position:50%;background-size:cover;background-color:var(--surface-2);border-radius:12px}.chat{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.chat-header{padding:calc(10px + var(--safe-top)) max(14px, var(--safe-right)) 10px max(12px, var(--safe-left));border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(22px);z-index:3;background:linear-gradient(#0e0b2cbf,#0e0b2c73);align-items:center;gap:8px;min-height:64px;display:flex}@media (max-width:900px){:root[data-desktop=mac] .chat-header{padding-top:12px;padding-left:84px}}:root[data-desktop=mac] .chat-header{min-height:calc(56px + var(--titlebar) * .4)}.header-person{text-align:left;border-radius:16px;flex:1;align-items:center;gap:12px;min-width:0;padding:4px 8px 4px 4px;display:flex}.header-person:hover{background:var(--surface-1)}.header-text{flex-direction:column;min-width:0;display:flex}.header-name{white-space:nowrap;text-overflow:ellipsis;font-size:18px;font-weight:600;overflow:hidden}.header-status{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.header-status.online{color:var(--success)}.header-status.typing{color:var(--accent-3);font-style:italic}.header-actions{align-items:center;gap:2px;display:flex}.header-actions .icon-btn{--size:42px}.love-btn{color:var(--accent)!important}.love-btn:active:not(:disabled) svg{animation:pop-in .4s var(--ease-spring)}.conn-chip{height:28px;color:var(--warning);background:#ffc8611f;border-radius:999px;align-items:center;gap:6px;margin-right:6px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}@media (max-width:480px){.conn-chip span{display:none}.header-actions .icon-btn{--size:38px}}.messages{overscroll-behavior:contain;flex:1;min-height:0;position:relative;overflow:hidden auto}.messages-inner{min-height:100%;padding:16px max(clamp(12px, 4vw, 56px), var(--safe-right)) 10px max(clamp(12px, 4vw, 56px), var(--safe-left));flex-direction:column;display:flex}.messages-inner:not(.center-col)>:first-child{margin-top:auto}.messages-inner.center-col{justify-content:center}.load-more{text-align:center;padding:8px;font-size:12px}.day-sep,.unread-sep,.event-row{justify-content:center;margin:16px 0 8px;display:flex}.day-sep span{color:var(--text-2);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-transform:capitalize;background:#141039b3;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600}.unread-sep{position:relative}.unread-sep:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:.6;height:1px;position:absolute;top:50%;left:0;right:0}.unread-sep span{color:var(--accent-3);background:var(--bg-1);border-radius:999px;padding:3px 12px;font-size:11.5px;font-weight:700;position:relative}.event-pill{background:var(--surface-1);border:1px solid var(--border);color:var(--text-2);border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:13px;font-weight:500;display:inline-flex}.event-pill.missed{color:var(--danger);border-color:#ff5a6e4d}.msg-row{animation:rise-in .28s var(--ease-out);align-items:flex-end;gap:6px;margin-top:2px;display:flex;position:relative}.msg-row.first{margin-top:10px}.msg-row.mine{flex-direction:row-reverse}.msg-row.has-reactions{margin-bottom:14px}.bubble{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;-webkit-user-select:text;user-select:text;border-radius:20px;max-width:min(580px,78%);padding:8px 13px;font-size:15.5px;line-height:1.42;position:relative}@media (max-width:640px){.bubble{max-width:84%}}.mine .bubble{background:var(--bubble-mine);color:var(--on-accent);box-shadow:0 4px 16px color-mix(in srgb, var(--accent) 22%, transparent);border-top-right-radius:7px;border-bottom-right-radius:7px}.mine.first .bubble{border-top-right-radius:20px}.mine.last .bubble{border-bottom-right-radius:6px}.theirs .bubble{background:var(--bubble-theirs);border:1px solid var(--bubble-theirs-border);-webkit-backdrop-filter:blur(14px);border-top-left-radius:7px;border-bottom-left-radius:7px}.theirs.first .bubble{border-top-left-radius:20px}.theirs.last .bubble{border-bottom-left-radius:6px}.mine .bubble a{color:inherit;text-decoration:underline}.bubble .meta-spacer{width:58px;height:1px;display:inline-block}.mine .bubble .meta-spacer{width:74px}.bubble .meta{opacity:.72;white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:3px;font-size:11px;line-height:1;display:inline-flex;position:absolute;bottom:5px;right:11px}.bubble .meta .edited{margin-right:3px;font-style:italic}.bubble .meta .read-tick{color:#fff;filter:drop-shadow(0 0 3px #fffc)}.theirs .bubble .meta{color:var(--text-3);opacity:1}.bubble.failed{opacity:.7}.retry-btn{background:var(--danger-soft);width:28px;height:28px;color:var(--danger);border-radius:50%;justify-content:center;align-self:center;align-items:center;display:flex}.bubble.emoji-only{-webkit-backdrop-filter:none;backdrop-filter:none;padding:0 2px 18px;font-size:48px;line-height:1.1;box-shadow:none!important;background:0 0!important;border:none!important}.bubble.emoji-only.e2{font-size:40px}.bubble.emoji-only.e3{font-size:34px}.bubble.emoji-only .meta{color:var(--text-3);bottom:0;right:2px}.bubble.media{padding:4px}.bubble.media .meta{color:#fff;opacity:1;background:#00000073;border-radius:999px;padding:3px 7px;bottom:10px;right:12px}.bubble.media .meta-spacer{display:none}.bubble .caption{padding:6px 8px 2px}.deleted-text{opacity:.7;font-style:italic}.reply-quote{text-align:left;background:#00000024;border-left:3px solid;border-radius:12px;flex-direction:column;width:100%;min-width:140px;margin:2px 0 6px;padding:6px 10px;font-size:13px;display:flex}.theirs .reply-quote{border-left-color:var(--accent);background:#ffffff0f}.reply-quote b{font-size:12.5px}.reply-quote span{opacity:.85;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.reactions{background:var(--surface-solid-2);border:1px solid var(--border-strong);box-shadow:var(--shadow-1);animation:pop-in .35s var(--ease-spring);border-radius:999px;align-items:center;gap:2px;padding:2px 7px;font-size:14px;line-height:1.4;display:inline-flex;position:absolute;bottom:-14px}.mine .reactions,.theirs .reactions{left:12px}.reactions small{color:var(--text-2);margin-left:2px;font-size:11px}.msg-actions{opacity:0;align-self:center;gap:0;transition:opacity .15s;display:flex}.msg-row:hover .msg-actions{opacity:1}.love-row{margin:14px 0;justify-content:center!important}.love-bubble{flex-direction:column;align-items:center;gap:4px;display:flex}.love-emoji{filter:drop-shadow(0 8px 24px var(--accent-glow));font-size:54px;line-height:1;animation:2.4s ease-in-out infinite breathe}.love-text{color:var(--text-3);font-size:12.5px}.typing-bubble{gap:5px;display:inline-flex;padding:14px 16px!important}.typing-bubble span{background:var(--text-2);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite typing}.typing-bubble span:nth-child(2){animation-delay:.15s}.typing-bubble span:nth-child(3){animation-delay:.3s}@keyframes typing{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.scroll-down{float:right;border:1px solid var(--border-strong);width:44px;height:44px;box-shadow:var(--shadow-2);color:var(--text);z-index:2;animation:pop-in .3s var(--ease-spring);background:#221c56eb;border-radius:50%;justify-content:center;align-items:center;margin-right:18px;display:flex;position:sticky;bottom:14px}.scroll-badge{background:var(--accent-grad);border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:11px;font-weight:700;display:flex;position:absolute;top:-6px;right:-4px}.empty-chat{text-align:center;flex-direction:column;align-items:center;gap:8px;margin:auto;padding:40px 20px;display:flex}.empty-chat .display{font-size:26px}.empty-stars{letter-spacing:.5em;color:var(--star);font-size:22px;animation:3s ease-in-out infinite twinkle}.media-box{background:#00000040;border-radius:16px;max-width:100%;display:block;position:relative;overflow:hidden}.media-thumb,.media-full{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.media-thumb{filter:blur(14px);transform:scale(1.1)}video.media-full{object-fit:contain;background:#000;position:relative}.media-overlay{color:#fff;background:#0000004d;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.play-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000080;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.media-caption-chip{color:#fff;background:#00000080;border-radius:999px;padding:3px 8px;font-size:11.5px;position:absolute;bottom:10px;left:10px}.voice{align-items:center;gap:10px;min-width:230px;padding:2px 0 14px;display:flex}.voice-play{width:40px;height:40px;color:inherit;background:#ffffff38;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.theirs .voice-play{background:var(--accent-grad);color:var(--on-accent)}.voice-wave{cursor:pointer;flex:1;align-items:center;gap:2px;height:32px;display:flex}.voice-wave span{opacity:.35;background:currentColor;border-radius:2px;flex:1;min-width:2px}.voice-wave span.on{opacity:1}.voice-rate{opacity:.8;color:inherit;font-size:11px;position:absolute;bottom:6px;left:64px}.voice-bubble{min-width:260px}.file-att{text-align:left;min-width:220px;color:inherit;align-items:center;gap:12px;padding:6px 4px 14px;display:flex}.file-icon{background:#ffffff2e;border-radius:12px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.file-name{text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-size:14px;font-weight:600;display:block;overflow:hidden}.file-size{opacity:.75;font-size:12px;display:block}.audio-att{max-width:280px;margin-bottom:14px}.progress-ring{display:block}.composer{padding:8px max(clamp(10px, 3vw, 48px), var(--safe-right)) calc(10px + var(--safe-bottom)) max(clamp(10px, 3vw, 48px), var(--safe-left));z-index:3;position:relative}.composer-box{border:1px solid var(--border-strong);-webkit-backdrop-filter:blur(22px);background:#181344b8;border-radius:27px;align-items:flex-end;gap:4px;padding:5px;display:flex;box-shadow:0 10px 30px #00000040}.composer-box:focus-within{border-color:color-mix(in srgb, var(--accent) 45%, var(--border-strong))}.composer textarea{resize:none;min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;max-height:180px;padding:9px 6px;font-size:16px;line-height:1.4}.composer textarea::placeholder{color:var(--text-4)}.composer-pop{position:relative}.send-btn{animation:pop-in .25s var(--ease-spring)}.composer-banner{border:1px solid var(--border);border-left:3px solid var(--accent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);animation:rise-in .2s var(--ease-out);background:#181344b8;border-radius:16px;align-items:center;gap:10px;margin:0 8px 6px;padding:8px 8px 8px 14px;font-size:13px;display:flex}.composer-banner b{color:var(--accent-3);font-size:12.5px;display:block}.composer-banner span{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.attach-menu{position:absolute;bottom:52px;left:0}.emoji-picker{border:1px solid var(--border-strong);width:min(340px,100vw - 24px);box-shadow:var(--shadow-2);z-index:10;animation:pop-menu .18s var(--ease-out);background:#1c174afa;border-radius:20px;position:absolute;bottom:54px;right:-46px;overflow:hidden}.emoji-tabs{border-bottom:1px solid var(--border);gap:2px;padding:6px;display:flex}.emoji-tabs button{opacity:.6;border-radius:10px;flex:1;height:34px;font-size:18px}.emoji-tabs button[aria-pressed=true]{background:var(--surface-2);opacity:1}.emoji-grid{grid-template-columns:repeat(8,1fr);gap:2px;height:250px;padding:8px;display:grid;overflow-y:auto}.emoji-grid button{height:38px;transition:transform .12s var(--ease-spring);border-radius:10px;font-size:23px}.emoji-grid button:hover{background:var(--surface-2);transform:scale(1.15)}.composer-box.recording{align-items:center;padding:5px 5px 5px 8px}.rec-dot{background:var(--danger);width:10px;height:10px;box-shadow:0 0 12px var(--danger);border-radius:50%;flex:none;animation:1.2s infinite twinkle}.rec-time{min-width:44px;font-size:14px}.rec-level{flex:1;align-items:center;gap:3px;height:28px;display:flex;overflow:hidden}.rec-level span{background:var(--accent-grad);border-radius:2px;flex:1;min-width:3px;transition:height 80ms}.drop-zone{z-index:20;border:2px dashed var(--accent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--font-display);pointer-events:none;background:#0a0822bf;border-radius:28px;justify-content:center;align-items:center;font-size:26px;animation:.15s fade-in;display:flex;position:absolute;inset:12px}.invite-card{text-align:center;width:min(480px,100%);box-shadow:var(--shadow-2);animation:rise-in .5s var(--ease-out);border-radius:30px;flex-direction:column;align-items:center;gap:16px;margin:24px auto;padding:30px 26px;display:flex}.invite-card h2{font-size:28px;line-height:1.15}.invite-card p{font-size:14px;line-height:1.55}.invite-heart{font-size:48px;animation:2.6s ease-in-out infinite breathe}.invite-qr{margin:4px 0}.lightbox{z-index:70;background:#03020cf0;justify-content:center;align-items:center;animation:.2s fade-in;display:flex;position:fixed;inset:0}.lightbox img{max-width:94vw;max-height:88vh;animation:rise-in .3s var(--ease-out);border-radius:12px;box-shadow:0 20px 80px #0009}.lightbox-bar{top:calc(12px + var(--safe-top) + var(--titlebar));gap:6px;display:flex;position:absolute;right:14px}.lightbox-bar .icon-btn{color:#fff;background:#ffffff1a}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);color:#fff!important;background:#ffffff1a!important}.lightbox-nav.left{left:16px}.lightbox-nav.right{right:16px}.lightbox-caption{bottom:calc(24px + var(--safe-bottom));text-align:center;background:#0000008c;border-radius:14px;max-width:min(640px,90vw);padding:10px 16px;position:absolute;left:50%;transform:translate(-50%)}.love-layer{z-index:80;pointer-events:none;position:fixed;inset:0;overflow:hidden}.love-layer span{opacity:0;filter:drop-shadow(0 6px 16px #ff6f9f80);font-size:34px;animation:3.2s cubic-bezier(.25,.8,.4,1) forwards float-up;position:absolute;bottom:-40px}.call{z-index:45;-webkit-user-select:none;user-select:none;background:#04030f;animation:.25s ease-out fade-in;position:fixed;inset:0;overflow:hidden}.call-stage{position:absolute;inset:0}.vid{background:#000;width:100%;height:100%;display:block}.call-stage .vid.screen{background:#05040c}.stage-video{background:#000;position:absolute;inset:0;overflow:hidden}.stage-video.screen{background:#05040c}.stage-video .vid{background:0 0;position:absolute;inset:0}.stage-video.screen .stage-main{background:#05040c}.stage-video .stage-blur{object-fit:cover;filter:blur(34px)brightness(.5)saturate(1.25);opacity:0;transition:opacity .35s;transform:scale(1.18)}.stage-video .stage-blur.on{opacity:1}.stage-video .stage-main{transition:object-fit .2s}.fit-hint{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;animation:pop-in .25s var(--ease-spring);background:#0000008c;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.avatar-stage{flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:absolute;inset:0}.call-backdrop{background:radial-gradient(800px 500px at 50% 35%, #7858ff59, transparent 65%), radial-gradient(700px 500px at 50% 80%, #ff69a033, transparent 60%), var(--bg-1);filter:blur(40px)saturate(1.2)brightness(.55);background-position:50%;background-size:cover;position:absolute;inset:-40px}.pulse-avatar{--lvl:0;justify-content:center;align-items:center;display:flex;position:relative}.pulse-avatar .avatar{z-index:1;position:relative;box-shadow:0 20px 60px #00000073}.pulse-avatar .ring{border:2px solid color-mix(in srgb, var(--accent) 70%, transparent);border-radius:50%;animation:2.4s ease-out infinite pulse-ring;position:absolute;inset:0}.pulse-avatar .ring.r2{animation-delay:.8s}.pulse-avatar .ring.r3{animation-delay:1.6s}.pulse-avatar.talking .ring{opacity:calc(.15 + var(--lvl) * .8);transform:scale(calc(1.05 + var(--lvl) * .35));background:radial-gradient(circle, transparent 60%, color-mix(in srgb, var(--accent) 25%, transparent));transition:transform .12s,opacity .12s;animation:none}.pulse-avatar.talking .ring.r2{transform:scale(calc(1.1 + var(--lvl) * .7));opacity:calc(.08 + var(--lvl) * .5)}.remote-chip{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#00000073;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;display:inline-flex;position:relative}.call-top{top:calc(14px + var(--safe-top) + var(--titlebar));pointer-events:none;flex-direction:column;align-items:center;gap:8px;transition:opacity .3s,transform .3s;display:flex;position:absolute;left:0;right:0}.call-title{pointer-events:auto;border-radius:999px;align-items:center;gap:12px;padding:8px 16px;display:flex}.call-title .display{font-size:18px;font-weight:600}.call-status{font-variant-numeric:tabular-nums;color:var(--text-2);font-size:14px}.e2ee-chip{color:var(--success);background:var(--success-soft);border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.quality{align-items:flex-end;gap:2px;height:14px;display:inline-flex}.quality i{background:#ffffff40;border-radius:2px;width:3px}.quality i:first-child{height:5px}.quality i:nth-child(2){height:9px}.quality i:nth-child(3){height:13px}.quality.q-good i.on{background:var(--success)}.quality.q-fair i.on{background:var(--warning)}.quality.q-poor i.on{background:var(--danger)}.call-controls{left:50%;bottom:calc(22px + var(--safe-bottom));box-shadow:var(--shadow-2);transition:opacity .3s, transform .3s var(--ease-out);scrollbar-width:none;border-radius:999px;align-items:center;gap:8px;max-width:calc(100vw - 20px);padding:10px;display:flex;position:absolute;overflow-x:auto;transform:translate(-50%)}.call-controls::-webkit-scrollbar{display:none}.call.controls-hidden .call-controls{opacity:0;pointer-events:none;transform:translate(-50%,30px)}.call.controls-hidden .call-top{opacity:0;transform:translateY(-20px)}.ctrl{color:#fff;width:54px;height:54px;transition:background .2s, transform .15s var(--ease-out), color .2s;background:#ffffff1f;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.ctrl:hover:not(:disabled){background:#fff3}.ctrl:active:not(:disabled){transform:scale(.92)}.ctrl.off{color:#17123f;background:#fff}.ctrl.active{background:var(--accent-grad);color:var(--on-accent)}.ctrl.hang{background:var(--danger);border-radius:28px;width:66px;box-shadow:0 6px 22px #ff5a6e73}.ctrl.hang:hover:not(:disabled){background:#ff3f57}.ctrl.sm{width:36px;height:36px}.ctrl.sm.hang{width:44px}.ctrl:disabled{opacity:.4}@media (max-width:480px){.ctrl{width:48px;height:48px}.ctrl.hang{width:58px}.call-controls{gap:6px;padding:8px}}.ctrl-wrap{position:relative}.volume-pop{bottom:calc(100px + var(--safe-bottom));width:300px;animation:rise-in .2s var(--ease-out);z-index:5;background:#181344f0;border-radius:20px;flex-direction:column;gap:14px;padding:16px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.volume-pop label{flex-direction:column;gap:8px;font-size:13px;font-weight:600;display:flex}.volume-pop label.dim{opacity:.5}.volume-pop label>span{color:var(--text-2);align-items:center;gap:7px;display:flex}.volume-pop input[type=range]{width:100%;accent-color:var(--accent)}.input.sm{border-radius:12px;height:38px;padding:0 12px;font-size:13.5px}.pip{z-index:4;aspect-ratio:4/3;cursor:grab;touch-action:none;background:#111;border:1.5px solid #ffffff2e;border-radius:18px;width:clamp(120px,22vw,240px);position:absolute;overflow:hidden;box-shadow:0 12px 40px #0000008c}.pip:active{cursor:grabbing}.pip.self .vid{object-fit:cover}.pip.remote{aspect-ratio:1;border-radius:50%;width:clamp(110px,16vw,170px)}.pip-inner{width:100%;height:100%;display:block}.pip.screen-only{aspect-ratio:16/10}@media (max-width:640px){.pip{aspect-ratio:3/4;width:110px}.pip.screen-only{aspect-ratio:16/10;width:150px}}.pip-badge{background:#0009;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:absolute;bottom:8px;left:8px}.sharing-banner{top:calc(70px + var(--safe-top) + var(--titlebar));z-index:3;white-space:nowrap;border-radius:999px;align-items:center;gap:12px;max-width:calc(100vw - 24px);padding:8px 8px 8px 16px;font-size:13.5px;font-weight:600;display:flex;position:absolute;left:50%;transform:translate(-50%)}.sharing-banner small{color:var(--text-3);font-size:11.5px;font-weight:500;display:block}.call.incoming{padding:calc(60px + var(--safe-top) + var(--titlebar)) 20px calc(50px + var(--safe-bottom));flex-direction:column;justify-content:space-between;display:flex}.incoming-center{text-align:center;flex-direction:column;align-items:center;gap:12px;margin-top:6vh;display:flex;position:relative}.incoming-center h1{margin-top:26px;font-size:40px;font-weight:600}.e2ee-line{color:var(--success);align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.incoming-actions{justify-content:center;gap:clamp(28px,10vw,64px);display:flex;position:relative}.incoming-action{color:var(--text-2);flex-direction:column;align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.round-btn{color:#fff;width:74px;height:74px;transition:transform .15s var(--ease-out);border-radius:50%;justify-content:center;align-items:center;display:flex}.round-btn:active{transform:scale(.92)}.round-btn.danger{background:var(--danger);box-shadow:0 10px 32px #ff5a6e73}.round-btn.success{background:var(--success);color:#03281a;animation:1.6s ease-in-out infinite breathe;box-shadow:0 10px 32px #3ddc9773}.mini-call{z-index:44;width:210px;box-shadow:var(--shadow-2);touch-action:none;animation:pop-in .35s var(--ease-spring);background:#141039eb;border-radius:22px;position:fixed;overflow:hidden}.mini-stage{aspect-ratio:16/10;background:radial-gradient(200px 120px at 50% 40%,#7858ff59,#0000 70%),#0b0925;justify-content:center;align-items:center;width:100%;display:flex;position:relative}.mini-time{font-variant-numeric:tabular-nums;background:#00000080;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:600;position:absolute;bottom:8px;left:8px}.mini-expand{opacity:.8;position:absolute;top:8px;right:8px}.mini-controls{justify-content:space-around;padding:8px;display:flex}
