:root{--bg-primary: #0a0a0a;--bg-secondary: #1a1a1a;--bg-tertiary: #2a2a2a;--text-primary: #e0e0e0;--text-secondary: #a0a0a0;--accent: #00ff88;--accent-hover: #00cc6a;--border: #333;--error: #ff4444}@font-face{font-family:Noto Sans JP;src:url(/static/fonts/static/NotoSansJP-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:gg sans;src:url(/static/fonts/gg-sans-2/gg%20sans%20Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:gg sans;src:url(/static/fonts/gg-sans-2/gg%20sans%20Medium.ttf) format("truetype");font-weight:500;font-style:normal}@font-face{font-family:gg sans;src:url(/static/fonts/gg-sans-2/gg%20sans%20Semibold.ttf) format("truetype");font-weight:600;font-style:normal}@font-face{font-family:gg sans;src:url(/static/fonts/gg-sans-2/gg%20sans%20Bold.ttf) format("truetype");font-weight:700;font-style:normal}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:gg sans,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow:hidden;position:relative}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:var(--wallpaper-url);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed;opacity:.55;z-index:-1}.sidebar-overlay{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;background:#00000080;z-index:99;opacity:0;transition:opacity .3s ease;-webkit-tap-highlight-color:transparent}.sidebar-overlay.visible{display:block;opacity:1}.server-offline-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000f2;z-index:9999;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px)}.server-offline-content{text-align:center;padding:3rem;max-width:500px}.server-offline-icon{font-size:5rem;margin-bottom:1.5rem;color:red;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}.server-offline-title{font-size:2rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.server-offline-message{font-size:1.125rem;color:var(--text-secondary);margin-bottom:.5rem;line-height:1.6}.server-offline-submessage{font-size:.95rem;color:var(--text-secondary);opacity:.7}header{background:var(--bg-secondary);padding:1rem 2rem;border-bottom:1px solid var(--border)}header h1{font-size:1.5rem;font-weight:300;letter-spacing:1px}.chat-header-info{margin-top:.5rem;display:flex;justify-content:space-between;font-size:.9rem;color:var(--text-secondary)}main{flex:1;display:flex;justify-content:center;align-items:center;padding:2rem}.welcome-container{width:100%;max-width:400px}.welcome-card h2{margin-bottom:1.5rem;font-weight:300;text-align:center}footer{background:var(--bg-secondary);padding:1rem 2rem;text-align:center;border-top:1px solid var(--border);color:var(--text-secondary);font-size:.9rem}input[type=text],input[type=password]{width:100%;padding:.75rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:1rem}input[type=text]:focus,input[type=password]:focus{outline:none;border-color:var(--accent)}button{padding:.75rem 1.5rem;background:var(--accent);color:var(--bg-primary);border:none;border-radius:4px;font-weight:600;cursor:pointer;transition:background .2s}button:hover{background:var(--accent-hover)}.messages-container::-webkit-scrollbar,.sidebar-content::-webkit-scrollbar{width:8px}.messages-container::-webkit-scrollbar-track,.sidebar-content::-webkit-scrollbar-track{background:#1a1a1a4d}.messages-container::-webkit-scrollbar-thumb,.sidebar-content::-webkit-scrollbar-thumb{background:#3339;border-radius:4px}.messages-container::-webkit-scrollbar-thumb:hover,.sidebar-content::-webkit-scrollbar-thumb:hover{background:var(--accent)}.greeter-page{min-height:100vh;display:flex;justify-content:center;align-items:center;background:var(--bg-primary);padding:2rem}.greeter-page:before{opacity:.3}.greeter-container{width:100%;max-width:420px}.greeter-card{padding:2.5rem;background:transparent}.greeter-card h1{font-size:1.8rem;font-weight:300;text-align:center;margin-bottom:.5rem;letter-spacing:1px}.greeter-title{font-family:Noto Sans JP,sans-serif;font-weight:900;font-size:3rem;color:#fff;line-height:1;display:flex;justify-content:center;gap:.2rem;white-space:nowrap;margin:0 0 3rem;animation:glitch-greeter 3s infinite;position:relative}.greeter-title span{text-shadow:0 0 2px #ffffff,0 0 4px rgba(255,255,255,.5);position:relative}.greeter-title:before,.greeter-title:after{content:"\30b7\30ea\30b3\30f3\30c1\30e3\30c3\30c8";position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;text-align:center;letter-spacing:.2rem}.greeter-title:before{animation:glitchTop-greeter 3s infinite;clip-path:polygon(0 0,100% 0,100% 33%,0 33%);text-shadow:-1px 0 #ff0040}.greeter-title:after{animation:glitchBottom-greeter 3s infinite;clip-path:polygon(0 67%,100% 67%,100% 100%,0 100%);text-shadow:1px 0 #00ffff}.greeter-title span:nth-child(2){animation:flicker1-greeter 5s infinite}.greeter-title span:nth-child(4){animation:flicker2-greeter 6s infinite}.greeter-title span:nth-child(6){animation:flicker3-greeter 7s infinite}@keyframes glitch-greeter{0%,90%,to{transform:translate(0)}91%{transform:translate(-2px)}92%{transform:translate(2px)}93%{transform:translate(-1px)}94%{transform:translate(0)}}@keyframes glitchTop-greeter{0%,90%,94%,to{opacity:0;transform:translate(0)}91%{opacity:1;transform:translate(-4px,-1px)}92%{opacity:1;transform:translate(6px,1px)}93%{opacity:1;transform:translate(-3px,-1px)}}@keyframes glitchBottom-greeter{0%,90%,94%,to{opacity:0;transform:translate(0)}91%{opacity:1;transform:translate(5px,2px)}92%{opacity:1;transform:translate(-4px,-1px)}93%{opacity:1;transform:translate(3px,1px)}}@keyframes flicker1-greeter{0%,45%,47%,to{opacity:1}45.5%{opacity:.4}46%{opacity:0}46.5%{opacity:.6}48%{opacity:.2}}@keyframes flicker2-greeter{0%,62%,64%,66%,to{opacity:1}62.3%{opacity:.3}63%{opacity:0}63.5%{opacity:.5}65%{opacity:.1}65.5%{opacity:.7}}@keyframes flicker3-greeter{0%,28%,32%,to{opacity:1}28.4%{opacity:.5}29%{opacity:0}29.5%{opacity:.3}31%{opacity:.8}31.5%{opacity:.2}}.greeter-card h2{font-size:1.5rem;font-weight:800;text-align:center;margin-bottom:1.5rem}.greeter-card p{text-align:center;color:var(--text-secondary);margin-bottom:2rem}.greeter-form{display:flex;flex-direction:column;gap:1rem}.greeter-form input[type=text],.greeter-form input[type=password]{width:100%;padding:.875rem;background:#262525b3;border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:1rem;transition:border-color .2s}.greeter-form input[type=text]:focus,.greeter-form input[type=password]:focus{outline:none;border-color:var(--accent)}.greeter-form button{width:100%;position:relative;padding:.75rem 1.5rem;font-size:.95rem;font-weight:700;text-transform:uppercase;letter-spacing:2px;border:2px solid var(--accent);background:transparent;color:var(--accent);cursor:pointer;overflow:hidden;transition:all .3s ease;clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}.greeter-form button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(0,255,136,.3),transparent);transition:left .5s ease}.greeter-form button:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s ease;z-index:-1}.greeter-form button:hover:before{left:100%}.greeter-form button:hover:after{transform:scaleX(1)}.greeter-form button:hover{color:var(--bg-primary);box-shadow:0 0 10px var(--accent),0 0 20px var(--accent),0 0 30px #00ff8880;animation:glitch-btn .3s ease;background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.1) 0px,transparent 1px,transparent 2px,rgba(0,0,0,.1) 3px)}.greeter-form button:active{transform:scale(.98)}.greeter-button-group{display:flex;flex-direction:column;gap:1.5rem}.greeter-button-group button{position:relative;padding:.75rem 1.5rem;font-size:.95rem;font-weight:700;text-transform:uppercase;letter-spacing:2px;border:2px solid var(--accent);background:transparent;color:var(--accent);cursor:pointer;overflow:hidden;transition:all .3s ease;clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}.greeter-button-group button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(0,255,136,.3),transparent);transition:left .5s ease}.greeter-button-group button:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s ease;z-index:-1}.greeter-button-group button:hover:before{left:100%}.greeter-button-group button:hover:after{transform:scaleX(1)}.greeter-button-group button:hover{color:var(--bg-primary);box-shadow:0 0 10px var(--accent),0 0 20px var(--accent),0 0 30px #00ff8880;animation:glitch-btn .3s ease}.greeter-button-group button:active{transform:scale(.98)}.greeter-button-group .btn-secondary{border-color:var(--text-secondary)!important;color:var(--text-secondary)!important;padding:.65rem 1.25rem!important;font-size:.85rem!important}.greeter-button-group .btn-secondary:before{background:linear-gradient(90deg,transparent,rgba(160,160,160,.3),transparent)!important}.greeter-button-group .btn-secondary:after{background:var(--text-secondary)!important}.greeter-button-group .btn-secondary:hover{color:var(--bg-primary)!important;box-shadow:0 0 10px var(--text-secondary),0 0 20px var(--text-secondary),0 0 30px #a0a0a080!important}@keyframes glitch-btn{0%,to{transform:translate(0)}20%{transform:translate(-2px,2px)}40%{transform:translate(-2px,-2px)}60%{transform:translate(2px,2px)}80%{transform:translate(2px,-2px)}}.greeter-button-group button:hover{background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.1) 0px,transparent 1px,transparent 2px,rgba(0,0,0,.1) 3px)}.greeter-link{margin-top:1.5rem;text-align:center;color:var(--text-secondary);font-size:.95rem}.greeter-link a{color:var(--accent);text-decoration:none;font-weight:500;transition:color .2s}.greeter-link a:hover{color:var(--accent-hover);text-decoration:underline}.greeter-error{color:var(--error);margin-top:1rem;padding:.75rem;background:#ff44441a;border:1px solid rgba(255,68,68,.3);border-radius:4px;font-size:.9rem;display:none}.greeter-success{color:var(--success, #4caf50);margin-top:1rem;padding:.75rem;background:#4caf501a;border:1px solid rgba(76,175,80,.3);border-radius:4px;font-size:.9rem;display:none}.btn-secondary{color:var(--text-primary)!important}.btn-secondary:hover{background:var(--border)!important}@media (max-width: 640px){.greeter-page{padding:1rem}.greeter-title{font-size:2rem;margin-bottom:2rem}.greeter-button-group button,.greeter-form button{padding:.65rem 1.25rem;font-size:.85rem;letter-spacing:1.5px}.greeter-button-group .btn-secondary{padding:.55rem 1rem!important;font-size:.75rem!important}.greeter-card h2{font-size:1.3rem}}.chat-layout{width:100vw;height:100vh;height:100dvh;display:grid;grid-template-columns:1fr;gap:0;overflow:hidden;background:transparent}.chat-container{position:relative;width:100%;height:100%;display:flex;flex-direction:column;background:#1a1a1abf;overflow:hidden}.chat-header{display:flex;align-items:center;gap:.75rem;padding:8px 12px;border-bottom:1px solid rgba(51,51,51,.5);background:#1a1a1a80;flex-shrink:0}.header-channel-info{display:flex;flex-direction:column;align-items:flex-start;overflow:hidden;min-width:0}.channel-description{font-size:.75rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;max-width:100%}.channel-name{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0;white-space:nowrap;cursor:pointer}.channel-name:hover{opacity:.8}.header-right{margin-left:auto;display:flex;align-items:center;gap:.75rem}.chat-greeter{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;background:#1a1a1a80;z-index:10;transition:opacity .3s ease}.chat-greeter.hidden{opacity:0;pointer-events:none}.greeter-content{text-align:center;padding:2rem;margin:auto}.chat-greeter .greeter-title{font-family:Noto Sans JP,sans-serif;font-weight:900;font-size:2.5rem;color:#fff;letter-spacing:.2rem;margin:0 0 1.5rem;animation:glitch-header 3s infinite;position:relative;display:inline-flex}.chat-greeter .greeter-title span{text-shadow:0 0 4px #ffffff,0 0 8px rgba(255,255,255,.5);position:relative}.chat-greeter .greeter-title:before,.chat-greeter .greeter-title:after{content:"\30b7\30ea\30b3\30f3\30c1\30e3\30c3\30c8";position:absolute;left:0;top:0;width:100%;height:100%;opacity:0}.chat-greeter .greeter-title:before{animation:glitchTop-header 3s infinite;clip-path:polygon(0 0,100% 0,100% 33%,0 33%);text-shadow:-1px 0 #ff0040}.chat-greeter .greeter-title:after{animation:glitchBottom-header 3s infinite;clip-path:polygon(0 67%,100% 67%,100% 100%,0 100%);text-shadow:1px 0 #00ffff}.chat-greeter .greeter-title span:nth-child(2){animation:flicker1-header 5s infinite}.chat-greeter .greeter-title span:nth-child(4){animation:flicker2-header 6s infinite}.chat-greeter .greeter-title span:nth-child(6){animation:flicker3-header 7s infinite}@keyframes glitch-header{0%,90%,to{transform:translate(0)}91%{transform:translate(-2px)}92%{transform:translate(2px)}93%{transform:translate(-1px)}94%{transform:translate(0)}}@keyframes glitchTop-header{0%,90%,94%,to{opacity:0;transform:translate(0)}91%{opacity:1;transform:translate(-4px,-1px)}92%{opacity:1;transform:translate(6px,1px)}93%{opacity:1;transform:translate(-3px,-1px)}}@keyframes glitchBottom-header{0%,90%,94%,to{opacity:0;transform:translate(0)}91%{opacity:1;transform:translate(5px,2px)}92%{opacity:1;transform:translate(-4px,-1px)}93%{opacity:1;transform:translate(3px,1px)}}@keyframes flicker1-header{0%,45%,47%,to{opacity:1}45.5%{opacity:.4}46%{opacity:0}46.5%{opacity:.6}48%{opacity:.2}}@keyframes flicker2-header{0%,62%,64%,66%,to{opacity:1}62.3%{opacity:.3}63%{opacity:0}63.5%{opacity:.5}65%{opacity:.1}65.5%{opacity:.7}}@keyframes flicker3-header{0%,78%,80%,82%,to{opacity:1}78.5%{opacity:0}79%{opacity:.5}79.5%{opacity:0}81%{opacity:.3}81.5%{opacity:.8}}.greeter-version{font-size:.85rem;color:var(--text-secondary);margin:0 0 .5rem;opacity:.6;letter-spacing:1px}.sticked-message{max-width:400px;margin:1rem auto;padding:.75rem 1rem;background:#00ff880d;border-left:3px solid var(--accent);border-radius:0 4px 4px 0;text-align:left;display:flex;flex-direction:column;gap:.25rem}.sticked-message.hidden{display:none}.sticked-label{font-size:.65rem;font-weight:700;letter-spacing:1.5px;color:var(--accent);opacity:.8}.sticked-content{font-size:.9rem;color:var(--text-primary);word-break:break-word}.sticked-meta{font-size:.75rem;color:var(--text-secondary);opacity:.6}.greeter-welcome{font-size:1.2rem;color:var(--text-primary);margin:0 0 .75rem}.greeter-username{color:var(--accent);font-weight:600}.greeter-hint{font-size:.9rem;color:var(--text-secondary);margin:0;opacity:.7}.greeter-sections{display:flex;flex-direction:column;gap:1.5rem;max-width:600px;margin:2rem auto;text-align:left}.greeter-section-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding-bottom:.3rem;border-bottom:1px solid rgba(51,51,51,.5);margin-bottom:.5rem;user-select:none}.greeter-section-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:var(--accent);margin:0}.greeter-collapse-chevron{font-size:.6rem;color:var(--text-secondary);transition:transform .2s ease}.greeter-section.collapsed .greeter-collapse-chevron{transform:rotate(-90deg)}.greeter-section.collapsed .greeter-section-list{display:none}.greeter-section-list{display:flex;flex-direction:column;gap:.25rem;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(60,60,60,.8) transparent}.greeter-section-list::-webkit-scrollbar{width:6px}.greeter-section-list::-webkit-scrollbar-track{background:transparent}.greeter-section-list::-webkit-scrollbar-thumb{background:#3c3c3ccc;border-radius:3px}.greeter-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:4px;cursor:pointer;transition:background .15s ease;color:var(--text-primary);font-size:.9rem}.greeter-item:hover{background:#00ff8814}.greeter-item-icon{color:var(--accent);font-weight:700;flex-shrink:0;width:1.2em;text-align:center}.greeter-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.greeter-item-text{display:flex;flex-direction:column;min-width:0;flex:1}.greeter-channel-desc{font-size:.75rem;color:var(--text-secondary);opacity:.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.greeter-empty{font-size:.8rem;color:var(--text-secondary);opacity:.5;padding:.4rem .75rem;font-style:italic}.chat-greeter:not(.hidden)~.chat-header,.chat-greeter:not(.hidden)~.input-container,.chat-greeter:not(.hidden)~.messages-container{visibility:hidden}.messages-container{flex:1;overflow-y:auto;padding:1rem .5rem 0rem;display:flex;flex-direction:column;gap:.25rem;font-family:inherit;scrollbar-width:thin;scrollbar-color:rgba(60,60,60,.8) rgba(20,20,20,.5)}.messages-container::-webkit-scrollbar{width:10px}.messages-container::-webkit-scrollbar-track{background:#14141480;border-radius:4px}.messages-container::-webkit-scrollbar-thumb{background:#3c3c3ccc;border-radius:4px;border:1px solid rgba(40,40,40,.8)}.messages-container::-webkit-scrollbar-thumb:hover{background:#505050e6}.messages-container::-webkit-scrollbar-thumb:active{background:#646464}.messages-container.drag-over{outline:2px dashed var(--accent);outline-offset:-4px;background:#00ff8808}.messages-container.drag-over:after{content:"Drop file to upload";position:sticky;bottom:1rem;left:50%;transform:translate(-50%);display:block;width:fit-content;background:#121212eb;border:1px solid var(--accent);color:var(--accent);font-size:.85rem;padding:6px 16px;border-radius:6px;pointer-events:none}.message{padding:.5rem;background:transparent;line-height:1.5;transition:background .3s ease;display:flex;flex-direction:column}.message:not(.system){position:relative}.message:not(.system):hover{background:#2a2a2a66}.message:hover{background:transparent}.message-body{display:flex;flex-direction:column;flex:1;min-width:0;gap:.25rem;width:100%}.message-header{display:flex;align-items:baseline;gap:.5rem}.message.system{background:transparent;font-style:italic;color:var(--text-secondary);background-color:#242424;opacity:70%;border-radius:10px;border:1px solid white;padding:.5rem .75rem;transition:opacity .5s ease,transform .5s ease}.message.system.fade-out{opacity:0;transform:translate(-10px)}.message.highlight{animation:messageHighlight 2s ease}@keyframes messageHighlight{0%{background:#64646499}to{background:transparent}}.message-timestamp{color:var(--text-secondary);font-size:.9rem}.message-username{font-size:1rem;font-weight:700;color:var(--accent)}.message-avatar{font-size:1rem}.admin-badge{display:inline-block;width:20px;height:auto;vertical-align:middle;object-fit:contain;image-rendering:pixelated}.bot-badge{display:inline-flex;align-items:center;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#00fec8;vertical-align:middle}.message-body .message-content{color:var(--text-primary);word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;hyphens:auto;padding-left:3.5rem;margin:5px}.reply-parent-message .message-content,.reply-actual-message .message-content{color:var(--text-primary);word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;hyphens:auto;padding-left:3.5rem}.message-content strong{font-weight:700;color:var(--text-primary)}.message-content em{font-style:italic}.message-content .spoiler{background-color:#1a1a1a;color:transparent;border-radius:3px;padding:0 4px;cursor:pointer;transition:color .15s ease,background-color .15s ease;user-select:none}.message-content .spoiler:hover,.message-content .spoiler.revealed{color:var(--text-primary);background-color:#3c3c3c80}.message-content .greentext{color:#0f0}.message-content .mention{color:var(--accent);font-weight:700;border-radius:3px;padding:0 2px;background:#00ff881a}.message-content .mention-self{background:#00ff8840;color:#fff}.message.message-mentioned{background:#00ff8812;border-left:2px solid var(--accent);padding-left:calc(.5rem - 2px)}.reply-container{display:flex;flex-direction:column;gap:.25rem;width:100%}.reply-parent-message{padding:.25rem .5rem;display:flex;align-items:baseline;gap:.375rem;opacity:.7;border-left:2px solid rgba(255,255,255,.4);background:transparent;cursor:pointer;transition:opacity .15s ease;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.reply-parent-message:hover{opacity:1}.reply-parent-message .message-username{font-size:.85rem;flex-shrink:0}.reply-parent-message .message-content{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:0}.reply-actual-message{position:relative;display:flex;flex-direction:column;gap:.25rem;padding:.25rem .5rem;background:transparent;width:100%}.reply-actual-message .message-header{display:flex;align-items:baseline;gap:.5rem}.reply-connector{font-family:Courier New,Monaco,monospace;color:var(--text-secondary);user-select:none;flex-shrink:0}.message-actions{position:absolute;top:-.25rem;right:.5rem;display:none;align-items:center;gap:.125rem;background:#1e1e1ef2;border:1px solid rgba(80,80,80,.6);border-radius:4px;padding:.125rem;z-index:1}.message:not(.system):hover .message-actions{display:flex}.message-actions button{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem;border-radius:3px;display:flex;align-items:center;justify-content:center;transition:color .15s ease,background .15s ease;line-height:0}.message-actions button:hover{color:var(--text-primary);background:#ffffff1a}.message-actions .delete-btn:hover{color:#f44}.message-actions button svg{width:16px;height:16px}.emoji-reactions{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-start;padding-left:3.5rem;margin-top:.5rem}.emoji-reaction{display:inline-flex;align-items:center;gap:.125rem;background:none;border:none;padding-left:5px;font-size:.85rem;cursor:pointer;user-select:none}.emoji-reaction:hover .reaction-count{color:var(--text-primary)}.emoji-reaction.reacted .reaction-emoji{filter:drop-shadow(0 0 2px var(--accent))}.emoji-reaction .reaction-emoji{font-size:.95rem;line-height:1}.emoji-reaction .reaction-count{font-size:.75rem;color:var(--text-secondary);font-weight:600}.emoji-reaction.reacted .reaction-count{color:var(--accent)}.message.reaction-target{background:#00ff880f;border-left:2px solid var(--accent)}.emoji-picker{display:flex;flex-direction:column;background:#1e1e1efa;border:1px solid rgba(80,80,80,.6);border-radius:8px;z-index:100;box-shadow:0 4px 16px #0006;max-width:calc(100vw - 1rem);scrollbar-width:thin;scrollbar-color:rgba(60,60,60,.8) rgba(20,20,20,.5)}@media (max-width: 640px){.emoji-reactions{padding-left:0}}.emoji-picker-tabs{display:flex;gap:.125rem;padding:.375rem .375rem .25rem;border-bottom:1px solid rgba(80,80,80,.4)}.emoji-picker-tab{background:none;border:none;color:var(--text-secondary);font-size:.75rem;padding:.25rem .5rem;cursor:pointer;border-radius:4px;transition:color .12s ease,background .12s ease}.emoji-picker-tab:hover{color:var(--text-primary)}.emoji-picker-tab.active{color:var(--accent);background:#ffffff0f}.emoji-picker-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.125rem;padding:.375rem;max-height:240px;overflow-y:auto}.emoji-picker-grid.kaomoji-grid{grid-template-columns:repeat(5,1fr)}.emoji-picker-grid.hidden{display:none}.emoji-picker-item{background:none;border:none;font-size:1.25rem;padding:.375rem;cursor:pointer;border-radius:4px;transition:background .12s ease;line-height:1;color:var(--text-primary)}.emoji-picker-item.kaomoji-item{font-size:.85rem;padding:.375rem .5rem;text-align:left;overflow:hidden;text-overflow:ellipsis}.emoji-picker-item:hover{background:#ffffff1f}@media (max-width: 640px){.message-content,.reply-parent-message,.reply-actual-message,.reply-parent-message .message-content,.reply-actual-message .message-content{max-width:100%}.message-avatar,.reply-connector{display:none}.message-body .message-content,.reply-parent-message .message-content,.reply-actual-message .message-content{padding-left:0}}.message-highlight{background:#00ff881f;animation:highlightFade 2s ease-out forwards}@keyframes highlightFade{0%{background:#0f83}70%{background:#00ff881a}to{background:transparent}}.message-edit-textarea{width:calc(100% - 3.5rem);min-height:2.5rem;max-height:8rem;background:#141414cc;border:1px solid rgba(80,80,80,.6);border-radius:4px;color:var(--text-primary);font-family:Courier New,Monaco,monospace;font-size:.9rem;padding:.375rem .5rem;resize:vertical;margin-left:3.5rem;box-sizing:border-box}.message-edit-textarea:focus{outline:none;border-color:var(--accent)}.message-edit-actions{display:flex;align-items:center;gap:.5rem;margin-left:3.5rem;margin-top:.25rem}.message-edit-actions button{background:none;border:1px solid rgba(80,80,80,.6);color:var(--text-secondary);font-size:.75rem;padding:.2rem .5rem;border-radius:3px;cursor:pointer;transition:color .12s ease,border-color .12s ease}.message-edit-actions .edit-save-btn{color:var(--accent);border-color:var(--accent)}.message-edit-actions .edit-save-btn:hover{background:#00ff881a}.message-edit-actions .edit-cancel-btn:hover{color:var(--text-primary);border-color:var(--text-primary)}.message-edit-actions .edit-char-count{font-size:.7rem;color:var(--text-secondary);margin-left:auto}.message-edited{font-size:.7rem;color:var(--text-secondary);margin-left:.25rem}@media (max-width: 640px){.message-edit-textarea{margin-left:0;width:100%}.message-edit-actions{margin-left:0}}.new-messages-banner{display:none;align-items:center;justify-content:center;gap:.5rem;padding:.4rem 1rem;background:#00ff881a;border-bottom:1px solid rgba(0,255,136,.25);color:var(--accent);font-size:.8rem;font-weight:600;cursor:pointer;user-select:none;flex-shrink:0;transition:background .15s ease}.new-messages-banner:hover{background:#00ff882e}.new-messages-arrow{font-size:.9rem}.load-more-btn{display:block;width:100%;padding:.5rem 1rem;background:none;border:none;border-bottom:1px solid var(--border);color:var(--text-secondary);font-size:.8rem;font-family:inherit;text-align:center;cursor:pointer;opacity:.7;transition:opacity .15s}.load-more-btn:hover:not(:disabled){opacity:1;color:var(--text-primary)}.load-more-btn:disabled{cursor:default;opacity:.4}.input-container{padding:.5rem;position:relative}form{width:100%}.message-input-wrapper{display:flex;align-items:center;gap:.75rem;background:#0a0a0ab3;border:1px solid rgba(51,51,51,.5);border-radius:6px;padding:.75rem 1rem;transition:border-color .2s}.message-input-wrapper:focus-within{border-color:var(--accent)}textarea{flex:1;background:transparent;border:none;color:var(--text-primary);font-size:1rem;font-family:inherit;resize:none;min-height:24px;max-height:120px;overflow-y:auto;line-height:1.5;scrollbar-width:thin;scrollbar-color:rgba(60,60,60,.8) rgba(20,20,20,.5)}textarea:focus{outline:none}textarea::placeholder{color:var(--text-secondary)}textarea::-webkit-scrollbar{width:8px}textarea::-webkit-scrollbar-track{background:#14141480;border-radius:4px}textarea::-webkit-scrollbar-thumb{background:#3c3c3ccc;border-radius:4px;border:1px solid rgba(40,40,40,.8)}textarea::-webkit-scrollbar-thumb:hover{background:#505050e6}textarea::-webkit-scrollbar-thumb:active{background:#646464}.char-count{font-size:.8rem;color:var(--text-secondary);white-space:nowrap;user-select:none}.attach-btn{background:none;border:none;color:var(--text-secondary);font-size:1.4rem;line-height:1;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color .2s;flex-shrink:0}.attach-btn:hover{color:var(--accent)}.attachment-preview{display:flex;align-items:flex-end;gap:10px;padding:8px 10px;background:#0e0e0ee6;border:1px solid rgba(51,51,51,.5);border-radius:8px;margin-bottom:.5rem;overflow:hidden}.preview-cards{display:flex;flex-direction:row;gap:8px;flex:1;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;scrollbar-width:thin;scrollbar-color:rgba(60,60,60,.8) transparent}.preview-cards::-webkit-scrollbar{height:4px}.preview-cards::-webkit-scrollbar-thumb{background:#3c3c3ccc;border-radius:2px}.preview-card{position:relative;display:flex;flex-direction:column;gap:5px;width:112px;flex-shrink:0}.preview-card-thumb{position:relative;width:112px;height:112px;border-radius:6px;overflow:hidden;background:#1e1e1ee6;border:1px solid rgba(60,60,60,.5)}.preview-card-thumb img,.preview-card-thumb video{width:100%;height:100%;object-fit:cover;display:block}.preview-card-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:#ffffffd9;text-shadow:0 1px 4px rgba(0,0,0,.7);pointer-events:none}.preview-card-spinner{position:absolute;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center}.preview-card-spinner:after{content:"";width:20px;height:20px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--accent);border-radius:50%;animation:preview-spin .7s linear infinite}@keyframes preview-spin{to{transform:rotate(360deg)}}.preview-card--error .preview-card-thumb{border-color:var(--error)}.preview-card-err{position:absolute;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;color:var(--error);font-size:1.5rem;font-weight:700}.preview-card-name{font-size:.72rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:112px}.preview-card-remove{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background:#000000bf;border:1px solid rgba(255,255,255,.15);color:var(--text-secondary);font-size:.9rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s,color .12s;padding:0}.preview-card:hover .preview-card-remove{opacity:1}.preview-card-remove:hover{color:var(--error);border-color:var(--error)}.preview-post{background:none;border:1px solid var(--border);color:var(--text-secondary);font-size:.8rem;font-family:inherit;cursor:pointer;padding:4px 10px;border-radius:4px;transition:all .15s;flex-shrink:0;align-self:flex-end;margin-bottom:2px}.preview-post:hover{background:var(--accent);border-color:var(--accent);color:#000}.message-attachment{margin-top:6px}.attachment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,280px));gap:4px;max-width:580px}.attachment-grid .embed-image-container,.attachment-grid .embed-video-container{max-width:100%;max-height:220px;margin-top:0;padding-left:0}.attachment-grid .video-play-btn{left:50%}.attachment-grid .embed-image-container img,.attachment-grid .embed-video-container video{padding-left:0;max-height:220px;width:100%;object-fit:cover}.reply-preview{background:#141414cc;border:1px solid rgb(122 118 118);border-radius:6px;padding:.75rem;margin-bottom:.5rem}.reply-preview-header{display:flex;justify-content:space-between;align-items:center}.reply-preview-label{font-size:.85rem;color:var(--text-secondary)}#reply-username{color:var(--accent);font-weight:600}.reply-preview-close{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;line-height:1;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color .2s}.reply-preview-close:hover{color:var(--text-primary)}.reply-preview-message{color:var(--text-primary);font-size:.9rem;opacity:.8;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.media-jump-btn{background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);font-size:.75rem;padding:.2rem .5rem;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.media-jump-btn:hover{color:var(--accent);border-color:var(--accent)}.media-delete-btn{background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);font-size:.75rem;padding:.2rem .5rem;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.media-delete-btn:hover{color:var(--error);border-color:var(--error)}.command-menu{position:absolute;bottom:100%;left:0;right:0;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px 6px 0 0;margin-bottom:.5rem;max-height:300px;overflow-y:auto;box-shadow:0 -4px 12px #0000004d;z-index:100;scrollbar-width:thin;scrollbar-color:rgba(60,60,60,.8) rgba(20,20,20,.5)}.command-menu-header{padding:.5rem .75rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-weight:600;border-bottom:1px solid var(--border)}.command-menu-items{padding:.25rem 0}.command-menu-item{padding:.75rem;cursor:pointer;transition:background-color .15s ease;display:flex;align-items:center;gap:.75rem}.command-menu-item:hover,.command-menu-item.selected{background:#2a2a2a99}.command-menu-item-name{color:var(--accent);font-size:.95rem}.command-menu-item-description{font-size:.85rem;color:var(--text-secondary)}.color-preview{width:32px;height:32px;border-radius:4px;border:2px solid var(--border);flex-shrink:0}.kaomoji-preview{border-radius:4px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1.2rem}.wallpaper-item{display:flex;align-items:center;gap:.75rem}.wallpaper-thumbnail{width:60px;height:40px;object-fit:cover;border-radius:4px;border:1px solid var(--border);flex-shrink:0}.mention-group-header{padding:.3rem .75rem .15rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.6px;color:var(--text-secondary);font-weight:600;display:flex;align-items:center;gap:.4rem;margin-top:.2rem;pointer-events:none;user-select:none}.mention-group-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.mention-group-dot.online{background-color:var(--accent)}.mention-group-dot.idle{background-color:#fa0}.mention-group-dot.dnd{background-color:var(--error)}.mention-group-dot.offline{background-color:var(--text-secondary);opacity:.45}.mention-group-count{opacity:.5;font-weight:400}.mention-item{display:flex;align-items:center;gap:.5rem}.mention-status-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.mention-status-indicator.online{background-color:var(--accent)}.mention-status-indicator.idle{background-color:#fa0}.mention-status-indicator.dnd{background-color:var(--error)}.mention-status-indicator.offline{background-color:var(--text-secondary)}.mention-user-info{display:flex;align-items:center;gap:.35rem}.mention-avatar{font-size:1rem}.mention-username{font-weight:600;font-size:.95rem;color:var(--text-primary)}.mention-username.mention-everyone{color:var(--accent)}#vim-mode-indicator.hidden{display:none}#vim-mode-indicator{font-family:var(--font-mono, monospace);font-size:.75rem;color:var(--text-secondary);letter-spacing:.5px;user-select:none}#vim-mode-indicator[data-mode=insert]{color:var(--accent)}@media (max-width: 640px){.command-menu{max-height:200px}}.channel-go-item.has-unread .command-menu-item-name{font-weight:700}.channel-go-item.is-active .command-menu-item-name:after{content:" \203a";opacity:.5}.embed-block{display:block;margin-top:4px}.embed-link{color:var(--accent);text-decoration:none;word-break:break-all}.embed-link:hover{text-decoration:underline}.embed-image-container{max-width:400px;max-height:300px;border-radius:6px;overflow:hidden}.embed-image-container img{display:block;max-width:100%;max-height:300px;object-fit:contain;cursor:pointer;border-radius:6px;padding-left:3.5rem}.embed-video-container{position:relative;max-width:400px;border-radius:6px;overflow:hidden;margin-top:6px;padding-left:3.5rem;cursor:pointer}.embed-video-container video{display:block;width:100%;border-radius:6px}.video-play-btn{position:absolute;top:50%;left:calc(3.5rem + (100% - 3.5rem)/2);transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;border:none;background:#0009;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease;pointer-events:auto;z-index:1}.embed-video-container:hover .video-play-btn{opacity:1}.video-play-btn:hover{background:#000c}.embed-video-container.is-playing .video-play-btn{display:none}.embed-youtube-container{position:relative;display:block;max-width:400px;width:100%;border-radius:6px;overflow:hidden;margin-top:6px;cursor:pointer;background:#000}.embed-youtube-container .yt-thumb{display:block;width:100%;border-radius:6px;transition:opacity .2s}.embed-youtube-container:hover .yt-thumb{opacity:.7}.embed-youtube-container .yt-play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000bf;color:#fff;border:none;border-radius:50%;width:52px;height:52px;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;pointer-events:none;transition:background .2s}.embed-youtube-container:hover .yt-play-btn{background:#ff0000d9}.embed-youtube-container .yt-meta-bar{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#000000b8);padding:20px 8px 6px;display:flex;align-items:flex-end;justify-content:space-between;gap:6px;pointer-events:none;border-radius:0 0 6px 6px}.embed-youtube-container .yt-meta-title{color:#fff;font-size:.78rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.embed-youtube-container .yt-meta-duration{color:#fff;font-size:.72rem;background:#000000a6;padding:1px 5px;border-radius:3px;flex-shrink:0;white-space:nowrap;font-variant-numeric:tabular-nums}.embed-youtube-container.loaded .yt-meta-bar{display:none}.embed-youtube-container.loaded,.embed-youtube-container .yt-iframe{aspect-ratio:16 / 9;width:100%}.embed-youtube-container .yt-iframe{display:block;border:none;border-radius:6px}.embed-tweet-card{max-width:400px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-top:6px;min-height:48px;display:flex;flex-direction:column;gap:6px;cursor:default}.tweet-card-header{display:flex;align-items:center;gap:6px;min-height:18px}.tweet-card-x{font-size:.9rem;color:var(--text-primary);flex-shrink:0;line-height:1}.tweet-card-author{font-size:.82rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tweet-card-handle{font-size:.78rem;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.tweet-card-text{font-size:.82rem;color:var(--text-primary);line-height:1.45;white-space:pre-wrap;overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.embed-image-container.media-error,.embed-video-container.media-error{max-height:none;padding:6px 10px;color:var(--text-muted);font-size:.82em;font-style:italic;cursor:default}.embed-image-container.media-error:before{content:"[ image unavailable ]"}.embed-video-container.media-error:before{content:"[ video unavailable ]"}@media (max-width: 640px){.embed-image-container img,.embed-video-container{padding-left:0}}.media-lightbox{display:none;position:fixed;inset:0;z-index:1000;align-items:center;justify-content:center}.media-lightbox.is-open{display:flex}.lightbox-backdrop{position:absolute;inset:0;z-index:0;background:#000000d9;backdrop-filter:blur(4px)}.lightbox-content{position:relative;z-index:1;max-width:90vw;max-height:90vh}.lightbox-content img,.lightbox-content video{display:block;max-width:90vw;max-height:90vh;object-fit:contain;border-radius:4px}.lightbox-close{position:absolute;top:-36px;right:0;background:none;border:none;color:#fff;font-size:28px;cursor:pointer;padding:4px 8px;line-height:1;opacity:.8}.lightbox-close:hover{opacity:1}@media (max-width: 768px){.channel-description{display:none}.messages-container{padding:.75rem}.message{padding:.5rem}.input-container{padding:.75rem}.message-input-wrapper{padding:.6rem .85rem}}@media (max-width: 640px){.chat-container{height:100vh;height:100dvh}.messages-container{padding:.5rem}.message{padding:.4rem}.input-container,.reply-preview{padding:.5rem}.reply-preview-message{max-width:100%}.message-input-wrapper{padding:.5rem .75rem}button{padding:.5rem 1rem}.char-count{font-size:.7rem}.chat-greeter .greeter-title{font-size:1.8rem;letter-spacing:.1rem}.greeter-content{padding:1rem}}#profile-modal{position:fixed;z-index:1000;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;width:300px;overflow:hidden;box-shadow:0 8px 32px #00000080}.profile-modal-close{position:absolute;top:8px;right:8px;background:#00000073;border:none;color:var(--text-primary);font-size:1.2rem;width:28px;height:auto;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1;line-height:1;opacity:0;transition:opacity .15s,background .15s}#profile-modal:hover .profile-modal-close{opacity:1}.profile-modal-close:hover{background:#ffffff26}.profile-banner{width:100%;height:120px;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:grab;user-select:none}.profile-banner:active{cursor:grabbing}.profile-avatar-img{width:100%;height:100%;object-fit:cover;pointer-events:none}.profile-avatar-placeholder{font-size:3rem;color:var(--text-secondary);user-select:none;pointer-events:none}.profile-info{padding:12px 16px 16px}.profile-header{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-wrap:wrap}.profile-status-indicator{width:10px;height:10px;border-radius:50%;flex-shrink:0}.profile-status-indicator.online{background:#3ba55d}.profile-status-indicator.idle{background:#faa81a}.profile-status-indicator.dnd{background:#ed4245}.profile-status-indicator.offline{background:#747f8d}.profile-role-badge.admin-badge{width:22px}.mod-badge-text{display:contents;align-items:center;font-size:.8rem;font-weight:700;letter-spacing:.5px;color:#03ff54;vertical-align:middle}.profile-kaomoji{font-size:1rem;color:var(--text-secondary)}.profile-username{font-size:1.1rem;font-weight:600;color:var(--text-primary);word-break:break-word}.profile-bio{font-size:.85rem;color:var(--text-secondary);margin:0 0 10px;line-height:1.4;word-break:break-word;white-space:pre-wrap}.profile-meta{font-size:.75rem;color:var(--text-secondary);border-top:1px solid var(--border);padding-top:8px;margin-top:4px}.profile-crop-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1100}.profile-crop-dialog{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:16px;width:332px;box-shadow:0 8px 32px #0009}.profile-crop-title{font-size:.8rem;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;text-align:center}.profile-crop-window{width:300px;height:120px;overflow:hidden;position:relative;border:1px solid var(--border);border-radius:4px;cursor:grab;user-select:none;margin:0 auto;background:var(--bg-tertiary)}.profile-crop-window:active{cursor:grabbing}.profile-crop-img{position:absolute;top:0;left:0;max-width:none;max-height:none;pointer-events:none;display:block}.profile-crop-hint{font-size:.72rem;color:var(--text-secondary);text-align:center;margin:8px 0 0}.profile-crop-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.profile-crop-btn{padding:6px 16px;border-radius:4px;border:none;cursor:pointer;font-size:.85rem;font-family:inherit}.profile-crop-btn.cancel{background:var(--bg-tertiary);color:var(--text-primary)}.profile-crop-btn.cancel:hover{background:var(--border)}.profile-crop-btn.apply{background:var(--accent);color:#000;font-weight:600}.profile-crop-btn.apply:hover:not(:disabled){background:var(--accent-hover)}.profile-crop-btn.apply:disabled{opacity:.5;cursor:not-allowed}.profile-banner-editable{position:relative;cursor:pointer}.profile-banner-edit-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000;color:transparent;font-size:.8rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;transition:background .15s,color .15s;pointer-events:none}.profile-banner-editable:hover .profile-banner-edit-hint{background:#00000073;color:var(--text-primary)}.profile-banner-remove-hint{position:absolute;bottom:6px;right:6px;padding:2px 7px;background:#b4282800;color:transparent;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border-radius:3px;cursor:pointer;transition:background .15s,color .15s;pointer-events:none;z-index:1}.profile-banner-editable:hover .profile-banner-remove-hint{background:#b42828bf;color:#fff;pointer-events:auto}.message-username.profile-clickable{cursor:pointer}.message-username.profile-clickable:hover{text-decoration:underline}.sidebar-item.dm-channel-item{border-left:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent);opacity:.9}.sidebar-item.dm-channel-item:hover{background:color-mix(in srgb,var(--accent) 14%,transparent);opacity:1}.sidebar-item.dm-channel-item.active{background:color-mix(in srgb,var(--accent) 18%,transparent);opacity:1}.sidebar-item.dm-channel-item .item-icon{font-weight:700;color:var(--accent);font-size:.9em}.dm-notification{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;background:var(--bg-secondary);border:1px solid var(--accent);border-radius:6px;padding:.6rem .9rem;display:flex;align-items:center;gap:.75rem;box-shadow:0 4px 16px #0006;font-size:.9rem;animation:dm-notif-in .2s ease}@keyframes dm-notif-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dm-notif-btn{background:var(--accent);color:var(--bg-primary);border:none;border-radius:4px;padding:.25rem .7rem;cursor:pointer;font-size:.85rem;font-weight:600}.dm-notif-btn:hover{opacity:.85}.dm-notif-dismiss{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:.85rem;padding:.1rem .2rem;line-height:1}.dm-notif-dismiss:hover{color:var(--text-primary)}.rtt-message{display:flex;align-items:baseline;gap:6px;padding:3px 12px;opacity:.55;font-size:.88rem;line-height:1.4;animation:rtt-fade-in .12s ease;transition:opacity .1s}.rtt-message:hover{opacity:.75}.rtt-avatar{font-size:.82rem;min-width:2.8rem;text-align:right;flex-shrink:0}.rtt-username{font-weight:600;font-size:.82rem;flex-shrink:0}.rtt-content{color:var(--text-secondary);word-break:break-word;font-style:italic;white-space:pre-wrap}.rtt-cursor{display:inline-block;width:2px;height:.85em;background:var(--accent);margin-left:2px;vertical-align:text-bottom;flex-shrink:0;animation:rtt-blink .75s step-end infinite}@keyframes rtt-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes rtt-fade-in{0%{opacity:0;transform:translateY(2px)}to{opacity:.55;transform:translateY(0)}}.typing-indicator-simple{display:flex;align-items:baseline;gap:6px;padding:3px 12px;opacity:.55;font-size:.88rem;line-height:1.4;animation:rtt-fade-in .12s ease}.typing-indicator-simple .typing-text{color:var(--text-secondary);font-style:italic}.typing-indicator-simple .typing-dots span{color:var(--text-secondary);animation:typing-dot 1.2s infinite}.typing-indicator-simple .typing-dots span:nth-child(2){animation-delay:.2s}.typing-indicator-simple .typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typing-dot{0%,60%,to{opacity:.2}30%{opacity:1}}.right-sidebar{position:relative;background:#1a1a1ad9;border-left:1px solid rgba(51,51,51,.5);display:flex;flex-direction:column;overflow:hidden}.right-sidebar .sidebar-content{flex:1;overflow-y:auto;padding:1rem;scrollbar-width:thin;scrollbar-color:rgba(60,60,60,.8) rgba(20,20,20,.5)}.right-sidebar .sidebar-content::-webkit-scrollbar{width:8px}.right-sidebar .sidebar-content::-webkit-scrollbar-track{background:#14141480;border-radius:4px}.right-sidebar .sidebar-content::-webkit-scrollbar-thumb{background:#3c3c3ccc;border-radius:4px;border:1px solid rgba(40,40,40,.8)}.right-sidebar .sidebar-content::-webkit-scrollbar-thumb:hover{background:#505050e6}.right-sidebar .sidebar-content::-webkit-scrollbar-thumb:active{background:#646464}.right-sidebar.collapsed .sidebar-content{display:none}.right-sidebar.collapsed{align-items:center;justify-content:center}.right-sidebar.collapsed .sidebar-collapse-btn{border-top:none;height:100%;writing-mode:vertical-lr;padding:0}.right-sidebar.collapsed .collapse-icon{transform:rotate(180deg)}.jukebox-player{position:fixed;bottom:24px;right:24px;width:300px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 24px #00000080;z-index:500;user-select:none;font-size:.85rem;color:var(--text-primary)}.jukebox-player.hidden,.jukebox-player.minimised .jukebox-body{display:none}.jukebox-titlebar{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--bg-tertiary);border-radius:8px 8px 0 0;cursor:grab;border-bottom:1px solid var(--border)}.jukebox-titlebar:active{cursor:grabbing}.jukebox-title-label{font-size:.78rem;font-weight:600;color:var(--accent);letter-spacing:.3px}.jukebox-titlebar-controls{display:flex;gap:4px}.jukebox-btn-icon{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:0 4px;font-size:.9rem;line-height:1;border-radius:3px}.jukebox-btn-icon:hover{color:var(--text-primary);background:var(--bg-primary)}.jukebox-body{padding:10px;display:flex;flex-direction:column;gap:8px}.jukebox-track-title{font-size:.82rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jukebox-progress-row{display:flex;align-items:center;gap:8px}.jukebox-scrub{flex:1;height:4px;appearance:none;-webkit-appearance:none;background:var(--border);border-radius:2px;outline:none;cursor:pointer}.jukebox-scrub::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent);cursor:pointer}.jukebox-scrub::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}.jukebox-time{font-size:.72rem;color:var(--text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0}.jukebox-controls{display:flex;gap:8px}.jukebox-btn{flex:1;padding:5px 8px;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);border-radius:4px;cursor:pointer;font-size:.78rem;transition:background .15s,border-color .15s}.jukebox-btn:hover{background:var(--bg-primary);border-color:var(--accent);color:var(--accent)}.jukebox-queue-section{border-top:1px solid var(--border);padding-top:8px}.jukebox-queue-header{font-size:.75rem;color:var(--text-secondary);margin-bottom:4px;font-weight:600}.jukebox-queue-list{list-style:decimal inside;margin:0;padding:0;max-height:120px;overflow-y:auto}.jukebox-queue-list li{font-size:.78rem;color:var(--text-secondary);padding:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pins-panel{position:absolute;top:36px;right:8px;width:260px;max-height:60vh;z-index:20;pointer-events:none;opacity:0;transform:translateY(-6px);transition:opacity .15s ease,transform .15s ease}.pins-panel.open{pointer-events:auto;opacity:1;transform:translateY(0)}.pins-panel-list{display:flex;flex-direction:column;gap:.4rem;overflow-y:auto;max-height:60vh;padding:2px;scrollbar-width:thin;scrollbar-color:rgba(60,60,60,.8) transparent}.pins-panel-list::-webkit-scrollbar{width:4px}.pins-panel-list::-webkit-scrollbar-track{background:transparent}.pins-panel-list::-webkit-scrollbar-thumb{background:#3c3c3ccc;border-radius:3px}.pin-item{padding:.55rem .7rem;border-radius:6px;background:#0c0c0ceb;backdrop-filter:blur(6px);box-shadow:0 2px 8px #00000073;transition:background .15s ease,box-shadow .15s ease}.pin-item:hover{background:#161616f5;box-shadow:0 3px 12px #0009}.pin-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.3rem;gap:.5rem}.pin-author{font-size:.8rem;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:.3rem}.pin-author-avatar{font-style:normal;flex-shrink:0}.pin-unpin-btn{background:none;border:none;cursor:pointer;padding:2px 4px;border-radius:3px;color:var(--text-secondary);font-size:.75rem;opacity:.5;flex-shrink:0;transition:opacity .15s ease,color .15s ease;display:flex;align-items:center;justify-content:center}.pin-unpin-btn svg{width:13px;height:13px;stroke:currentColor}.pin-item:hover .pin-unpin-btn{opacity:1}.pin-unpin-btn:hover{color:var(--error)}.pin-unpin-btn.confirming{opacity:1;color:var(--error);animation:pin-confirm-pulse .6s ease infinite alternate}@keyframes pin-confirm-pulse{0%{opacity:.7}to{opacity:1}}.pin-item-content{font-size:.82rem;color:var(--text-primary);line-height:1.4;word-break:break-word;white-space:pre-wrap;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;transition:-webkit-line-clamp 0s,max-height .2s ease}.pin-item:hover .pin-item-content{-webkit-line-clamp:unset;display:block}.pin-item-meta{margin-top:.3rem;font-size:.7rem;color:var(--text-secondary);opacity:.6}.pin-attachments{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:.3rem}.pin-attachment-thumb{width:72px;height:72px;object-fit:cover;border-radius:4px;border:1px solid rgba(60,60,60,.5);background:#141414cc;display:block}.pins-empty,.pins-loading{font-size:.8rem;color:var(--text-secondary);opacity:.5;padding:.75rem;font-style:italic;text-align:center}.pins-btn{background:none;border:1px solid rgba(51,51,51,.7);border-radius:3px;color:var(--text-secondary);cursor:pointer;font-size:.7rem;font-weight:600;letter-spacing:.8px;padding:3px 8px;transition:border-color .15s ease,color .15s ease,background .15s ease;white-space:nowrap}.pins-btn:hover{border-color:var(--accent);color:var(--accent)}.pins-btn.active{border-color:var(--accent);color:var(--accent);background:#00ff8814}.attach-popup{position:absolute;bottom:calc(100% + 6px);left:.5rem;background:#121212f7;border:1px solid var(--border);border-radius:6px;padding:4px;z-index:30;display:flex;flex-direction:column;gap:2px;min-width:150px;box-shadow:0 4px 16px #00000080;pointer-events:none;visibility:hidden;opacity:0;transform:translateY(4px);transition:opacity .12s ease,transform .12s ease}.attach-popup.open{pointer-events:auto;visibility:visible;opacity:1;transform:translateY(0)}.attach-popup-item{display:flex;align-items:center;gap:8px;background:none;border:none;color:var(--text-secondary);font-size:.875rem;font-family:inherit;padding:6px 10px;border-radius:4px;cursor:pointer;text-align:left;transition:background .12s ease,color .12s ease;white-space:nowrap}.attach-popup-item:hover{background:#ffffff0f;color:var(--text-primary)}.attach-popup-icon{font-size:1rem;line-height:1}.sticker-picker{position:absolute;bottom:calc(100% + 6px);left:.5rem;width:320px;max-height:340px;background:#0e0e0ef7;border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;z-index:30;box-shadow:0 6px 24px #0009;pointer-events:none;visibility:hidden;opacity:0;transform:translateY(6px);transition:opacity .15s ease,transform .15s ease;overflow:hidden}.sticker-picker.open{pointer-events:auto;visibility:visible;opacity:1;transform:translateY(0)}.sticker-picker-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px 6px;border-bottom:1px solid rgba(51,51,51,.5);flex-shrink:0}.sticker-picker-title{font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px}.sticker-picker-actions{display:flex;align-items:center;gap:6px}.sticker-upload-btn{background:none;border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);font-size:.75rem;font-family:inherit;padding:2px 8px;cursor:pointer;transition:border-color .15s,color .15s}.sticker-upload-btn:hover{border-color:var(--accent);color:var(--accent)}.sticker-picker-close{background:none;border:none;color:var(--text-secondary);font-size:1.2rem;line-height:1;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;transition:color .15s}.sticker-picker-close:hover{color:var(--text-primary)}.sticker-upload-form{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid rgba(51,51,51,.5);flex-shrink:0}.sticker-name-input{flex:1;background:#ffffff0d;border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:.8rem;font-family:inherit;padding:4px 8px;min-width:0;transition:border-color .15s}.sticker-name-input:focus{outline:none;border-color:var(--accent)}.sticker-name-input::placeholder{color:var(--text-secondary)}.sticker-upload-confirm,.sticker-upload-cancel{background:none;border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);font-size:.75rem;font-family:inherit;padding:3px 8px;cursor:pointer;white-space:nowrap;transition:all .15s}.sticker-upload-confirm:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.sticker-upload-confirm:disabled{opacity:.5;cursor:default}.sticker-upload-cancel:hover{border-color:var(--error);color:var(--error)}.sticker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(60,60,60,.8) transparent}.sticker-grid::-webkit-scrollbar{width:4px}.sticker-grid::-webkit-scrollbar-track{background:transparent}.sticker-grid::-webkit-scrollbar-thumb{background:#3c3c3ccc;border-radius:3px}.sticker-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px 4px;border-radius:6px;cursor:pointer;transition:background .12s ease}.sticker-item:hover{background:#ffffff0f}.sticker-item img{width:64px;height:64px;object-fit:contain;border-radius:4px;pointer-events:none}.sticker-label{font-size:.68rem;color:var(--text-secondary);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;pointer-events:none}.sticker-delete-btn{position:absolute;top:2px;right:2px;background:#0009;border:none;border-radius:50%;color:var(--text-secondary);font-size:.8rem;line-height:1;width:16px;height:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .12s,color .12s;padding:0}.sticker-item:hover .sticker-delete-btn{opacity:1}.sticker-delete-btn:hover{color:var(--error)}.sticker-loading,.sticker-empty{grid-column:1 / -1;font-size:.8rem;color:var(--text-secondary);font-style:italic;text-align:center;padding:1.5rem 0;opacity:.6}.message-sticker .embed-image-container{max-width:auto;max-height:160px}.message-sticker .embed-image-container img{max-height:160px}
