.comms-loading{background:var(--bg-dark);justify-content:center;align-items:center;height:100vh;display:flex}.comms-loading-text{font-family:var(--font-mono);color:var(--accent);letter-spacing:4px;text-transform:uppercase;font-size:14px;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.conduct-gate{background:var(--bg-dark);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.conduct-container{background:var(--bg-card);border:1px solid var(--border);width:100%;max-width:600px}.conduct-header{border-bottom:1px solid var(--border);padding:30px}.conduct-logo{font-family:var(--font-mono);color:var(--accent);letter-spacing:4px;text-transform:uppercase;font-size:12px}.conduct-header h1{font-family:var(--font-mono);color:var(--text-primary);letter-spacing:2px;margin:12px 0 0;font-size:20px;font-weight:700}.conduct-content{padding:30px}.conduct-content p{font-family:var(--font-mono);color:var(--text-secondary);margin:0 0 20px;font-size:13px;line-height:1.6}.conduct-rules{flex-direction:column;gap:16px;margin:20px 0;display:flex}.conduct-rule{font-family:var(--font-mono);color:var(--text-secondary);gap:16px;font-size:13px;line-height:1.5;display:flex}.rule-number{background:var(--accent);width:24px;height:24px;color:var(--bg-dark);flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.conduct-rule strong{color:var(--text-primary)}.conduct-enforcement{font-style:italic;color:var(--text-dim)!important;font-size:12px!important}.conduct-footer{border-top:1px solid var(--border);padding:30px}.conduct-checkbox{font-family:var(--font-mono);color:var(--text-secondary);cursor:pointer;align-items:flex-start;gap:12px;margin-bottom:20px;font-size:13px;display:flex}.conduct-checkbox input[type=checkbox]{accent-color:var(--accent);margin-top:3px}.conduct-enter{background:var(--accent);width:100%;color:var(--bg-dark);font-family:var(--font-mono);letter-spacing:4px;text-transform:uppercase;cursor:pointer;border:none;padding:14px;font-size:14px;font-weight:700;transition:opacity .2s}.conduct-enter:hover:not(:disabled){opacity:.9}.conduct-enter:disabled{opacity:.3;cursor:not-allowed}.comms-layout{background:var(--bg-dark);height:100vh;color:var(--text-primary);font-family:var(--font-mono);box-sizing:border-box;padding-top:74px;display:flex;position:relative;overflow:hidden}.comms-layout:before{content:"";background:var(--accent);z-index:50;height:1px;position:fixed;top:70px;left:0;right:0}@media (max-width:768px){.comms-layout:before{display:none}}.comms-mobile-header{background:var(--bg-card);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;padding:12px 16px;display:flex;position:fixed;top:0;left:0;right:0}.comms-mobile-toggle{color:var(--accent);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:20px;font-weight:900}.comms-mobile-channel{color:var(--text-primary);font-size:14px;font-weight:700}.comms-sidebar{background:var(--bg-card);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:240px;display:flex;overflow-y:auto}.comms-sidebar.hidden{display:none}.comms-sidebar-header{border-bottom:1px solid var(--border);padding:20px 16px}.comms-logo{color:var(--accent);letter-spacing:4px;text-transform:uppercase;font-size:12px;font-weight:700}.channel-list{padding:8px 0}.channel-group{margin-bottom:8px}.channel-group-label{color:var(--text-dim);letter-spacing:2px;text-transform:uppercase;padding:8px 16px 4px;font-size:10px;font-weight:700}.channel-item{width:100%;color:var(--text-dim);font-family:var(--font-mono);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:4px;padding:6px 16px;font-size:13px;transition:background .15s,color .15s;display:flex}.channel-item:hover{background:var(--bg-card);color:var(--text-secondary)}.channel-item.active{background:var(--bg-card);color:var(--text-primary)}.channel-item.unread{color:var(--text-primary);font-weight:700}.channel-hash{color:var(--text-dim);margin-right:4px}.channel-item.active .channel-hash{color:var(--accent)}.channel-item.mentioned{color:var(--accent);font-weight:700}.channel-item.mentioned .channel-hash{color:var(--accent)}.channel-unread-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;margin-left:auto}.channel-mention-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;margin-left:auto;animation:2s ease-in-out infinite mentionPulse}@keyframes mentionPulse{0%,to{opacity:1;box-shadow:0 0 #ff151666}50%{opacity:.8;box-shadow:0 0 0 4px #ff151600}}.comms-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.comms-channel-header{border-bottom:1px solid var(--border);background:var(--bg-dark);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.comms-channel-info h2{color:var(--text-primary);margin:0;font-size:16px;font-weight:700}.comms-channel-purpose{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.comms-presence-indicator{align-items:center;gap:6px;display:flex}.comms-presence-dot{background:#4caf50;border-radius:50%;flex-shrink:0;width:8px;height:8px}.comms-presence-count{color:var(--text-dim);letter-spacing:1px;font-size:11px}.comms-mobile-presence{color:var(--text-dim);align-items:center;gap:5px;font-size:12px;display:flex}.comms-empty{color:var(--text-dim);flex:1;justify-content:center;align-items:center;font-size:14px;display:flex}.message-stream{flex-direction:column;flex:1;padding:16px 20px;display:flex;overflow-y:auto}.message-stream.loading{justify-content:center;align-items:center}.message-stream-loading,.message-stream-loading-more{color:var(--text-dim);text-align:center;padding:12px;font-size:12px}.message-stream-start{color:var(--text-dim);text-align:center;border-bottom:1px solid var(--bg-card);margin-bottom:12px;padding:20px 0;font-size:12px}.message-stream-empty{color:var(--text-dim);flex:1;justify-content:center;align-items:center;font-size:13px;font-style:italic;display:flex}.new-messages-badge{background:var(--accent);color:var(--bg-dark);font-family:var(--font-mono);letter-spacing:1px;cursor:pointer;z-index:5;border:none;border-radius:16px;align-self:center;padding:6px 16px;font-size:12px;font-weight:700;transition:opacity .2s;display:inline-block;position:sticky;bottom:8px;left:50%;transform:translate(-50%)}.new-messages-badge:hover{opacity:.85}.message-date-separator{-webkit-user-select:none;user-select:none;align-items:center;gap:16px;padding:16px 0 8px;display:flex}.message-date-separator:before,.message-date-separator:after{content:"";background:var(--border);flex:1;height:1px}.message-date-separator-text{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1.5px;color:var(--text-dim);white-space:nowrap;font-size:11px}.typing-indicator{align-items:center;gap:8px;min-height:24px;padding:4px 16px 8px;display:flex}.typing-text{color:var(--text-dim);font-size:12px;font-style:italic}.typing-dots{align-items:center;gap:3px;display:flex}.typing-dots span{background:var(--text-dim);border-radius:50%;width:4px;height:4px;animation:1.4s ease-in-out infinite typingBounce}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.message-item{padding:4px 0;position:relative}.message-item:not(.grouped){padding-top:12px}.message-item.pinned{border-left:2px solid var(--accent);background:#ff151608;margin-left:-12px;padding-left:12px}.message-item.mentioned{background:#ff15160a;border-left:2px solid #ff151666;margin-left:-12px;padding-left:12px}.message-pinned-label{color:var(--accent);letter-spacing:2px;text-transform:uppercase;margin-bottom:4px;font-size:10px}.message-header{align-items:baseline;gap:8px;margin-bottom:2px;display:flex}.message-author{cursor:pointer;font-size:14px;font-weight:700}.message-author.admin{font-weight:900}.admin-diamond{font-size:12px}.message-time{color:var(--text-dim);font-size:11px}.message-body{position:relative}.grouped-body{padding-left:0}.message-time-hover{color:var(--text-dim);opacity:0;font-size:10px;transition:opacity .15s;position:absolute;top:2px;left:-48px}.message-item:hover .message-time-hover{opacity:1}.message-content{color:var(--text-secondary);word-break:break-word;font-size:14px;line-height:1.5}.message-content p{margin:0 0 4px}.message-content a{color:var(--accent);text-decoration:none}.message-content a:hover{text-decoration:underline}.mention-tag{color:var(--accent);cursor:default;font-weight:700}.mention-tag.mention-self{background:#ff151626;padding:1px 4px}.message-code-wrapper{margin:8px 0;position:relative}.code-copy-button{background:var(--border);border:1px solid var(--text-dim);color:var(--text-dim);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1px;cursor:pointer;opacity:.3;z-index:1;padding:2px 8px;font-size:10px;transition:opacity .15s,background .15s;position:absolute;top:6px;right:6px}.message-code-wrapper:hover .code-copy-button{opacity:1}.code-copy-button:hover{background:var(--text-dim);color:var(--text-secondary)}.message-code-block{background:var(--bg-card);border:1px solid var(--border);margin:0;padding:12px;font-size:13px;line-height:1.5;overflow-x:auto}.message-code-block code{font-family:var(--font-mono)}.message-inline-code{background:var(--bg-card);color:#f88;padding:2px 6px;font-size:13px}.hljs{color:#ccc;background:0 0!important}.hljs-keyword,.hljs-selector-tag{color:#ff7b72}.hljs-string,.hljs-attr{color:#a5d6ff}.hljs-number,.hljs-literal{color:#79c0ff}.hljs-built_in{color:#ffa657}.hljs-comment{color:#555;font-style:italic}.hljs-function,.hljs-title{color:#d2a8ff}.hljs-type,.hljs-class,.hljs-variable{color:#ffa657}.hljs-params{color:#ccc}.message-attachments{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.message-attachment-image{border:1px solid var(--border);max-width:400px;transition:border-color .15s;display:block;overflow:hidden}.message-attachment-image:hover{border-color:var(--text-dim)}.message-attachment-image img{-o-object-fit:contain;object-fit:contain;background:var(--bg-dark);width:100%;max-height:300px;display:block}.message-attachment-file{background:var(--bg-card);border:1px solid var(--border);color:var(--accent);font-family:var(--font-mono);padding:6px 12px;font-size:12px;text-decoration:none;display:inline-block}.message-attachment-file:hover{border-color:var(--accent)}.message-edited{color:var(--text-dim);margin-left:4px;font-size:11px}.message-actions-bar{border-radius:4px;gap:2px;padding:2px;display:none}.message-item:hover .message-actions-bar{display:inline-flex}@media (max-width:768px){.message-actions-bar{display:inline-flex}}.message-action-btn{border:1px dashed var(--border);width:24px;height:24px;color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;font-size:12px;transition:background .1s,color .1s,border-color .1s;display:flex}.message-action-btn:hover{background:var(--bg-card);border-color:var(--text-dim);color:var(--text-primary)}.message-action-disabled{cursor:default;opacity:.3;border-style:dotted}.message-action-disabled:hover{color:var(--text-dim);border-color:var(--border);background:0 0}.message-action-delete:hover{color:var(--accent);border-color:var(--accent)}.message-edit-container{margin-top:4px}.message-edit-input{background:var(--bg-card);border:1px solid var(--border);width:100%;color:var(--text-primary);font-family:var(--font-mono);resize:vertical;box-sizing:border-box;outline:none;min-height:40px;max-height:200px;padding:8px 12px;font-size:14px;line-height:1.4}.message-edit-input:focus{border-color:var(--text-dim)}.message-edit-actions{align-items:center;gap:8px;margin-top:6px;display:flex}.message-edit-save{background:var(--accent);color:var(--bg-dark);font-family:var(--font-mono);letter-spacing:1px;text-transform:uppercase;cursor:pointer;border:none;padding:4px 12px;font-size:11px;font-weight:700}.message-edit-cancel{border:1px solid var(--border);color:var(--text-dim);font-family:var(--font-mono);letter-spacing:1px;text-transform:uppercase;cursor:pointer;background:0 0;padding:4px 12px;font-size:11px}.message-edit-cancel:hover{color:var(--text-primary);border-color:var(--text-dim)}.message-edit-hint{color:var(--text-dim);margin-left:auto;font-size:10px}.link-preview-card{background:var(--bg-card);border-left:3px solid var(--accent);border-top:1px solid var(--border);border-right:1px solid var(--border);border-bottom:1px solid var(--border);max-width:400px;margin-top:6px;text-decoration:none;transition:border-color .15s;display:flex;overflow:hidden}.link-preview-card:hover{border-color:var(--text-dim);border-left-color:var(--accent)}.link-preview-image{-o-object-fit:cover;object-fit:cover;background:var(--bg-dark);flex-shrink:0;width:80px;min-height:80px}.link-preview-text{flex-direction:column;gap:2px;min-width:0;padding:8px 12px;display:flex;overflow:hidden}.link-preview-site{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.link-preview-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.link-preview-description{color:var(--text-dim);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.3;display:-webkit-box;overflow:hidden}.message-reactions{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.reaction-badge{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;font-family:var(--font-mono);color:var(--text-secondary);border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;transition:background .15s;display:inline-flex}.reaction-badge:hover{background:var(--bg-card);border-color:var(--text-dim)}.reaction-emoji{font-size:14px}.reaction-count{font-size:11px}.reaction-badge.active{border-color:var(--accent);background:#ff15161a}.reaction-badge.active:hover{background:#ff151626}.reaction-add-button{border:1px dashed var(--border);width:26px;height:26px;color:var(--text-dim);cursor:pointer;opacity:.3;background:0 0;border-radius:4px;justify-content:center;align-items:center;font-size:14px;transition:opacity .15s,background .15s,border-color .15s;display:inline-flex}.message-item:hover .reaction-add-button{opacity:1}.reaction-add-button:hover{background:var(--bg-card);border-color:var(--text-dim);color:var(--text-dim)}.message-reactions{position:relative}.reaction-picker{background:var(--bg-card);border:1px solid var(--border);z-index:10;border-radius:6px;grid-template-columns:repeat(5,1fr);gap:2px;margin-bottom:4px;padding:6px;display:grid;position:absolute;bottom:100%;left:0}.reaction-picker-item{cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;transition:background .1s;display:flex}.reaction-picker-item:hover{background:var(--border)}.message-input-container{border-top:1px solid var(--border);padding:12px 20px 20px}.message-input-wrapper{background:var(--bg-card);border:1px solid var(--border);transition:border-color .2s}.message-input-wrapper:focus-within{border-color:var(--text-dim)}.message-input-wrapper.over-limit{border-color:var(--accent)}.message-input{width:100%;color:var(--text-primary);font-family:var(--font-mono);resize:none;background:0 0;border:none;outline:none;min-height:20px;max-height:200px;padding:12px;font-size:14px;line-height:1.4}.message-input::placeholder{color:var(--text-dim)}.message-input-footer{justify-content:space-between;align-items:center;padding:4px 12px 8px;display:flex}.char-count{color:var(--text-dim);font-size:11px}.char-count.warning{color:#fa0}.char-count.over{color:var(--accent)}.input-hint{color:var(--text-dim);font-size:11px}.message-input-actions{align-items:center;gap:12px;display:flex}.message-send-button{background:var(--accent);color:var(--bg-dark);font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;cursor:pointer;border:none;padding:4px 12px;font-size:11px;font-weight:700;transition:opacity .2s}.message-send-button:hover:not(:disabled){opacity:.85}.message-send-button:disabled{opacity:.2;cursor:not-allowed}.message-input-wrapper{position:relative}.mention-popup{background:var(--bg-card);border:1px solid var(--border);z-index:20;max-height:210px;margin-bottom:2px;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto}.mention-popup::-webkit-scrollbar{width:4px}.mention-popup::-webkit-scrollbar-track{background:0 0}.mention-popup::-webkit-scrollbar-thumb{background:var(--border)}.mention-item{width:100%;font-family:var(--font-mono);color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:background .1s;display:flex}.mention-item:hover,.mention-item.selected{background:var(--bg-dark)}.mention-status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.mention-username{color:var(--text-primary);font-weight:700}.mention-username.admin{color:var(--accent);font-weight:900}.mention-name{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.mention-empty{font-family:var(--font-mono);color:var(--text-dim);padding:10px 12px;font-size:12px}.comms-members-sidebar{background:var(--bg-card);border-left:1px solid var(--border);flex-shrink:0;width:200px;overflow-y:auto}.member-list{padding:8px 0}.member-list-header{color:var(--text-dim);letter-spacing:2px;text-transform:uppercase;padding:20px 16px 12px;font-size:10px;font-weight:700}.member-group{margin-bottom:12px}.member-group-label{color:var(--text-dim);letter-spacing:1px;padding:8px 16px 4px;font-size:10px}.member-item{align-items:center;gap:8px;padding:4px 16px;display:flex}.member-status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.member-status-dot.online{background:#4caf50}.member-status-dot.away{background:#ff9800}.member-status-dot.offline{background:var(--text-dim)}.member-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.member-name.admin{font-weight:900}.member-list-empty{color:var(--text-dim);text-align:center;padding:16px;font-size:12px}.comms-mobile-backdrop{display:none}body:has(.comms-layout) .mobile-banner{display:none!important}@media (max-width:768px){.comms-layout{flex-direction:column;padding-top:48px}.comms-mobile-header{padding-top:max(12px, env(safe-area-inset-top));padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right))}.comms-sidebar{z-index:90;width:280px;position:fixed;top:48px;bottom:0;left:0;box-shadow:4px 0 20px #00000080}.comms-sidebar.hidden{display:none}.comms-members-sidebar{z-index:90;width:240px;position:fixed;top:48px;bottom:0;right:0;box-shadow:-4px 0 20px #00000080}.comms-channel-header{display:none}.message-stream{padding:0 12px 12px}.message-input-container{background:var(--bg-dark);padding:8px 12px;padding-bottom:max(12px, env(safe-area-inset-bottom));z-index:5;position:sticky;bottom:0}.message-time-hover{opacity:.5;margin-bottom:2px;font-size:10px;position:static}.comms-mobile-backdrop{z-index:80;background:#00000080;display:block;position:fixed;inset:0}}.message-stream::-webkit-scrollbar{width:6px}.comms-sidebar::-webkit-scrollbar{width:6px}.comms-members-sidebar::-webkit-scrollbar{width:6px}.message-stream::-webkit-scrollbar-track{background:0 0}.comms-sidebar::-webkit-scrollbar-track{background:0 0}.comms-members-sidebar::-webkit-scrollbar-track{background:0 0}.message-stream::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.comms-sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.comms-members-sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.message-stream::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.comms-sidebar::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.comms-members-sidebar::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.comms-status-dot{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-left:8px;display:inline-block}.comms-status-dot.connected{background:#4caf50}.comms-status-dot.disconnected{background:var(--accent);animation:1.5s ease-in-out infinite pulse}.showcase-toolbar{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;margin-bottom:16px;padding-bottom:12px;display:flex}.showcase-toolbar-sort{gap:4px;display:flex}.showcase-sort-btn{border:1px solid var(--border);color:var(--text-dim);font-family:var(--font-mono);cursor:pointer;letter-spacing:.5px;background:0 0;padding:5px 12px;font-size:11px;transition:color .15s,border-color .15s}.showcase-sort-btn:hover{color:var(--text-primary);border-color:var(--text-dim)}.showcase-sort-btn.active{color:var(--bg-dark);background:var(--accent);border-color:var(--accent)}.showcase-toolbar-filters{flex-wrap:wrap;gap:6px;display:flex}.showcase-vertical-chip{border:1px solid var(--border);color:var(--text-dim);font-family:var(--font-mono);cursor:pointer;letter-spacing:.5px;background:0 0;padding:4px 10px;font-size:11px;transition:color .15s,border-color .15s}.showcase-vertical-chip:hover{color:var(--text-primary);border-color:var(--text-dim)}.showcase-vertical-chip.active{color:var(--text-primary);border-color:var(--text-primary)}.showcase-active-filter{align-items:center;gap:8px;display:flex}.showcase-active-filter-label{font-family:var(--font-mono);color:var(--accent);letter-spacing:.5px;font-size:11px}.showcase-active-filter-clear{border:1px solid var(--accent);color:var(--accent);font-family:var(--font-mono);cursor:pointer;letter-spacing:.5px;background:0 0;padding:2px 8px;font-size:10px;transition:background .15s}.showcase-active-filter-clear:hover{background:#ff15161a}.showcase-stream{flex:1;padding:16px 20px;overflow-y:auto}.showcase-stream.loading{justify-content:center;align-items:center;display:flex}.showcase-stream-loading{color:var(--text-dim);text-align:center;font-size:12px}.showcase-stream-empty{height:100%;color:var(--text-dim);justify-content:center;align-items:center;font-size:13px;font-style:italic;display:flex}.showcase-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.showcase-load-more{border:1px solid var(--border);width:100%;color:var(--text-dim);font-family:var(--font-mono);cursor:pointer;letter-spacing:1px;background:0 0;margin-top:16px;padding:10px;font-size:12px;display:block}.showcase-load-more:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-dim)}.showcase-load-more:disabled{opacity:.5;cursor:not-allowed}.showcase-card{background:var(--bg-card);border:1px solid var(--border);transition:border-color .2s}.showcase-card:hover{border-color:var(--text-dim)}.showcase-card-media{aspect-ratio:16/9;background:var(--bg-dark);position:relative;overflow:hidden}.showcase-card-media:before{content:"";pointer-events:none;z-index:1;background:url(/images/icons/Ludos_Loop_Web.webp) 50%/contain no-repeat;width:24px;height:24px;transition:opacity .4s;animation:2s ease-in-out infinite mediaLoaderPulse;position:absolute;top:50%;left:50%}.showcase-card-media[data-loaded]:before{opacity:0;animation:none}.showcase-card-image{-o-object-fit:cover;object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .4s;display:block}.showcase-card-media[data-loaded] .showcase-card-image{opacity:1}.showcase-card-video{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.showcase-card-link{color:var(--accent);word-break:break-all;padding:8px 12px;font-size:12px;text-decoration:none;display:block}.showcase-card-link:hover{text-decoration:underline}.showcase-card-content{padding:16px}.showcase-card-title{color:var(--text-primary);margin:0 0 8px;font-size:16px;font-weight:700}.showcase-card-meta{align-items:center;gap:12px;margin-bottom:8px;display:flex}.showcase-card-author{font-size:13px;font-weight:700}.showcase-card-date{color:var(--text-dim);font-size:11px}.showcase-card-description{color:var(--text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 12px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.showcase-card-footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.showcase-card-tags{flex-wrap:wrap;gap:6px;display:flex}.showcase-tag{background:var(--bg-card);border:1px solid var(--border);color:var(--text-dim);letter-spacing:.5px;padding:2px 8px;font-size:11px;display:inline-block}.showcase-tag.clickable-tag{cursor:pointer;transition:color .15s,border-color .15s}.showcase-tag.clickable-tag:hover{border-color:var(--accent);color:var(--accent)}.showcase-tag.removable{cursor:pointer}.showcase-tag.removable:hover{border-color:var(--accent);color:var(--accent)}.showcase-card-footer-right{align-items:center;gap:8px;margin-left:auto;display:flex}.showcase-card-notif-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s ease-in-out infinite notifPulse;display:inline-block}@keyframes notifPulse{0%,to{opacity:1;box-shadow:0 0 #ff151666}50%{opacity:.7;box-shadow:0 0 0 4px #ff151600}}.showcase-card-comments{color:var(--text-dim);font-size:11px}.showcase-submit-collapsed{border-top:1px solid var(--border);padding:12px 20px 20px}.showcase-submit-trigger{background:var(--bg-card);border:1px dashed var(--border);width:100%;color:var(--text-dim);font-family:var(--font-mono);cursor:pointer;padding:12px;font-size:13px;transition:color .2s,border-color .2s}.showcase-submit-trigger:hover{color:var(--text-primary);border-color:var(--text-dim)}.showcase-submit-form{border-top:1px solid var(--border);background:var(--bg-dark);padding:16px 20px 20px}.showcase-submit-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.showcase-submit-title{color:var(--accent);letter-spacing:2px;text-transform:uppercase;font-size:12px;font-weight:700}.showcase-submit-close{color:var(--text-dim);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;font-size:14px}.showcase-submit-close:hover{color:var(--text-primary)}.showcase-input,.showcase-textarea{background:var(--bg-card);border:1px solid var(--border);width:100%;color:var(--text-primary);font-family:var(--font-mono);outline:none;margin-bottom:8px;padding:10px 12px;font-size:13px;transition:border-color .2s}.showcase-input:focus,.showcase-textarea:focus{border-color:var(--text-dim)}.showcase-textarea{resize:vertical;min-height:60px;max-height:200px;line-height:1.4}.showcase-input::-moz-placeholder{color:var(--text-dim)}.showcase-textarea::-moz-placeholder{color:var(--text-dim)}.showcase-input::placeholder,.showcase-textarea::placeholder{color:var(--text-dim)}.showcase-tags-section{margin-bottom:12px}.showcase-tags-input-row{gap:4px;display:flex}.showcase-tag-input{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);font-family:var(--font-mono);outline:none;flex:1;padding:6px 10px;font-size:12px}.showcase-tag-input:focus{border-color:var(--text-dim)}.showcase-tag-input::placeholder{color:var(--text-dim)}.showcase-tag-add{background:var(--bg-card);border:1px solid var(--border);color:var(--text-dim);font-family:var(--font-mono);cursor:pointer;padding:4px 10px;font-size:14px}.showcase-tag-add:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-dim)}.showcase-tag-add:disabled{opacity:.3;cursor:not-allowed}.showcase-tags-list{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.showcase-submit-success{text-align:center;color:#4caf50;letter-spacing:1px;text-transform:uppercase;padding:10px;font-size:12px}.showcase-submit-error{color:var(--accent);margin-bottom:8px;font-size:12px}.showcase-submit-hints{font-family:var(--font-mono);color:var(--text-dim);flex-direction:column;gap:2px;margin-bottom:8px;font-size:11px;display:flex}.showcase-submit-button{background:var(--accent);width:100%;color:var(--bg-dark);font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;cursor:pointer;border:none;padding:12px;font-size:13px;font-weight:700;transition:opacity .2s}.showcase-submit-button:hover:not(:disabled){opacity:.9}.showcase-submit-button:disabled{opacity:.3;cursor:not-allowed}.showcase-upload-section{margin-bottom:8px}.showcase-upload-button{background:var(--bg-card);border:1px dashed var(--border);width:100%;color:var(--text-dim);font-family:var(--font-mono);cursor:pointer;padding:10px;font-size:12px;transition:color .2s,border-color .2s}.showcase-upload-button:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-dim)}.showcase-upload-button:disabled{opacity:.3;cursor:not-allowed}.showcase-upload-previews{gap:8px;margin-top:8px;display:flex}.showcase-upload-preview{width:80px;height:80px;position:relative}.showcase-upload-preview img{-o-object-fit:cover;object-fit:cover;border:1px solid var(--border);width:100%;height:100%}.showcase-upload-remove{background:var(--bg-dark);border:1px solid var(--text-dim);width:18px;height:18px;color:var(--accent);cursor:pointer;justify-content:center;align-items:center;font-size:10px;display:flex;position:absolute;top:2px;right:2px}.showcase-card.clickable{cursor:pointer}.showcase-card.clickable:hover{border-color:var(--accent);transition:border-color .2s,transform .2s;transform:translateY(-1px)}.showcase-card-project-link{color:var(--accent);font-size:12px;font-family:var(--font-mono);margin-bottom:8px;padding:4px 0;text-decoration:none;display:inline-block}.showcase-card-project-link:hover{text-decoration:underline}.showcase-detail-backdrop{z-index:100;background:#000c;justify-content:center;align-items:center;padding:40px;display:flex;position:fixed;inset:0}.showcase-detail-modal{background:var(--bg-dark);border:1px solid var(--border);width:100%;max-width:700px;max-height:90vh;position:relative;overflow-y:auto}.showcase-detail-close{background:var(--bg-dark);border:1px solid var(--border);width:32px;height:32px;color:var(--text-dim);font-family:var(--font-mono);cursor:pointer;z-index:1;justify-content:center;align-items:center;font-size:16px;transition:color .2s,border-color .2s;display:flex;position:absolute;top:12px;right:12px}.showcase-detail-close:hover{color:var(--text-primary);border-color:var(--text-dim)}.showcase-detail-loading{text-align:center;color:var(--text-dim);padding:60px;font-size:13px}.showcase-detail-media{background:var(--bg-dark);flex-direction:column;gap:2px;min-height:120px;display:flex;position:relative}.showcase-detail-media:before{content:"";pointer-events:none;z-index:1;background:url(/images/icons/Ludos_Loop_Web.webp) 50%/contain no-repeat;width:28px;height:28px;transition:opacity .4s;animation:2s ease-in-out infinite mediaLoaderPulse;position:absolute;top:50%;left:50%}.showcase-detail-media[data-loaded]:before{opacity:0;animation:none}.showcase-detail-image{-o-object-fit:contain;object-fit:contain;opacity:0;width:100%;max-height:400px;transition:opacity .4s;display:block}.showcase-detail-media[data-loaded] .showcase-detail-image{opacity:1}.showcase-detail-video{opacity:0;width:100%;max-height:400px;transition:opacity .4s;display:block}.showcase-detail-media[data-loaded] .showcase-detail-video{opacity:1}.showcase-detail-content{padding:20px}.showcase-detail-title{color:var(--text-primary);margin:0 0 8px;font-size:20px;font-weight:700}.showcase-detail-meta{align-items:center;gap:12px;margin-bottom:12px;font-size:13px;display:flex}.showcase-detail-date{color:var(--text-dim);font-size:11px}.showcase-detail-description{color:var(--text-secondary);margin:0 0 12px;font-size:14px;line-height:1.6}.showcase-detail-project-link{border:1px solid var(--accent);color:var(--accent);font-family:var(--font-mono);background:#ff15161a;margin-bottom:12px;padding:6px 12px;font-size:12px;text-decoration:none;transition:background .2s;display:inline-block}.showcase-detail-project-link:hover{background:#ff151633}.showcase-detail-tags{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.showcase-detail-comments{border-top:1px solid var(--border);padding:16px 20px 20px}.showcase-detail-comments-header{color:var(--text-dim);letter-spacing:1px;text-transform:uppercase;margin-bottom:12px;font-size:12px}.showcase-detail-no-comments{color:var(--text-dim);margin-bottom:12px;font-size:13px;font-style:italic}.showcase-comment{border-bottom:1px solid var(--bg-card);margin-bottom:12px;padding-bottom:12px}.showcase-comment:last-of-type{border-bottom:none}.showcase-comment-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.showcase-comment-date{color:var(--text-dim);font-size:10px}.showcase-comment-content{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.showcase-comment-input-row{gap:8px;margin-top:12px;display:flex}.showcase-comment-input{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);font-family:var(--font-mono);resize:none;outline:none;flex:1;min-height:36px;padding:8px 12px;font-size:13px;transition:border-color .2s}.showcase-comment-input:focus{border-color:var(--text-dim)}.showcase-comment-input::placeholder{color:var(--text-dim)}.showcase-comment-submit{background:var(--accent);color:var(--bg-dark);font-family:var(--font-mono);cursor:pointer;border:none;align-self:flex-end;padding:8px 16px;font-size:12px;font-weight:700;transition:opacity .2s}.showcase-comment-submit:hover:not(:disabled){opacity:.9}.showcase-comment-submit:disabled{opacity:.3;cursor:not-allowed}.showcase-detail-owner-actions{gap:8px;margin-left:auto;display:flex}.showcase-action-btn{color:var(--text-dim);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:11px;transition:color .2s}.showcase-action-btn:hover{color:var(--text-primary)}.showcase-action-btn.danger{color:var(--accent)}.showcase-action-btn.danger:hover{color:#f44}.showcase-action-btn:disabled{opacity:.4;cursor:not-allowed}.showcase-edit-form{flex-direction:column;gap:0;display:flex}.showcase-edit-form .showcase-tags-section{margin-top:4px;margin-bottom:8px}.showcase-edit-error{color:var(--accent);margin-bottom:8px;font-size:12px}.showcase-edit-actions{gap:8px;display:flex}.showcase-edit-save{background:var(--accent);color:var(--bg-dark);font-family:var(--font-mono);cursor:pointer;border:none;padding:8px 20px;font-size:12px;font-weight:700;transition:opacity .2s}.showcase-edit-save:hover:not(:disabled){opacity:.9}.showcase-edit-save:disabled{opacity:.4;cursor:not-allowed}.showcase-edit-cancel{border:1px solid var(--border);color:var(--text-dim);font-family:var(--font-mono);cursor:pointer;background:0 0;padding:8px 20px;font-size:12px;transition:color .2s,border-color .2s}.showcase-edit-cancel:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-dim)}.showcase-edit-cancel:disabled{opacity:.4;cursor:not-allowed}.showcase-delete-confirm{border-top:1px solid var(--border);background:#ff151614;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.showcase-delete-confirm-text{color:var(--accent);font-size:13px;font-family:var(--font-mono)}.showcase-delete-confirm-actions{flex-shrink:0;gap:8px;display:flex}@media (max-width:768px){.showcase-detail-backdrop{padding:0}.showcase-detail-modal{height:100vh;max-height:100vh}.showcase-delete-confirm{flex-direction:column;align-items:flex-start}}.comms-vibes-scroll{flex:1;padding:16px 20px;overflow-y:auto}.comms-vibes-loading{color:var(--text-dim);flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.comms-vibes-empty{color:var(--text-dim);flex:1;justify-content:center;align-items:center;font-size:13px;font-style:italic;display:flex}.comms-vibes-masonry{-moz-columns:3;columns:3;-moz-column-gap:12px;column-gap:12px}.comms-vibe-card{-moz-column-break-inside:avoid;break-inside:avoid;background:var(--bg-card);border:1px solid var(--border);margin-bottom:12px;transition:border-color .2s;overflow:hidden}.comms-vibe-card:hover{border-color:var(--text-dim)}.comms-vibe-media{background:var(--bg-dark);width:100%;overflow:hidden}.comms-vibe-media img{width:100%;height:auto;display:block}.comms-vibe-media video{width:100%;display:block}.comms-vibe-link{color:var(--accent);align-items:center;gap:8px;padding:16px;text-decoration:none;transition:background .2s;display:flex}.comms-vibe-link:hover{background:#ff15160d}.comms-vibe-link-icon{font-size:16px}.comms-vibe-link-url{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.comms-vibe-info{padding:12px}.comms-vibe-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-primary);margin:0 0 4px;font-size:12px;font-weight:700}.comms-vibe-description{color:var(--text-dim);margin:0;font-size:12px;line-height:1.4}.comms-vibe-creator{color:var(--text-dim);letter-spacing:1px;text-transform:uppercase;border-top:1px solid var(--border);padding:8px 12px;font-size:10px}@media (max-width:1200px){.comms-vibes-masonry{-moz-columns:2;columns:2}}@media (max-width:768px){.comms-vibes-masonry{-moz-columns:1;columns:1}.comms-vibes-scroll{padding:12px}}
