:root{--bg-primary:#0a0a0f;--bg-secondary:#12121a;--bg-card:#1a1a2e;--bg-glass:#ffffff0a;--border:#ffffff14;--border-hover:#ffffff26;--gold:#c9a84c;--gold-light:#f0c96e;--gold-dark:#9a7535;--gold-glow:#c9a84c4d;--text-primary:#f0ede8;--text-secondary:#8a8a9a;--text-muted:#4a4a5a;--green:#4ade80;--red:#f87171;--blue:#60a5fa;--radius:16px;--radius-sm:10px;--radius-full:9999px;--shadow:0 8px 32px #0006;--shadow-gold:0 0 40px #c9a84c26}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);overscroll-behavior:none;min-height:100dvh;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}.app{flex-direction:column;min-height:100dvh;display:flex}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:4px}.btn-primary{background:linear-gradient(135deg, var(--gold), var(--gold-dark));color:#0a0a0f;border-radius:var(--radius-full);cursor:pointer;letter-spacing:.3px;border:none;padding:14px 28px;font-size:15px;font-weight:600;transition:all .3s}.btn-primary:hover{box-shadow:0 8px 24px var(--gold-glow);filter:brightness(1.1);transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-glass);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-full);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:14px 28px;font-size:15px;font-weight:500;transition:all .3s}.btn-secondary:hover{border-color:var(--border-hover);background:#ffffff12}.btn-danger{color:var(--red);border-radius:var(--radius-full);cursor:pointer;background:#f8717126;border:1px solid #f871714d;padding:10px 20px;font-size:14px;font-weight:500;transition:all .3s}.btn-danger:hover{background:#f8717140}.error-msg{color:var(--red);border-radius:var(--radius-sm);text-align:center;background:#f871711a;border:1px solid #f871714d;padding:12px 16px;font-size:14px}@keyframes fadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes glow{0%,to{box-shadow:0 0 20px var(--gold-glow)}50%{box-shadow:0 0 40px #c9a84c66}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}@media (width<=768px){.btn-primary,.btn-secondary{text-align:center;width:100%}}.embedded-mode{width:100%;height:100dvh;overflow:hidden}.embedded-mode .home-page{background-color:var(--bg-primary);align-items:center;padding:12px}.embedded-mode .home-container{gap:16px;max-width:100%;min-height:auto;padding:10px}.embedded-mode .logo-icon{width:60px;height:60px;font-size:28px}.embedded-mode .logo-text{font-size:24px}.embedded-mode .logo-tagline{font-size:11px}.embedded-mode .hero-desc{margin-bottom:4px;font-size:13px}.embedded-mode .features,.embedded-mode .footer-brand{display:none!important}.embedded-mode .chat-page{max-width:100%;height:100%}.embedded-mode .chat-header{padding:12px}.embedded-mode .chat-avatar{width:32px;height:32px;font-size:16px}.embedded-mode .chat-title{font-size:13px}.embedded-mode .chat-status{font-size:10px}.embedded-mode .session-code{display:none!important}.embedded-mode .invite-container{flex-direction:column;gap:8px;padding:10px 12px}.embedded-mode .invite-url{font-size:11px}.embedded-mode .invite-hint{font-size:10px}.embedded-mode .qr-section{display:none!important}.embedded-mode .messages-container{padding:12px}.embedded-mode .message-text{font-size:13px}.embedded-mode .chat-input-area{padding:10px 12px}.embedded-mode .message-input{padding:8px 16px;font-size:13px}.embedded-mode .btn-send{width:38px;height:38px}.embedded-mode .btn-danger{padding:6px 12px;font-size:12px}.embedded-mode .ended-container{gap:12px;padding:16px}.embedded-mode .ended-title{font-size:20px}.embedded-mode .ended-desc{font-size:13px}.home-page{min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.bg-orb{filter:blur(80px);pointer-events:none;z-index:0;border-radius:50%;position:fixed}.orb-1{background:radial-gradient(circle,#c9a84c1f,#0000);width:500px;height:500px;animation:6s ease-in-out infinite glow;top:-150px;right:-100px}.orb-2{background:radial-gradient(circle,#60a5fa0f,#0000);width:400px;height:400px;bottom:-100px;left:-100px}.home-container{z-index:1;flex-direction:column;align-items:center;gap:32px;width:100%;min-width:0;max-width:min(440px,100vw - 48px);animation:.6s fadeIn;display:flex;position:relative}.logo-section{flex-direction:column;align-items:center;gap:12px;display:flex}.logo-icon{background:linear-gradient(135deg, var(--gold), var(--gold-dark));width:80px;height:80px;box-shadow:var(--shadow-gold);border-radius:24px;justify-content:center;align-items:center;font-size:36px;animation:4s ease-in-out infinite glow;display:flex}.logo-text{background:linear-gradient(135deg, var(--gold-light), var(--gold));-webkit-text-fill-color:transparent;letter-spacing:-1px;-webkit-background-clip:text;background-clip:text;font-size:36px;font-weight:700}.logo-tagline{color:var(--text-secondary);letter-spacing:2px;text-transform:uppercase;font-size:14px}.hero-desc{text-align:center;color:var(--text-secondary);font-size:16px;line-height:1.6}.hero-desc strong{color:var(--text-primary);font-weight:600}.invite-card{background:var(--bg-card);border:1px solid var(--gold-dark);border-radius:var(--radius);width:100%;box-shadow:var(--shadow-gold);flex-direction:column;align-items:center;gap:12px;padding:24px;display:flex}.invite-icon{font-size:32px}.invite-card p{color:var(--text-secondary);font-size:14px}.invite-code{letter-spacing:4px;color:var(--gold-light);font-family:monospace;font-size:24px;font-weight:700}.action-section{flex-direction:column;align-items:center;gap:16px;width:100%;min-width:0;display:flex}.btn-large{justify-content:center;align-items:center;gap:10px;width:100%;padding:18px 28px;font-size:16px;display:flex}.btn-icon{font-size:20px}.divider{width:100%;color:var(--text-muted);align-items:center;gap:16px;font-size:13px;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.join-form{gap:10px;width:100%;display:flex}.code-input{background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);letter-spacing:0;text-align:center;outline:none;flex:1;min-width:0;padding:14px 16px;font-family:monospace;font-size:12px;font-weight:700;transition:border-color .3s}.code-input:focus{border-color:var(--gold-dark)}.code-input::placeholder{color:var(--text-muted);letter-spacing:0;font-size:12px;font-weight:400}.features{flex-wrap:wrap;justify-content:center;gap:24px;width:100%;display:flex}.feature-item{color:var(--text-muted);align-items:center;gap:6px;font-size:13px;display:flex}.feature-icon{font-size:16px}.footer-brand{color:var(--text-muted);letter-spacing:1px;font-size:12px}@media (width<=768px){.home-page{align-items:flex-start;padding-inline:24px;overflow-y:auto}.home-container{justify-content:center;gap:24px;width:100%;max-width:280px;min-height:calc(100dvh - 48px)}.logo-text{font-size:28px}.features{text-align:center;grid-template-columns:1fr;gap:8px;display:grid}.feature-item{justify-content:center}}.chat-page{background:var(--bg-primary);flex-direction:column;width:100%;max-width:800px;height:100dvh;margin:0 auto;display:flex}.chat-header{padding:max(16px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 16px max(20px, env(safe-area-inset-left));border-bottom:1px solid var(--border);background:var(--bg-secondary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.header-left{align-items:center;gap:12px;display:flex}.chat-avatar{background:linear-gradient(135deg, var(--gold), var(--gold-dark));border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.chat-info{flex-direction:column;gap:2px;display:flex}.chat-title{color:var(--text-primary);font-size:15px;font-weight:600}.chat-status{font-size:12px;font-weight:500}.status-connected{color:var(--green)}.status-waiting{color:var(--text-muted);animation:2s ease-in-out infinite pulse}.header-right{align-items:center;gap:12px;display:flex}.session-code{letter-spacing:3px;color:var(--text-muted);background:var(--bg-glass);border-radius:var(--radius-full);border:1px solid var(--border);padding:4px 10px;font-family:monospace;font-size:13px;font-weight:700}.invite-container{background:linear-gradient(135deg,#c9a84c14,#0000);border-bottom:1px solid #c9a84c33;flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;padding:16px 20px;animation:.4s fadeIn;display:flex}.invite-banner{background:0 0;border-bottom:none;flex:1;padding:0;animation:none}.invite-banner-content{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.invite-label{color:var(--gold);text-transform:uppercase;letter-spacing:1px;margin-bottom:2px;font-size:11px;font-weight:600}.invite-url{color:var(--text-secondary);word-break:break-all;font-size:13px}.invite-secure-code{color:var(--text-muted);word-break:break-all;margin-top:5px;font-family:monospace;font-size:11px}.btn-copy{color:var(--gold);border-radius:var(--radius-full);cursor:pointer;white-space:nowrap;background:#c9a84c26;border:1px solid #c9a84c4d;flex-shrink:0;padding:8px 16px;font-size:13px;font-weight:600;transition:all .3s}.btn-copy:hover{background:#c9a84c40}.btn-copied{color:var(--green);background:#4ade8026;border-color:#4ade804d}.invite-hint{color:var(--text-muted);font-size:12px}.qr-section{flex-direction:column;flex-shrink:0;align-items:center;gap:6px;display:flex}.qr-wrapper{border-radius:var(--radius-sm);cursor:pointer;background:#fff;border:1px solid #c9a84c4d;width:80px;height:80px;padding:4px;transition:all .3s;position:relative;overflow:hidden;box-shadow:0 4px 12px #00000026}.qr-wrapper:hover{border-color:var(--gold);box-shadow:0 4px 16px var(--gold-glow);transform:scale(1.05)}.qr-thumbnail{object-fit:contain;width:100%;height:100%;display:block}.qr-overlay{opacity:0;background:#0a0a0fd9;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.qr-wrapper:hover .qr-overlay{opacity:1}.qr-overlay span{color:var(--gold-light);letter-spacing:.5px;font-size:11px;font-weight:600}.qr-hint{color:var(--text-muted);white-space:nowrap;font-size:10px}.qr-modal{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0a0a0fd9;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.qr-modal-content{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);max-width:min(360px,90vw);box-shadow:var(--shadow);flex-direction:column;align-items:center;gap:16px;padding:32px;animation:.3s cubic-bezier(.34,1.56,.64,1) scaleIn;display:flex;position:relative}.qr-modal-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:24px;line-height:1;transition:color .2s;position:absolute;top:12px;right:16px}.qr-modal-close:hover{color:var(--red)}.qr-modal-title{color:var(--gold-light);margin:0;font-size:18px;font-weight:600}.qr-large{border-radius:var(--radius-sm);border:1px solid var(--border-hover);background:#fff;width:200px;height:200px;padding:8px;box-shadow:0 8px 32px #0000004d}.qr-modal-hint{color:var(--text-secondary);margin:0;font-size:13px}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.messages-container{flex-direction:column;flex:1;gap:8px;padding:20px;display:flex;overflow-y:auto}.empty-chat{color:var(--text-secondary);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;margin:auto;font-size:15px;display:flex}.empty-hint{color:var(--text-muted);font-size:13px}.message{animation:.25s slideIn;display:flex}.message-mine{justify-content:flex-end;animation:.25s slideInRight}.message-theirs{justify-content:flex-start}.message-bubble{border-radius:16px;max-width:70%;padding:10px 14px;position:relative}.message-mine .message-bubble{background:linear-gradient(135deg, var(--gold), var(--gold-dark));color:#0a0a0f;border-bottom-right-radius:4px}.message-theirs .message-bubble{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);border-bottom-left-radius:4px}.message-text{word-break:break-word;font-size:15px;line-height:1.5}.message-time{opacity:.6;text-align:right;margin-top:4px;font-size:10px;display:block}.typing-bubble{padding:14px 16px}.typing-dots{align-items:center;gap:4px;display:flex}.typing-dots span{background:var(--text-muted);border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite pulse}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}.chat-input-area{padding:16px max(20px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));border-top:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0;gap:10px;display:flex}.message-input-wrap{flex:1;min-width:0;position:relative}.message-input{background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--radius-full);width:100%;color:var(--text-primary);outline:none;padding:12px 20px;font-family:Inter,sans-serif;font-size:15px;transition:border-color .3s}.message-input:focus{border-color:var(--gold-dark)}.message-input::placeholder{color:var(--text-muted)}.message-input:disabled{opacity:.5;cursor:not-allowed}.message-counter{color:var(--text-muted);pointer-events:none;font-size:11px;position:absolute;bottom:-18px;right:14px}.message-counter-limit{color:var(--gold)}.message-send-error{max-width:calc(100% - 32px);color:var(--red);text-overflow:ellipsis;white-space:nowrap;font-size:11px;position:absolute;bottom:-20px;left:16px;overflow:hidden}.btn-send{background:linear-gradient(135deg, var(--gold), var(--gold-dark));color:#0a0a0f;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;transition:all .3s;display:flex}.btn-send:hover:not(:disabled){box-shadow:0 4px 16px var(--gold-glow);transform:scale(1.08)}.btn-send:disabled{opacity:.4;cursor:not-allowed}.connection-banner{color:var(--gold-light);text-align:center;background:#c9a84c1a;border-bottom:1px solid #c9a84c33;flex-shrink:0;padding:10px 20px;font-size:13px;font-weight:500;animation:.3s fadeIn}.connection-banner.reconnecting{color:var(--red);background:#f8717126;border-bottom:1px solid #f8717140}.e2ee-status-indicator{color:var(--gold);letter-spacing:.5px;margin-top:8px;font-size:12px;font-weight:500}.e2ee-lock-icon{opacity:.8;-webkit-user-select:none;user-select:none;margin-right:4px;font-size:12px}@media (width<=600px){.chat-page{max-width:none}.chat-header{padding-top:max(12px, env(safe-area-inset-top));padding-bottom:12px}.header-left{min-width:0}.chat-title,.chat-status{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.session-code{display:none}.invite-container{padding:14px max(16px, env(safe-area-inset-right)) 14px max(16px, env(safe-area-inset-left));flex-direction:column;align-items:center;gap:16px}.invite-banner{width:100%;padding:0}.invite-banner-content{flex-direction:column;align-items:stretch}.btn-copy{width:100%}.messages-container{padding:16px max(14px, env(safe-area-inset-right)) 16px max(14px, env(safe-area-inset-left))}.message-bubble{max-width:85%}.chat-input-area{gap:8px;padding-top:12px}.message-input{min-height:48px;padding-inline:16px}}.ended-page{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.ended-container{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:20px;animation:.6s fadeIn;display:flex;position:relative}.ended-icon{font-size:64px;animation:.8s fadeIn}.ended-title{color:var(--text-primary);font-size:28px;font-weight:700}.ended-desc{color:var(--text-secondary);font-size:16px;line-height:1.6}.ended-badge{color:var(--green);border-radius:var(--radius-full);background:#4ade801a;border:1px solid #4ade8040;padding:8px 20px;font-size:13px;font-weight:500}.ended-brand{color:var(--text-muted);letter-spacing:1px;margin-top:8px;font-size:12px}
