.portal-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#0f0f13;color:#fff;font-family:sans-serif;padding:20px}.portal-content{text-align:center;max-width:800px;width:100%}.portal-title{font-size:2.5rem;margin-bottom:10px;color:#a78bfa}.portal-subtitle{color:#a0aec0;margin-bottom:40px}.portal-grid{display:flex;gap:20px;justify-content:center;flex-wrap:wrap}.portal-card{background-color:#1a1a24;border:1px solid #2d2d3d;border-radius:12px;padding:30px;width:300px;transition:transform .2s,border-color .2s;display:flex;flex-direction:column;justify-content:space-between}.portal-card.active:hover{transform:translateY(-5px);border-color:#a78bfa;cursor:pointer}.portal-card h2{margin-top:0;color:#fff}.portal-card p{color:#a0aec0;font-size:.9rem;line-height:1.4;margin-bottom:20px}.portal-btn{background-color:#a78bfa;color:#111;border:none;padding:10px 15px;border-radius:6px;font-weight:700;cursor:pointer;transition:background-color .2s}.portal-card.active:hover .portal-btn{background-color:#c4b5fd}.portal-card.disabled{opacity:.6;cursor:not-allowed}.disabled-btn{background-color:#333;color:#777;cursor:not-allowed}.welcome-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:radial-gradient(circle at 50% 25%,rgba(193,104,58,.08) 0%,transparent 60%),var(--bg-deep, #171018);color:var(--ink, #f2e9e4)}.welcome-content{width:100%;max-width:360px;display:flex;flex-direction:column;align-items:center;text-align:center}.welcome-tagline{font-style:italic;font-size:.875rem;color:var(--ink-muted, #b8a8ae);margin-bottom:8px}.welcome-title{font-family:var(--font-display, serif);font-size:clamp(3rem,12vw,3.75rem);font-weight:600;line-height:1.1;letter-spacing:-.02em;margin-bottom:12px;color:var(--ink, #f2e9e4)}.welcome-desc{font-size:.9375rem;line-height:1.5;color:var(--ink-muted, #b8a8ae);margin-bottom:28px}.auth-form{width:100%;display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.auth-error{background:#b5555a26;border:1px solid var(--danger, #b5555a);color:#fca5a5;padding:10px 14px;border-radius:var(--radius-sm, 6px);font-size:.875rem;text-align:left}.auth-field input{width:100%;background:var(--bg-panel, #1f1720);border:1px solid var(--line, #3a2d3d);border-radius:var(--radius-md, 10px);padding:12px 14px;color:var(--ink, #f2e9e4);font-size:.9375rem;box-sizing:border-box;transition:border-color .2s,background .2s}.auth-field input:focus{outline:none;border-color:var(--ember-bright, #e08a52);background:var(--bg-panel-raised, #291f2c)}.auth-field input::placeholder{color:#b8a8ae99}.auth-btn{width:100%;background:var(--ember, #c1683a);color:#fff;border:none;border-radius:var(--radius-md, 10px);padding:12px;font-size:.9375rem;font-weight:600;cursor:pointer;margin-top:4px;transition:background .2s}.auth-btn:hover:not(:disabled){background:var(--ember-bright, #e08a52)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-toggle-btn{background:none;border:none;color:var(--ember-bright, #e08a52);font-size:.875rem;cursor:pointer;padding:8px;margin-bottom:24px;text-decoration:underline;text-underline-offset:4px}.auth-toggle-btn:hover{color:var(--ink, #f2e9e4)}.welcome-footer{font-size:.8125rem;color:var(--ink-muted, #b8a8ae);opacity:.7;line-height:1.5}.friends-modal{max-width:440px;width:90%;padding:20px}.friends-modal__tabs{display:flex;gap:10px;border-bottom:1px solid var(--border);margin-bottom:16px}.friends-tab{background:none;border:none;color:var(--text-dim);font-size:.9rem;padding:8px 12px;cursor:pointer;position:relative}.friends-tab.is-active{color:#c084fc;font-weight:600;border-bottom:2px solid #a855f7}.friends-modal__content{max-height:350px;overflow-y:auto}.friends-empty{text-align:center;color:var(--text-faint);font-size:.85rem;padding:30px 10px}.friends-list{display:flex;flex-direction:column;gap:10px}.friend-item{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px}.friend-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover}.friend-info{flex:1;display:flex;flex-direction:column}.friend-name{color:var(--text);font-size:.9rem;font-weight:600}.friend-status{font-size:.75rem;color:#34d399}.friend-sub{font-size:.75rem;color:var(--text-dim)}.friend-actions{display:flex;gap:6px}.hamburger-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);width:38px;height:38px;border-radius:8px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer;position:relative;transition:background .2s}.hamburger-btn:hover{background:#ffffff24}.hamburger-line{width:18px;height:2px;background-color:#f3f0f7;border-radius:2px}.hamburger-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;background:#ef4444;border-radius:50%}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex}.drawer-panel{width:280px;background:#150f1d;border-right:1px solid #2d213b;height:100%;display:flex;flex-direction:column;padding:20px;box-shadow:5px 0 25px #00000080;animation:slide-in .25s ease-out}@keyframes slide-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.drawer-title{font-family:Cinzel,serif;font-size:1.3rem;color:#c084fc;font-weight:700}.drawer-close{background:none;border:none;color:var(--text-dim);font-size:1.2rem;cursor:pointer}.drawer-user{display:flex;align-items:center;gap:12px;padding:12px;background:#ffffff0a;border-radius:10px;margin-bottom:24px}.drawer-user__avatar{width:44px;height:44px;border-radius:50%;object-fit:cover}.drawer-user__info strong{display:block;font-size:.95rem;color:#f3f0f7}.drawer-user__info span{font-size:.75rem;color:#34d399}.drawer-nav{display:flex;flex-direction:column;gap:8px;flex:1}.drawer-nav__item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:transparent;border:none;border-radius:8px;color:#e5e0ea;font-size:.92rem;cursor:pointer;text-align:left;transition:background .15s}.drawer-nav__item:hover{background:#a855f71f;color:#c084fc}.drawer-badge{background:#ef4444;color:#fff;font-size:.72rem;padding:2px 7px;border-radius:10px;font-weight:700}.drawer-footer{padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}.drawer-logout{width:100%;text-align:center}.drawer-nav__item--highlight{background:linear-gradient(135deg,#a855f733,#6366f126);border:1px solid rgba(168,85,247,.4);color:#e9d5ff!important;font-weight:600}.drawer-badge--apk{background:#a855f7!important;color:#fff!important;font-size:.65rem;letter-spacing:.5px;font-weight:700}.drawer-socials{padding:16px 20px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:10px}.drawer-socials__title{font-size:.72rem;text-transform:uppercase;color:#9ca3af;letter-spacing:1px;font-weight:600}.drawer-socials__links{display:flex;flex-wrap:wrap;gap:8px}.social-pill{display:inline-flex;align-items:center;padding:6px 12px;border-radius:20px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#e2e8f0;text-decoration:none;font-size:.8rem;transition:all .2s ease}.social-pill:hover{background:#a855f733;border-color:#a855f7;color:#fff;transform:translateY(-1px)}.social-pill--discord:hover{background:#5865f240;border-color:#5865f2}.social-pill--whatsapp:hover{background:#25d36633;border-color:#25d366}.drawer-support{margin:12px 16px 4px;padding:14px;background:linear-gradient(135deg,#ff424d26,#a855f726);border:1px solid rgba(255,66,77,.35);border-radius:12px;display:flex;flex-direction:column;gap:8px}.drawer-support__heading{font-size:.85rem;font-weight:700;color:#ffa4aa;display:block}.drawer-support__text p{margin:4px 0 0;font-size:.74rem;color:#cbd5e1;line-height:1.4}.drawer-support__btn{display:flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:8px;background:#ff424d;color:#fff;font-size:.82rem;font-weight:700;text-decoration:none;transition:all .2s ease;box-shadow:0 4px 14px #ff424d59;margin-top:4px}.drawer-support__btn:hover{background:#ff5b65;transform:translateY(-1px);box-shadow:0 6px 18px #ff424d80}.social-pill--facebook:hover{background:#1877f240;border-color:#1877f2}.social-pill--blog:hover{background:#f9731640;border-color:#f97316}.notif-bell-container{position:relative;display:inline-flex;align-items:center}.notif-bell-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:#fff;font-size:1.15rem;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:background .2s}.notif-bell-btn:hover{background:#ffffff29}.notif-bell-btn--active{animation:bell-bounce 1.2s infinite ease-in-out}@keyframes bell-bounce{0%,to{transform:rotate(0)}15%{transform:rotate(12deg)}30%{transform:rotate(-12deg)}45%{transform:rotate(8deg)}60%{transform:rotate(-8deg)}75%{transform:rotate(0)}}.notif-bell-badge{position:absolute;top:-3px;right:-3px;background:#ef4444;color:#fff;font-size:.68rem;font-weight:700;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #140d1a}.notif-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:300px;background:#1e1327;border:1px solid #3c294e;border-radius:12px;box-shadow:0 10px 25px #0000008c;z-index:1000;overflow:hidden}.notif-dropdown__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#00000040;border-bottom:1px solid #3c294e;font-size:.88rem;font-weight:600;color:#e9d5ff}.notif-clear-btn{background:none;border:none;color:#a855f7;font-size:.75rem;cursor:pointer}.notif-dropdown__list{max-height:320px;overflow-y:auto}.notif-empty{padding:24px;text-align:center;font-size:.82rem;color:#a395b0}.notif-item{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background .15s}.notif-item:hover{background:#a855f71f}.notif-item__top{display:flex;justify-content:space-between;font-size:.78rem;margin-bottom:4px}.notif-item__room{color:#c084fc;font-weight:600}.notif-item__time{color:#7e6f88;font-size:.72rem}.notif-item__body{font-size:.82rem;color:#e5e0ea;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-item--unread{background:#a855f714;border-left:3px solid #a855f7}.room-details-modal{background:#161224;border:1px solid rgba(168,85,247,.25);border-radius:16px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;padding:0;position:relative;box-shadow:0 12px 40px #000000d9;display:flex;flex-direction:column}.room-details__close-btn{position:absolute;top:14px;right:14px;z-index:10;background:#0009;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#fff;border:none;cursor:pointer}.room-details__hero-cover{width:100%;height:180px;background-size:cover;background-position:center;border-bottom:1px solid rgba(168,85,247,.2)}.room-details__body{padding:20px;display:flex;flex-direction:column;gap:14px}.room-details__title{font-size:1.4rem;color:#f3f4f6;margin:0;font-weight:700}.room-details__creator{font-size:.85rem;color:#a855f7}.room-details__meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}.room-details__badge{background:#231d36;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px 12px;display:flex;flex-direction:column;gap:2px}.badge-label{font-size:.75rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.5px}.badge-val{font-size:.85rem;color:#e2e8f0;font-weight:600}.room-details__lore-section{display:flex;flex-direction:column;gap:6px}.room-details__lore-section label{font-size:.85rem;color:#cbd5e1;font-weight:600}.room-details__lore-box{background:#0f0c1b;border:1px solid rgba(168,85,247,.2);border-radius:8px;padding:12px;max-height:180px;overflow-y:auto;white-space:pre-wrap;word-break:break-word;font-size:.9rem;color:#e2e8f0;line-height:1.5}.room-details__footer{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.announcements-modal{background:#140f24;border:1px solid rgba(168,85,247,.3);border-radius:16px;width:100%;max-width:580px;max-height:85vh;display:flex;flex-direction:column;padding:0;box-shadow:0 16px 45px #000000e6;overflow:hidden}.announcements__header{padding:18px 20px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;background:#ffffff05}.announcements__title-box{display:flex;align-items:center;gap:12px}.announcements__icon{font-size:1.8rem}.announcements__title-box h2{font-size:1.25rem;color:#f3f4f6;margin:0}.announcements__title-box p{font-size:.78rem;color:#9ca3af;margin:2px 0 0}.announcements__list{padding:16px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.announcements__loading,.announcements__empty{text-align:center;color:#9ca3af;padding:30px 0;font-size:.9rem}.ann-card{background:#1e1833;border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;transition:transform .2s ease,border-color .2s ease}.ann-card--pinned{border-color:#a855f773;background:linear-gradient(145deg,#241a3d,#1b142e)}.ann-card__header{display:flex;justify-content:space-between;align-items:center}.ann-card__tags{display:flex;gap:6px;align-items:center}.ann-tag{font-size:.7rem;font-weight:700;padding:3px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.4px}.ann-tag--pinned{background:#eab30833;color:#facc15;border:1px solid rgba(234,179,8,.4)}.ann-tag--news{background:#a855f733;color:#d8b4fe;border:1px solid rgba(168,85,247,.35)}.ann-tag--patch{background:#3b82f633;color:#93c5fd;border:1px solid rgba(59,130,246,.35)}.ann-tag--event{background:#10b98133;color:#6ee7b7;border:1px solid rgba(16,185,129,.35)}.ann-tag--maint{background:#ef444433;color:#fca5a5;border:1px solid rgba(239,68,68,.35)}.ann-card__time{font-size:.75rem;color:#9ca3af}.ann-card__title{font-size:1.05rem;color:#f9fafb;margin:0;font-weight:600}.ann-card__content{font-size:.88rem;color:#cbd5e1;line-height:1.5;margin:0;white-space:pre-wrap}.room-card{display:block;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:var(--space-5);text-decoration:none;color:var(--text);transition:border-color .15s ease,transform .15s ease}.room-card:hover,.room-card:focus-visible{border-color:var(--accent-dim);transform:translateY(-1px)}.room-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.room-card__title{font-size:1.3rem;color:var(--text)}.room-card__badge{flex-shrink:0;font-family:var(--font-ui);font-size:.7rem;padding:3px 10px;border-radius:999px;white-space:nowrap;margin-top:4px}.room-card__badge--public{background:var(--accent-dim);color:var(--accent-hover)}.room-card__badge--private{background:var(--surface-raised);color:var(--text-dim);border:1px solid var(--border)}.room-card__description{color:var(--text-dim);font-size:.95rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.room-card__meta{margin-top:var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-1);font-size:.8rem;color:var(--text-faint)}.room-card__dot{opacity:.5}.room-card__expiry{color:var(--warn);opacity:.85}.msg-dialogue{font-weight:600;color:#f1f5f9}.msg-action{font-style:italic;color:#94a3b8}.message--own .msg-dialogue{color:#fff}.message--own .msg-action{color:#cbd5e1}.room-card__creator-status{display:flex;align-items:center;gap:6px;font-size:.85rem;color:#94a3b8}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.status-dot--online{background-color:#22c55e;box-shadow:0 0 6px #22c55e99}.status-dot--away{background-color:#f97316;box-shadow:0 0 6px #f9731699}.status-dot--offline{background-color:#64748b}.room-card__requested-tag{font-size:.85rem;color:#f59e0b;background:#f59e0b1a;padding:4px 10px;border-radius:6px;border:1px solid rgba(245,158,11,.3)}.btn--sm{padding:6px 12px;font-size:.85rem}.room-card--unread{border-color:#ef444473!important;box-shadow:0 0 12px #ef44442e}.room-card__badge--new-msg{background:#ef444433!important;border:1px solid #ef4444!important;color:#fca5a5!important;font-weight:600;animation:pulse-badge 1.6s infinite ease-in-out}.btn--unread-active{background:#dc2626!important;color:#fff!important;font-weight:600;box-shadow:0 0 8px #dc262680;animation:pulse-badge 1.6s infinite ease-in-out}@keyframes pulse-badge{0%{transform:scale(1);opacity:1}50%{transform:scale(1.04);opacity:.85}to{transform:scale(1);opacity:1}}.unread-dot{font-size:.85rem;margin-left:8px;color:#f87171;animation:pulse-badge 1.4s infinite}.room-card--has-cover{position:relative;overflow:hidden;padding:0!important}.room-card__cover{height:120px;background-size:cover;background-position:center;position:relative}.room-card__cover-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#100c1833,#171124)}.room-card--has-cover .room-card__body{padding:12px 18px 16px}.room-card__desc-wrapper{margin:6px 0 12px}.room-card__desc.is-clamped{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.room-card__desc.is-expanded{white-space:pre-wrap;animation:fadeIn .2s ease-in-out}.room-card__expand-btn{background:none;border:none;color:#a855f7;font-size:.76rem;font-weight:600;cursor:pointer;padding:0;margin-top:4px;display:inline-block;transition:color .2s}.room-card__expand-btn:hover{color:#c084fc;text-decoration:underline}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px;box-sizing:border-box}.create-room-modal{background:#161224;border:1px solid rgba(168,85,247,.25);border-radius:16px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;padding:24px;box-sizing:border-box;box-shadow:0 10px 40px #000c;display:flex;flex-direction:column}.modal__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal__header h2{font-size:1.25rem;font-weight:700;color:#f3f4f6;margin:0}.modal__close{background:transparent;border:none;color:#9ca3af;font-size:1.2rem;cursor:pointer;padding:4px;line-height:1}.modal__close:hover{color:#fff}.create-room-form{display:flex;flex-direction:column;gap:14px;width:100%}.form-group{display:flex;flex-direction:column;gap:6px;width:100%;box-sizing:border-box}.form-group label{font-size:.85rem;font-weight:600;color:#d1d5db}.form-group input,.form-group textarea,.form-group select{width:100%;box-sizing:border-box;padding:10px 14px;background:#231d36;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:#fff;font-size:.9rem;outline:none;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:#8b5cf6}.cover-upload-box{width:100%;height:110px;border:2px dashed rgba(168,85,247,.4);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;background-size:cover;background-position:center;color:#c084fc;font-size:.85rem;text-align:center;padding:10px;box-sizing:border-box;background-color:#a855f70d}.cover-upload-box:hover{border-color:#a855f7}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;box-sizing:border-box}@media (max-width: 440px){.form-row{grid-template-columns:1fr}}.modal__footer{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.lobby{max-width:1080px;margin:0 auto;padding:24px 20px 100px;color:#e2e8f0}.lobby__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.lobby__brand h1{font-size:2rem;font-weight:800;margin:0;background:linear-gradient(135deg,#a855f7,#6366f1);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.lobby__online-badge{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:#94a3b8}.lobby__online-dot{width:8px;height:8px;background-color:#22c55e;border-radius:50%;box-shadow:0 0 8px #22c55e}.lobby__user{display:flex;align-items:center;gap:12px}.lobby__avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;border:2px solid #334155}.lobby__username{font-weight:600;color:#f8fafc}.lobby__logout{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:.9rem;margin-left:8px}.lobby__logout:hover{color:#ef4444}.lobby__hero-banner{position:relative;display:flex;justify-content:space-between;align-items:center;padding:24px 32px;background:linear-gradient(135deg,#7c3aed40,#4f46e540);border:1px solid rgba(168,85,247,.45);border-radius:16px;margin-bottom:28px;cursor:pointer;box-shadow:0 8px 32px #7c3aed33,inset 0 1px #ffffff26;transition:all .25s ease;overflow:hidden}.lobby__hero-banner:hover{transform:translateY(-2px);border-color:#a855f7cc;box-shadow:0 12px 40px #7c3aed59,inset 0 1px #ffffff40}.lobby__hero-tag{display:inline-block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#c084fc;background:#c084fc1f;padding:4px 10px;border-radius:20px;border:1px solid rgba(192,132,252,.25);margin-bottom:8px}.lobby__hero-content h2{font-size:1.8rem;font-weight:800;color:#fff;margin:4px 0 8px;text-shadow:0 2px 10px rgba(168,85,247,.4)}.lobby__hero-content p{color:#cbd5e1;margin:0;font-size:.95rem}.btn--hero{background:linear-gradient(135deg,#a855f7,#6366f1);color:#fff;font-weight:600;padding:12px 24px;border-radius:10px;border:none;box-shadow:0 4px 14px #a855f766;white-space:nowrap;transition:transform .2s ease,box-shadow .2s ease}.lobby__hero-banner:hover .btn--hero{transform:scale(1.03);box-shadow:0 6px 20px #a855f799}.lobby__tabs{display:flex;gap:16px;border-bottom:1px solid #334155;margin-bottom:24px}.lobby__tab{background:none;border:none;color:#94a3b8;font-size:1rem;font-weight:600;padding:10px 4px;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}.lobby__tab.is-active{color:#a855f7;border-bottom-color:#a855f7}.lobby__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.lobby__empty{text-align:center;padding:48px;color:#64748b;background:#1e293b80;border-radius:12px;border:1px dashed #334155}.lobby__actions{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;gap:12px;background:#0f172ad9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:10px 16px;border-radius:40px;border:1px solid #334155;box-shadow:0 10px 30px #00000080}@media (max-width: 768px){.lobby{padding:12px 14px 90px!important}.lobby__header{padding:10px 0!important;gap:8px!important}.lobby__brand h1{font-size:1.35rem!important}.lobby__online-badge{font-size:.72rem!important;padding:3px 8px!important}.lobby__user{gap:8px!important}.lobby__username{display:none}.lobby__hero-banner{flex-direction:column!important;align-items:stretch!important;gap:14px!important;padding:16px!important;text-align:left!important}.lobby__hero-content h2{font-size:1.25rem!important}.lobby__hero-content p{font-size:.82rem!important}.btn--hero{width:100%!important;text-align:center!important;padding:10px!important}.lobby__grid{grid-template-columns:1fr!important;gap:12px!important}.lobby__actions{left:12px!important;right:12px!important;transform:none!important;width:auto!important;justify-content:stretch!important;display:grid!important;grid-template-columns:1fr 1.2fr!important;gap:8px!important}.lobby__actions .btn{width:100%!important;padding:10px 8px!important;font-size:.85rem!important;text-align:center!important;justify-content:center!important}}.room-page{display:flex;flex-direction:column;height:100vh;height:100dvh;background-color:#0b0f19;color:#f3f4f6;overflow:hidden;position:relative}.room-loading{display:flex;align-items:center;justify-content:center;height:100vh;height:100dvh;background-color:#0b0f19;color:#9ca3af;font-size:1.1rem}.room-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background-color:#111827;border-bottom:1px solid #1f2937;width:100%;box-sizing:border-box;min-height:56px;gap:10px;z-index:20}.room-header__left{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto;overflow:hidden}.room-header__info{display:flex;flex-direction:column;min-width:0;overflow:hidden}.room-header__title{font-size:1.05rem;font-weight:700;color:#f3f4f6;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-header__desc{font-size:.75rem;color:#9ca3af;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.room-header__actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.room-header__back{background:none;border:none;color:#9ca3af;font-size:1.4rem;cursor:pointer;padding:4px 8px;border-radius:6px;transition:color .2s}.room-header__back:hover{color:#fff}.room-header__btn{background:#1f2937;border:1px solid #374151;color:#f3f4f6;font-size:1.1rem;padding:8px 12px;border-radius:8px;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center}.room-header__btn:hover{background:#374151}.room-header__btn--requests{position:relative}.room-header__badge{position:absolute;top:-5px;right:-5px;background-color:#ef4444;color:#fff;font-size:.72rem;font-weight:800;min-width:18px;height:18px;padding:0 4px;border-radius:999px;display:flex;align-items:center;justify-content:center;border:2px solid #111827;box-shadow:0 0 8px #ef4444cc;animation:pulse-badge 2s infinite}@keyframes pulse-badge{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.btn-chip{background:#1f2937;border:1px solid #374151;color:#e5e7eb;padding:6px 12px;border-radius:9999px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.btn-chip:hover{background:#374151;border-color:#4b5563;color:#fff}.btn-chip--warn{border-color:#d97706;color:#fbbf24}.btn-chip--warn:hover{background:#d9770633}.btn-chip--danger{border-color:#dc2626;color:#f87171}.btn-chip--danger:hover{background:#dc262633}.btn-icon{background:none;border:none;color:#9ca3af;font-size:1.25rem;cursor:pointer;padding:6px 8px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;transition:all .2s}.btn-icon:hover{color:#fff;background:#ffffff0d}.btn-danger-sm{background:#ef4444;color:#fff;border:none;padding:4px 10px;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-danger-sm:hover{background:#dc2626}.room-messages{flex:1 1 0%;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth;box-sizing:border-box}.room-messages__empty{margin:auto;text-align:center;color:#6b7280;font-size:.95rem;padding:32px 16px}.message-row{display:flex;gap:10px;width:100%;align-items:flex-start}.message-row--own{justify-content:flex-end}.message-row--other{justify-content:flex-start}.message__avatar{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;max-width:38px!important;max-height:38px!important;border-radius:50%!important;object-fit:cover!important;flex-shrink:0!important;box-shadow:0 2px 6px #0006;border:1px solid rgba(255,255,255,.1);margin-top:2px}.message-bubble{max-width:72%;padding:10px 14px;border-radius:14px;display:flex;flex-direction:column;gap:4px;word-break:break-word;box-shadow:0 4px 12px #00000040;box-sizing:border-box}.message-bubble--other{background-color:#1a2035;border:1px solid #28334f;color:#f1f5f9;border-top-left-radius:4px}.message-bubble--own{background-color:#2b1747;border:1px solid #4c257d;color:#f8fafc;border-top-right-radius:4px}.message__author{font-size:.82rem;font-weight:700;color:#c084fc;margin-bottom:2px;-webkit-user-select:none;user-select:none}.message__author:hover{text-decoration:underline}.message__reply-quote{background:#0000004d;border-left:3px solid #a855f7;padding:5px 10px;border-radius:6px;margin-bottom:4px;font-size:.78rem;display:flex;flex-direction:column;gap:2px}.reply-quote__author{font-weight:700;color:#d8b4fe}.reply-quote__text{color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message__text{margin:0;font-size:.94rem;line-height:1.5;white-space:pre-wrap;color:#f1f5f9}.msg-dialogue{color:#fff;font-weight:500}.msg-action{color:#7dd3fc;font-style:italic}.msg-offrole{color:#94a3b8;font-size:.88rem;opacity:.9}.message__image{max-width:min(100%,340px)!important;max-height:300px!important;border-radius:8px!important;object-fit:cover!important;margin-top:6px!important;cursor:pointer;border:1px solid rgba(255,255,255,.12)}.message__footer-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;padding-top:4px;border-top:1px solid rgba(255,255,255,.06)}.msg-reply-btn{background:none;border:none;color:#64748b;font-size:.73rem;cursor:pointer;padding:2px 4px;border-radius:4px;transition:all .15s;-webkit-user-select:none;user-select:none}.msg-reply-btn:hover{color:#c084fc;background:#c084fc1a}.message__time{font-size:.7rem;color:#64748b;margin-left:auto;-webkit-user-select:none;user-select:none}.room-input{display:flex;align-items:center;gap:10px;padding:12px 16px;background-color:#111827;border-top:1px solid #1f2937;box-sizing:border-box;width:100%;z-index:20}.room-input__attach{background:none;border:none;color:#9ca3af;font-size:1.3rem;cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s;flex-shrink:0}.room-input__attach:hover{color:#c084fc;background:#c084fc1a}.room-input__field{flex:1 1 auto;background-color:#1f2937;border:1px solid #374151;border-radius:9999px;padding:10px 18px;color:#f3f4f6;font-size:.9rem;outline:none;transition:border-color .2s,box-shadow .2s;min-width:0}.room-input__field:focus{border-color:#a855f7;box-shadow:0 0 0 2px #a855f740}.room-input__field::placeholder{color:#6b7280}.room-input__file-name{font-size:.75rem;color:#c084fc;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal-content{background:#111827;border:1px solid #374151;border-radius:14px;padding:22px;max-width:480px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 20px 25px -5px #00000080;color:#f3f4f6}.member-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}.member-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#1f2937;border:1px solid #374151;border-radius:10px;gap:12px}@media (max-width: 768px){.room-header{padding:8px 12px;gap:8px}.room-header__left{flex:1 1 auto;min-width:0;gap:8px}.room-header__title{font-size:.95rem}.room-header__desc{font-size:.7rem}.room-header__actions{display:flex;overflow-x:auto;white-space:nowrap;gap:6px;flex-shrink:0;max-width:55%;-webkit-overflow-scrolling:touch;scrollbar-width:none}.room-header__actions::-webkit-scrollbar{display:none}.room-header__actions>*{flex-shrink:0}.message-bubble{max-width:85%}.room-input{padding:8px 10px;gap:6px}.room-input__field{padding:8px 14px;font-size:.85rem}}.tsf-container{min-height:100vh;background-color:#0f0f13;color:#fff;font-family:sans-serif}.tsf-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;background-color:#1a1a24;border-bottom:1px solid #2d2d3d;position:sticky;top:0;z-index:10}.tsf-hamburger{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer}.tsf-title{font-size:1.2rem;color:#a78bfa;margin:0}.tsf-feed{max-width:600px;margin:0 auto;padding:20px;display:flex;flex-direction:column;gap:30px}.tsf-card{background-color:#1a1a24;border:1px solid #2d2d3d;border-radius:12px;overflow:hidden}.tsf-card-header{padding:15px;display:flex;justify-content:space-between;align-items:center}.tsf-card-title{margin:0;font-size:1.1rem}.tsf-tag{font-size:.75rem;padding:4px 8px;border-radius:12px;font-weight:700}.tsf-tag-facebook{background-color:#1877f2;color:#fff}.tsf-tag-blog{background-color:#f59e0b;color:#fff}.tsf-tag-web{background-color:#10b981;color:#fff}.tsf-card-image-container{width:100%;height:250px;background-color:#2d2d3d}.tsf-card-image{width:100%;height:100%;object-fit:cover}.tsf-card-body{padding:15px}.tsf-card-desc{margin:0;color:#a0aec0;font-size:.95rem;line-height:1.4}.tsf-card-footer{padding:15px;border-top:1px solid #2d2d3d;display:flex;justify-content:space-between;align-items:center}.tsf-card-actions{display:flex;gap:10px}.tsf-btn-action{background:#ffffff1a;border:none;color:#fff;padding:8px 12px;border-radius:6px;cursor:pointer}.tsf-btn-visit{background-color:#a78bfa;color:#111;text-decoration:none;padding:8px 15px;border-radius:6px;font-weight:700}.tsf-drawer-overlay,.tsf-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;z-index:100;display:flex}.tsf-modal-overlay{justify-content:center;align-items:center}.tsf-drawer{background:#1a1a24;width:280px;height:100%;padding:20px}.tsf-drawer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.tsf-drawer-nav button{width:100%;text-align:left;background:none;border:none;color:#fff;padding:15px 0;font-size:1.1rem;cursor:pointer}.tsf-modal{background:#1a1a24;padding:20px;border-radius:12px;width:90%;max-width:400px}.tsf-form-group{margin-bottom:15px;display:flex;flex-direction:column}.tsf-form-group input,.tsf-form-group select,.tsf-form-group textarea{background:#0f0f13;border:1px solid #2d2d3d;color:#fff;padding:10px;border-radius:6px;margin-top:5px}.tsf-modal-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.tsf-btn-cancel{background:none;border:none;color:#a0aec0;cursor:pointer}.tsf-btn-submit{background:#a78bfa;color:#111;border:none;padding:10px 15px;border-radius:6px;font-weight:700;cursor:pointer}.tsf-card-image-container{position:relative;width:100%;height:260px;background-color:#2d2d3d;overflow:hidden}.tsf-latest-badge{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#0f0f13f2);color:#e2e8f0;padding:22px 15px 10px;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tsf-no-image{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px;text-align:center;color:#a0aec0;gap:12px}.tsf-btn-preview{background-color:#2d2d3d;color:#c4b5fd;border:1px solid #a78bfa;border-radius:6px;padding:0 12px;cursor:pointer;font-weight:700;white-space:nowrap}.tsf-preview-box{margin-bottom:15px;border:1px solid #2d2d3d;border-radius:8px;overflow:hidden;background:#0f0f13}.tsf-preview-box img{width:100%;height:140px;object-fit:cover;display:block}.tsf-preview-box span{display:block;padding:6px 10px;font-size:.78rem;color:#a78bfa}.tsf-comments-section{background-color:#12121a;border-top:1px solid #2d2d3d;padding:15px;display:flex;flex-direction:column;gap:15px}.tsf-comments-list{display:flex;flex-direction:column;gap:12px;max-height:200px;overflow-y:auto}.tsf-comment-item{display:flex;gap:10px}.tsf-comment-item img{width:32px;height:32px;border-radius:50%;object-fit:cover}.tsf-comment-content{background:#1a1a24;padding:8px 12px;border-radius:8px;flex:1}.tsf-comment-content strong{font-size:.85rem;color:#c4b5fd}.tsf-comment-time{font-size:.7rem;color:#64748b;margin-left:8px}.tsf-comment-content p{margin:5px 0 0;font-size:.9rem;color:#e2e8f0}.tsf-comment-input{display:flex;gap:8px}.tsf-comment-input input{flex:1;background:#0f0f13;border:1px solid #2d2d3d;color:#fff;padding:10px;border-radius:20px}.tsf-comment-input button{background:#a78bfa;color:#111;border:none;padding:0 15px;border-radius:20px;font-weight:700;cursor:pointer}.tsf-toolbar{display:flex;flex-wrap:wrap;gap:15px;padding:15px 20px;background-color:#12121a;border-bottom:1px solid #2d2d3d;align-items:center;justify-content:space-between}.tsf-search-box{display:flex;align-items:center;background:#0f0f13;border:1px solid #2d2d3d;border-radius:8px;padding:5px 10px;flex:1;min-width:200px}.tsf-search-box input{background:transparent;border:none;color:#fff;padding:5px;width:100%;outline:none}.tsf-filter-tabs{display:flex;gap:8px;flex-wrap:wrap}.tsf-filter-tabs button{background:transparent;color:#a0aec0;border:1px solid #2d2d3d;padding:6px 14px;border-radius:20px;cursor:pointer;font-size:.85rem;transition:all .2s}.tsf-filter-tabs button.active{background:#a78bfa;color:#111;border-color:#a78bfa;font-weight:700}.tsf-sort-box{display:flex;align-items:center;gap:10px;font-size:.9rem;color:#a0aec0}.tsf-sort-box select{background:#0f0f13;border:1px solid #2d2d3d;color:#fff;padding:6px 10px;border-radius:8px;outline:none;cursor:pointer}:root{--bg: #100f16;--surface: #1a1826;--surface-raised: #221f31;--border: #2e2a3f;--border-soft: #221f2f;--text: #ece9f5;--text-dim: #a9a4bd;--text-faint: #726c8a;--accent: #9186d9;--accent-hover: #a99ee8;--accent-dim: #4d4570;--warn: #c17b6b;--warn-dim: #3a2620;--success: #7fae8e;--font-display: "Fraunces", Georgia, serif;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--shadow-soft: 0 4px 24px rgba(0, 0, 0, .35);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0;touch-action:manipulation}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100dvh}#root{min-height:100dvh;display:flex;flex-direction:column}h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.15;margin:0;letter-spacing:-.01em}p{margin:0}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;border:none;background:none}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--accent-dim);color:var(--text)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}*::-webkit-scrollbar{width:8px}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
