:root{--bg-primary:#0d0d0f;--bg-secondary:#111114;--bg-card:#16161a;--bg-elevated:#1c1c21;--bg-hover:#22222a;--text-primary:#f0f0f5;--text-secondary:#8b8b9e;--text-muted:#555565;--accent-primary:#6366f1;--accent-hover:#818cf8;--accent-success:#22c55e;--accent-danger:#ef4444;--accent-warning:#eab308;--border-color:#2a2a35;--border-hover:#3a3a48;--hp-color:#ef4444;--mp-color:#3b82f6;--xp-color:#a855f7;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--header-height:52px;--sidebar-width:240px;--command-bar-height:56px;--drawer-handle-height:28px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{touch-action:manipulation;background:var(--bg-primary);height:100%}body{background:var(--bg-primary);height:100%;color:var(--text-primary);font-family:var(--font-sans);font-size:14px;line-height:1.5;overflow:hidden}button{cursor:pointer;color:inherit;font-family:inherit;font-size:inherit;background:0 0;border:none}a{color:var(--accent-hover);text-decoration:none}a:hover{text-decoration:underline}.login-screen{background:var(--bg-primary);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.login-backdrop{background:radial-gradient(#1a1a2e 0%,#0d0d0f 70%);position:absolute;inset:0}.login-card{border-radius:var(--radius-lg);border:1px solid var(--border-color);width:min(900px,98vw);height:min(580px,96vh);display:flex;position:relative;overflow:hidden;box-shadow:0 24px 64px #0009}.login-art{background:var(--bg-primary);flex:0 0 45%;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login-art-image{object-fit:cover;object-position:center;width:100%;height:100%}.login-art-image.login-emblem{object-fit:contain;width:70%;height:auto}.login-content{background:var(--bg-card);flex-direction:column;flex:1;padding:40px 36px;display:flex;overflow-y:auto}.login-hero{margin-bottom:32px}.login-title{color:var(--text-primary);letter-spacing:-.5px;margin-bottom:4px;font-size:28px;font-weight:700}.login-tagline{color:var(--text-secondary);font-size:14px}.login-status{background:var(--bg-elevated);border-radius:var(--radius-sm);color:var(--text-secondary);margin-bottom:16px;padding:10px 14px;font-size:13px}.login-form{flex-direction:column;flex:1;gap:12px;display:flex}.login-form input,.login-form select{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-size:14px;font-family:var(--font-sans);outline:none;padding:10px 14px;transition:border-color .15s}.login-form input:focus,.login-form select:focus{border-color:var(--accent-primary)}.login-form select{appearance:none;cursor:pointer}.login-error{color:var(--accent-danger);border-radius:var(--radius-sm);background:#ef44441a;border:1px solid #ef444433;padding:8px 12px;font-size:13px}.login-button{background:var(--accent-primary);color:#fff;border-radius:var(--radius-sm);margin-top:4px;padding:12px 20px;font-size:14px;font-weight:600;transition:background .15s,opacity .15s}.login-button:hover:not(:disabled){background:var(--accent-hover)}.login-button:disabled{opacity:.5;cursor:not-allowed}.login-discord{margin-bottom:4px}.login-discord-btn{color:#fff;text-align:center;background:#5865f2;justify-content:center;align-items:center;gap:10px;width:100%;text-decoration:none;display:flex}.login-discord-btn:hover{background:#4752c4}.login-divider{color:var(--text-muted);align-items:center;gap:12px;margin:8px 0;font-size:12px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border-color);flex:1;height:1px}.login-switch{text-align:center}.login-switch-btn{color:var(--accent-hover);cursor:pointer;font-size:13px;text-decoration:underline}.login-footer{border-top:1px solid var(--border-color);flex-direction:column;align-items:center;gap:8px;margin-top:16px;padding-top:16px;display:flex}.powered-by{color:var(--text-muted);font-size:11px}.game-layout{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.game-header{height:var(--header-height);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:900;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 16px;display:flex}.header-left{align-items:center;gap:8px;min-width:0;display:flex}.header-room-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.header-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.header-status{border-radius:20px;padding:3px 8px;font-size:12px}.status-connected{color:var(--accent-success)}.status-disconnected,.status-failed{color:var(--accent-danger)}.status-connecting,.status-reconnecting{color:var(--accent-warning)}.status-guest{color:var(--text-muted)}.header-icon-btn{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);padding:5px 8px;font-size:15px;line-height:1;transition:all .15s}.header-icon-btn:hover,.header-icon-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.header-menu-wrapper{position:relative}.header-menu-btn{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);padding:6px 12px;font-size:13px;transition:background .15s}.header-menu-btn:hover{background:var(--bg-hover)}.header-sign-in-btn{border:1px solid var(--accent-primary);border-radius:var(--radius-sm);color:var(--accent-primary);cursor:pointer;background:0 0;padding:6px 16px;font-size:13px;font-weight:600;transition:background .15s,color .15s}.header-sign-in-btn:hover{background:var(--accent-primary);color:#fff}.header-avatar-btn{background:var(--accent-primary);border:2px solid var(--border-color);color:#fff;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:700;transition:border-color .15s,transform .15s;display:flex}.header-avatar-btn:hover{border-color:var(--accent-hover);transform:scale(1.05)}.header-menu-dropdown{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm);z-index:700;min-width:180px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 8px 24px #0006}.menu-item{width:100%;color:var(--text-primary);text-align:left;padding:10px 16px;font-size:14px;text-decoration:none;transition:background .1s;display:block}.menu-item:hover{background:var(--bg-hover)}.menu-icon{margin-right:8px;font-size:14px}.menu-divider{background:var(--border-color);height:1px;margin:4px 0}.menu-item-danger:hover{color:#ef4444;background:#dc323226}.game-body{flex:1;min-height:0;display:flex;overflow:hidden}.game-main{flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.room-panel{min-height:0;margin-bottom:var(--drawer-handle-height);flex-direction:column;flex:1;display:flex;position:relative}.room-visual{background:#000 50%/cover;flex:1;min-height:180px;position:relative;overflow:hidden}.room-visual-overlay{background:linear-gradient(#0000001a 0%,#0006 60%,#000000b3 100%);position:absolute;inset:0}.room-info-bottom{z-index:5;background:linear-gradient(#000000e0 0%,#000000a6 60%,#0000 100%);padding:10px 14px;position:absolute;top:0;left:0;right:0}.room-name-row{align-items:center;gap:8px;margin-bottom:4px;display:flex}.room-name-text{color:#fff;text-shadow:0 1px 4px #000000b3;font-size:17px;font-weight:700}.room-edit-btn{z-index:10;color:#fff6;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:13px;transition:color .15s,background .15s;display:flex;position:absolute;top:8px;right:8px}.room-edit-btn:hover{color:#fff;background:#ffffff26}.room-info-toggle{color:#ffffff80;cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;padding:0;font-size:14px;transition:color .15s;display:flex}.room-info-chevron{font-weight:700;transition:transform .2s;display:inline-block}.room-info-toggle.active .room-info-chevron{transform:rotate(90deg)}.room-info-toggle:hover{color:#ffffffd9}.room-description-text{color:#ffffffe0;cursor:pointer;white-space:pre-wrap;max-width:600px;margin:0;font-size:13px;line-height:1.6}.room-avatars{z-index:1;justify-content:center;align-items:flex-end;height:100%;padding:0;display:flex;position:absolute;bottom:0;left:0;right:0}.room-avatar{cursor:pointer;background:0 0;border:none;outline:none;flex-direction:column;flex-shrink:0;align-items:center;padding:0;transition:transform .15s,margin .35s,height .35s;display:flex;position:relative}.room-avatar-hovered{z-index:2;transform:translateY(-4px)}.room-avatar-placeholder{aspect-ratio:7/10;border-radius:var(--radius-md);width:auto;height:100%;color:var(--text-secondary);background:0 0;border:none;justify-content:center;align-items:center;font-size:48px;font-weight:700;display:flex}.room-avatar-image{object-fit:contain;object-position:bottom;filter:drop-shadow(0 4px 12px #0009);background:0 0;width:auto;height:100%}.room-avatar-image.silhouette{filter:drop-shadow(0 4px 12px #0009)grayscale()}.room-avatar-name{color:#fff;text-shadow:0 1px 4px #000000e6,0 0 8px #000000b3;text-overflow:ellipsis;white-space:nowrap;background:#00000073;border-radius:3px;max-width:90%;padding:2px 8px;font-size:12px;font-weight:600;position:absolute;bottom:8px;left:50%;overflow:hidden;transform:translate(-50%)}.room-avatar-title{color:#ffffffb3;text-shadow:0 1px 3px #000000e6;text-overflow:ellipsis;white-space:nowrap;background:#00000059;border-radius:2px;max-width:90%;padding:1px 6px;font-size:9px;font-style:italic;position:absolute;bottom:-2px;left:50%;overflow:hidden;transform:translate(-50%)}.room-curtain{z-index:6;pointer-events:none;background:#000;position:absolute;inset:0}.curtain-close{animation:.35s ease-in forwards curtainClose}.curtain-open{animation:.4s ease-out forwards curtainOpen}@keyframes curtainClose{0%{opacity:0}to{opacity:1}}@keyframes curtainOpen{0%{opacity:1}to{opacity:0}}.avatar-slide-out{animation:.35s ease-in forwards avatarSlideOut;z-index:7!important}.avatar-slide-in{animation:.4s cubic-bezier(.25,.46,.45,.94) forwards avatarSlideIn;z-index:7!important}@keyframes avatarSlideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-120%)}}@keyframes avatarSlideIn{0%{opacity:0;transform:translate(-120%)}30%{opacity:1}to{opacity:1;transform:translate(0)}}.char-slide-out{pointer-events:none;animation:.4s ease-in forwards charSlideOut}.char-slide-in{animation:.4s cubic-bezier(.25,.46,.45,.94) forwards charSlideIn}@keyframes charSlideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100%)}}@keyframes charSlideIn{0%{opacity:0;transform:translate(-100%)}30%{opacity:1}to{opacity:1;transform:translate(0)}}.room-avatar.avatar-slide-out.room-avatar-hovered,.room-avatar.avatar-slide-in.room-avatar-hovered,.room-avatar.char-slide-out.room-avatar-hovered,.room-avatar.char-slide-in.room-avatar-hovered{transform:none}.room-info{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:10px 16px 6px}.room-name{color:var(--text-primary);font-size:16px;font-weight:600}.room-description{color:var(--text-secondary);font-size:13px;line-height:1.6}.room-exits{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 16px;display:flex}.exits-label{color:var(--text-muted);flex-shrink:0;font-size:12px}.exits-buttons{flex-wrap:wrap;gap:6px;display:flex}.exit-group{align-items:stretch;gap:0;display:flex}.exit-button{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm) 0 0 var(--radius-sm);color:var(--text-primary);padding:4px 10px;font-size:12px;font-weight:700;transition:all .1s}.exit-group:not(:has(.exit-info-btn)) .exit-button{border-radius:var(--radius-sm)}.exit-shortcut{color:var(--text-primary);text-decoration:underline}.exit-button:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.exit-button:hover .exit-shortcut{color:#fff}.exit-info-btn{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-muted);cursor:pointer;border-left:none;padding:4px 7px;font-family:Georgia,serif;font-size:11px;font-style:italic;font-weight:600;transition:all .1s}.exit-info-btn:hover{background:var(--bg-hover);color:var(--accent-hover)}.inspect-backdrop{z-index:2000;background:#00000080;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.inspect-modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:400px;max-height:calc(100dvh - 48px);display:flex;position:relative;overflow:hidden;box-shadow:0 16px 48px #0006}.inspect-image{background:var(--bg-primary);border-bottom:1px solid var(--border-color);justify-content:center;padding:16px;display:flex}.inspect-image img{object-fit:contain;border-radius:var(--radius-sm);max-width:100%;max-height:300px}.inspect-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.inspect-title{color:var(--text-primary);font-size:15px;font-weight:600}.inspect-subtitle{color:var(--text-secondary);margin-top:2px;font-size:12px;font-style:italic;display:block}.inspect-close{color:var(--text-muted);border-radius:var(--radius-sm);padding:4px 8px;font-size:14px;transition:color .1s}.inspect-close:hover{color:var(--text-primary)}.inspect-body{color:var(--text-secondary);padding:16px;font-size:14px;line-height:1.6}.inspect-header-actions{align-items:center;gap:4px;display:flex}.inspect-edit-btn{color:#fff6;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:14px;transition:color .15s,background .15s;display:flex}.inspect-edit-btn:hover{color:#fff;background:#ffffff26}.inspect-scroll{flex:1;overflow-y:auto}.room-entities{border-bottom:1px solid var(--border-color);background:var(--bg-secondary);gap:0;display:flex}.room-entity-group{border-right:1px solid var(--border-color);flex-direction:column;flex:1;min-width:0;padding:6px 12px;display:flex}.room-entity-group:last-child{border-right:none}.room-entity-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;font-size:10px;font-weight:600}.entity-list{flex-wrap:wrap;gap:4px;display:flex}.entity-btn{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);white-space:nowrap;cursor:pointer;align-items:center;gap:5px;padding:4px 10px;font-size:12px;transition:all .1s;display:inline-flex}.entity-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-hover)}.entity-title{color:var(--text-dim);font-size:10px;font-style:italic}.sidebar-info-label{color:var(--text-dim);padding:4px 10px;font-size:12px;font-style:italic;display:inline-block}.entity-tooltip{z-index:500;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);min-width:140px;max-width:200px;padding:10px 14px;box-shadow:0 8px 24px #00000080}.entity-tooltip-name{color:var(--text-primary);margin-bottom:8px;font-size:13px;font-weight:600}.entity-tooltip-look{background:var(--accent-primary);color:#fff;border-radius:var(--radius-sm);text-align:center;width:100%;padding:6px 10px;font-size:12px;font-weight:600;transition:background .1s;display:block}.entity-tooltip-look:hover{background:var(--accent-hover)}.activity-log-panel{background:var(--bg-primary);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.activity-log{scroll-behavior:smooth;flex:1;min-height:0;padding:12px 16px;position:relative;overflow-y:auto}.activity-log::-webkit-scrollbar{width:6px}.activity-log::-webkit-scrollbar-track{background:0 0}.activity-log::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.log-entry{font-family:var(--font-sans,-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);color:var(--text-secondary);word-wrap:break-word;overflow-wrap:break-word;white-space:pre-line;padding:3px 0;font-size:14px;line-height:1.5;animation:10s ease-out forwards log-flare}.log-entry-blank{height:4px;animation:none}@keyframes log-flare{0%{color:#fff}30%{color:#c8c8d8}to{color:var(--text-secondary)}}.scroll-to-bottom{background:var(--bg-elevated);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:20px;margin:0 auto;padding:6px 16px;font-size:12px;display:block;position:sticky;bottom:8px;left:50%;transform:translate(-50%)}.activity-input-row{background:var(--bg-secondary);border-top:1px solid var(--border-color);gap:8px;padding:10px 16px;display:flex}.activity-input{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);outline:none;flex:1;padding:9px 14px;font-size:13px;transition:border-color .15s}.activity-input:focus{border-color:var(--accent-primary)}.activity-send-btn{background:var(--accent-primary);color:#fff;border-radius:var(--radius-sm);flex-shrink:0;padding:9px 18px;font-size:13px;font-weight:600;transition:background .15s}.activity-send-btn:hover{background:var(--accent-hover)}.command-input-bar{height:var(--command-bar-height);background:var(--bg-secondary);border-top:1px solid var(--border-color);z-index:500;flex-shrink:0;align-items:center;gap:8px;padding:8px 16px;display:flex;position:relative}.command-mode-select{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--accent-primary);font-family:var(--font-mono);box-sizing:border-box;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23818cf8' d='M3 5l3 3 3-3'/%3E%3C/svg%3E");background-position:right 6px center;background-repeat:no-repeat;outline:none;flex-shrink:0;min-width:60px;height:36px;padding:9px 22px 9px 8px;font-size:13px;font-weight:600}.command-mode-select:focus{border-color:var(--accent-primary)}.command-input{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);box-sizing:border-box;outline:none;flex:1;min-width:0;height:36px;padding:9px 14px;font-size:13px;transition:border-color .15s}.command-input:focus{border-color:var(--accent-primary)}.command-send-btn{background:var(--bg-elevated);width:34px;height:34px;color:var(--text-muted);border:1px solid var(--border-color);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex}.command-send-btn.has-input{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.command-send-btn.has-input:hover{background:var(--accent-hover)}.command-palette{background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius-md) var(--radius-md) 0 0;z-index:500;scrollbar-width:thin;border-bottom:none;max-height:320px;padding:4px 0;position:absolute;bottom:100%;left:16px;right:16px;overflow-y:auto;box-shadow:0 -4px 24px #0006}.command-palette-item{cursor:pointer;padding:6px 12px;transition:background .1s}.command-palette-item:hover,.command-palette-item.selected{background:var(--bg-hover)}.command-palette-name{font-family:var(--font-mono);color:var(--text-primary);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.command-palette-slash{color:var(--accent-primary);opacity:.6}.command-palette-exit-badge{text-transform:uppercase;letter-spacing:.5px;background:var(--accent-primary);color:#fff;vertical-align:middle;border-radius:3px;margin-right:6px;padding:1px 5px;font-size:9px;font-weight:700;display:inline-block}.palette-exit .command-palette-name{color:var(--accent-primary)}.command-palette-aliases{color:var(--text-muted);opacity:.7;font-size:11px;font-weight:400}.command-palette-level{text-transform:uppercase;letter-spacing:.05em;border-radius:3px;margin-left:auto;padding:1px 5px;font-size:10px;font-weight:600}.command-palette-level.level-1{color:#4ade80;background:#4ade801f}.command-palette-level.level-2{color:#60a5fa;background:#60a5fa1f}.command-palette-level.level-3{color:#f472b6;background:#f472b61f}.command-palette-desc{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:12px;overflow:hidden}.command-palette-usage{font-family:var(--font-mono);color:var(--text-muted);opacity:.7;margin-top:2px;font-size:11px}.feed-drawer{left:0;right:0;bottom:var(--command-bar-height);z-index:400;pointer-events:none;flex-direction:column;display:flex;position:absolute}.feed-drawer-handle{height:var(--drawer-handle-height);cursor:grab;pointer-events:auto;background:var(--bg-elevated);border-top:1px solid var(--border-hover);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:16px 16px 0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.feed-drawer-handle:active{cursor:grabbing}.feed-drawer-handle-bar{background:var(--accent-primary);opacity:.7;border-radius:2px;width:40px;height:4px;transition:opacity .15s}.feed-drawer-handle:hover .feed-drawer-handle-bar,.feed-drawer-handle:active .feed-drawer-handle-bar{opacity:1}.feed-drawer-content{height:var(--drawer-height,0);border-top:1px solid var(--border-color);pointer-events:auto;background:#0d0d0ff7;padding:0;overflow-y:auto}.feed-drawer-open .feed-drawer-content{padding:12px 16px}.feed-drawer-content .log-entry{font-family:var(--font-sans,-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:14px;line-height:1.5}.toast-container{top:calc(var(--header-height) + 48px);z-index:600;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:min(400px,90vw);display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{pointer-events:all;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;opacity:1;background:#1c1c21f2;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:10px 14px;font-size:13px;transition:opacity .6s;animation:.25s toast-slide-in;display:flex;box-shadow:0 4px 16px #0006}.toast-fading{opacity:0}.toast-movement{border-left:3px solid var(--accent-primary)}.toast-chat{border-left:3px solid var(--accent-success)}.toast-system{border-left:3px solid var(--accent-warning)}.toast-combat{border-left:3px solid var(--accent-danger)}.toast-message{flex:1;line-height:1.4}.toast-dismiss{color:var(--text-muted);border-radius:2px;flex-shrink:0;padding:2px 4px;font-size:12px}.toast-dismiss:hover{color:var(--text-secondary)}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-left:1px solid var(--border-color);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-track{background:0 0}.sidebar::-webkit-scrollbar-thumb{background:var(--border-color)}.sidebar-section{border-bottom:1px solid var(--border-color);padding:12px 14px}.sidebar-heading{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-size:11px;font-weight:600}.sidebar-exits{flex-wrap:wrap;gap:6px;display:flex}.sidebar-collapsible-header{cursor:pointer;justify-content:space-between;align-items:center;width:100%;padding:0;display:flex}.collapsible-arrow{color:var(--text-muted);font-size:10px}.sidebar-inventory-hint{color:var(--text-muted);margin-top:8px;font-size:12px;font-style:italic}.stats-section{flex-direction:column;gap:8px;display:flex}.stats-row{align-items:center;gap:8px;display:flex}.stats-label{color:var(--text-muted);flex-shrink:0;width:24px;font-size:11px;font-weight:600}.stats-bar{background:var(--bg-elevated);border-radius:3px;flex:1;height:6px;overflow:hidden}.stats-bar-fill{border-radius:3px;height:100%;transition:width .3s}.hp-bar .stats-bar-fill{background:var(--hp-color)}.mp-bar .stats-bar-fill{background:var(--mp-color)}.xp-bar .stats-bar-fill{background:var(--xp-color)}.stats-value{color:var(--text-secondary);text-align:right;min-width:50px;font-size:11px}.stats-gold{color:var(--accent-warning);align-items:center;gap:6px;font-size:12px;display:flex}.gold-icon{font-size:14px}@media (width>=768px){.mobile-only{display:none!important}}@media (width<=767px){:root{--sidebar-width:0px}.game-header{padding:0 10px}.sidebar{display:none!important}.room-panel{flex-direction:column!important;flex:1!important;min-height:0!important;display:flex!important}.room-visual{min-height:120px;flex:1!important;height:auto!important}.exit-button{padding:6px 12px;font-size:13px;font-weight:700}.login-card{flex-direction:column;height:auto;max-height:96vh}.login-art{flex:0 0 180px;width:100%}.login-content{padding:24px 20px}}*{scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.header-version-link{opacity:.5;cursor:pointer;font-size:11px;transition:opacity .15s}.header-version-link:hover{opacity:1;text-decoration:underline}.changelog-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.changelog-dialog{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md,8px);flex-direction:column;width:100%;max-width:520px;max-height:70vh;display:flex;box-shadow:0 8px 32px #0006}.changelog-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.changelog-header h2{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.changelog-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.changelog-close:hover{color:var(--text-primary)}.changelog-body{padding:14px 18px;overflow-y:auto}.changelog-version{margin-bottom:18px}.changelog-version:last-child{margin-bottom:0}.changelog-version-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.changelog-version-tag{color:var(--text-primary);font-size:14px;font-weight:600}.changelog-current-badge{background:var(--accent-success,#4ade80);color:#000;vertical-align:middle;text-transform:uppercase;letter-spacing:.5px;border-radius:8px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:500;display:inline-block}.changelog-date{color:var(--text-muted);font-size:12px}.changelog-list{margin:0;padding:0;list-style:none}.changelog-list li{color:var(--text-secondary);align-items:baseline;gap:8px;padding:3px 0;font-size:13px;display:flex}.changelog-type-badge{color:#000;letter-spacing:.3px;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:700;line-height:1.4;display:inline-block}.gui-modal-backdrop{background:#0009;justify-content:center;align-items:center;padding:16px;animation:.15s guiFadeIn;display:flex;position:fixed;inset:0}@keyframes guiFadeIn{0%{opacity:0}to{opacity:1}}.gui-modal{background:var(--bg-secondary,#1a1a2e);border:1px solid var(--border-color,#333);border-radius:var(--radius-md,8px);flex-direction:column;animation:.2s guiSlideUp;display:flex;overflow:hidden;box-shadow:0 12px 40px #00000080}@keyframes guiSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.gui-modal-header{border-bottom:1px solid var(--border-color,#333);flex-shrink:0;justify-content:space-between;align-items:flex-start;padding:14px 18px 10px;display:flex}.gui-modal-title-block{flex:1;min-width:0}.gui-modal-title{color:var(--text-primary,#e0e0e0);margin:0;font-size:16px;font-weight:600}.gui-modal-subtitle{color:var(--text-secondary,#888);margin:2px 0 0;font-size:12px}.gui-modal-header-actions{flex-shrink:0;align-items:center;gap:4px;margin-left:8px;display:flex}.gui-modal-header-btn{border:1px solid var(--border-color,#444);color:var(--text-secondary,#aaa);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:500;line-height:1.5}.gui-modal-header-btn:hover{color:var(--text-primary,#e0e0e0);border-color:var(--text-secondary,#888);background:#ffffff14}.gui-modal-header-btn:disabled{opacity:.5;cursor:not-allowed}.gui-modal-close{color:var(--text-secondary,#888);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:16px;line-height:1}.gui-modal-close:hover{color:var(--text-primary,#e0e0e0);background:#ffffff14}.gui-modal-body{scrollbar-width:thin;flex:1;padding:16px 18px;overflow-y:auto}.gui-modal-footer{border-top:1px solid var(--border-color,#333);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:10px 18px;display:flex}.gui-global-error{color:#f87171;background:#ef444426;border-bottom:1px solid #ef444433;padding:8px 18px;font-size:13px}@media (width<=600px){.gui-modal-backdrop{padding:8px}.gui-modal{width:100%!important;max-width:100%!important;max-height:calc(100dvh - 16px)!important}.inspect-backdrop{padding:8px}.inspect-modal{max-width:100%;max-height:calc(100dvh - 16px)}}.gui-btn{border-radius:var(--radius-sm,4px);cursor:pointer;white-space:nowrap;border:1px solid #0000;padding:6px 14px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s}.gui-btn:disabled{opacity:.5;cursor:not-allowed}.gui-btn-primary{background:var(--accent-primary,#6366f1);color:#fff;border-color:var(--accent-primary,#6366f1)}.gui-btn-primary:hover:not(:disabled){filter:brightness(1.15)}.gui-btn-secondary{color:var(--text-primary,#e0e0e0);border-color:var(--border-color,#333);background:#ffffff14}.gui-btn-secondary:hover:not(:disabled){background:#ffffff1f}.gui-btn-danger{color:#f87171;background:#ef444426;border-color:#ef44444d}.gui-btn-danger:hover:not(:disabled){background:#ef444440}.gui-btn-success{color:#4ade80;background:#4ade8026;border-color:#4ade804d}.gui-btn-success:hover:not(:disabled){background:#4ade8040}.gui-btn-ghost{color:var(--text-secondary,#888);background:0 0}.gui-btn-ghost:hover:not(:disabled){color:var(--text-primary,#e0e0e0);background:#ffffff0f}.gui-btn-icon{margin-right:4px}.gui-vertical{flex-direction:column;gap:10px;display:flex}.gui-horizontal{flex-direction:row;align-items:flex-start;gap:10px;display:flex}.gui-grid{gap:10px;display:grid}.gui-tabs{flex-direction:column;display:flex}.gui-tab-bar{border-bottom:1px solid var(--border-color,#333);scrollbar-width:none;flex-shrink:0;gap:0;display:flex;overflow-x:auto}.gui-tab{color:var(--text-secondary,#888);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px;font-size:13px;transition:color .15s,border-color .15s}.gui-tab:hover{color:var(--text-primary,#e0e0e0)}.gui-tab-active{color:var(--accent-primary,#6366f1);border-bottom-color:var(--accent-primary,#6366f1)}.gui-tab-icon{margin-right:4px}.gui-tab-panels{flex:1;min-height:0;display:grid;position:relative}.gui-tab-content{grid-area:1/1;padding:12px 0 0}.gui-field{flex-direction:column;gap:4px;display:flex}.gui-label{color:var(--text-secondary,#888);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:500}.gui-input,.gui-textarea,.gui-select{border:1px solid var(--border-color,#333);border-radius:var(--radius-sm,4px);color:var(--text-primary,#e0e0e0);background:#0000004d;padding:7px 10px;font-family:inherit;font-size:13px;transition:border-color .15s}.gui-input:disabled,.gui-textarea:disabled,.gui-select:disabled{opacity:.5;cursor:not-allowed;background:#00000026}.gui-input:focus,.gui-textarea:focus,.gui-select:focus{border-color:var(--accent-primary,#6366f1);outline:none}.gui-textarea{resize:vertical;min-height:60px}.gui-input-number{width:120px}.gui-select{cursor:pointer;appearance:auto;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.gui-select option{background:var(--bg-secondary,#1a1a2e);color:var(--text-primary,#e0e0e0)}.gui-field-checkbox{flex-direction:row;align-items:center}.gui-checkbox-label{cursor:pointer;color:var(--text-primary,#e0e0e0);align-items:center;gap:8px;font-size:13px;display:flex}.gui-radio-group{flex-direction:column;gap:6px;display:flex}.gui-radio-label{cursor:pointer;color:var(--text-primary,#e0e0e0);align-items:center;gap:8px;font-size:13px;display:flex}.gui-slider-container{align-items:center;gap:10px;display:flex}.gui-slider{flex:1}.gui-slider-value{color:var(--text-secondary,#888);text-align:right;min-width:32px;font-size:13px}.gui-color{border:1px solid var(--border-color,#333);border-radius:var(--radius-sm,4px);cursor:pointer;background:0 0;width:48px;height:32px;padding:2px}.gui-field-error .gui-input,.gui-field-error .gui-textarea,.gui-field-error .gui-select{border-color:#f87171}.gui-error{color:#f87171;font-size:12px}.gui-heading{color:var(--text-primary,#e0e0e0);margin:0}h1.gui-heading{font-size:20px}h2.gui-heading{font-size:17px}h3.gui-heading{font-size:15px}h4.gui-heading,h5.gui-heading,h6.gui-heading{font-size:13px}.gui-text{color:var(--text-primary,#e0e0e0);font-size:13px}.gui-paragraph{color:var(--text-primary,#e0e0e0);margin:0;font-size:13px;line-height:1.5}.gui-divider{border:none;border-top:1px solid var(--border-color,#333);margin:4px 0}.gui-image{border-radius:var(--radius-sm,4px);max-width:100%;height:auto}.gui-spacer{flex-shrink:0}.gui-progress-container{background:#0000004d;border-radius:4px;height:20px;position:relative;overflow:hidden}.gui-progress-bar{border-radius:4px;height:100%;transition:width .3s}.gui-progress-label{color:#fff;text-shadow:0 1px 2px #00000080;justify-content:center;align-items:center;font-size:11px;display:flex;position:absolute;inset:0}.gui-html{font-size:13px}.gui-icon{font-size:16px}.gui-confirm-backdrop{z-index:800;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gui-confirm-dialog{background:var(--bg-secondary,#1a1a2e);border:1px solid var(--border-color,#333);border-radius:var(--radius-md,8px);max-width:360px;padding:20px 24px;box-shadow:0 8px 32px #00000080}.gui-confirm-dialog p{color:var(--text-primary,#e0e0e0);margin:0 0 14px;font-size:14px}.gui-confirm-actions{justify-content:flex-end;gap:8px;display:flex}@media (width<=640px){.gui-modal{border-radius:0!important;width:100%!important;max-width:100%!important;max-height:100vh!important}}.offline-screen{z-index:10000;background:radial-gradient(circle,#1a1a2e 0%,#0d0d1a 100%);justify-content:center;align-items:center;padding:20px;font-family:system-ui,-apple-system,sans-serif;display:flex;position:fixed;inset:0}.offline-card{text-align:center;background:#ffffff08;border:1px solid #ffffff14;border-radius:12px;width:100%;max-width:420px;padding:40px 32px;box-shadow:0 8px 32px #0006}.offline-icon{justify-content:center;align-items:center;width:96px;height:96px;margin:0 auto 24px;display:flex;position:relative}.offline-compass{filter:grayscale(.3)opacity(.85);z-index:2;font-size:56px;position:relative}.offline-pulse{border:2px solid #8888aa4d;border-radius:50%;position:absolute;inset:0}.offline-pulse-active{animation:2s ease-out infinite offline-pulse-anim}@keyframes offline-pulse-anim{0%{opacity:1;border-color:#88a9;transform:scale(.7)}to{opacity:0;border-color:#88a0;transform:scale(1.4)}}.offline-title{color:#e0e0f0;letter-spacing:.3px;margin:0 0 8px;font-size:22px;font-weight:600}.offline-status{color:#c0c0d0;min-height:22px;margin-bottom:12px;font-size:16px}.offline-detail{color:#88a;margin-bottom:20px;font-size:13px;line-height:1.6}.offline-probe{color:#66a;align-items:center;gap:8px;margin-bottom:20px;font-family:monospace;font-size:12px;display:inline-flex}.offline-probe-fail{color:#a04040}.offline-probe-dot{background:currentColor;border-radius:50%;width:8px;height:8px;animation:1.5s ease-in-out infinite offline-dot-pulse;display:inline-block}.offline-probe-dot-pending{background:#66a}@keyframes offline-dot-pulse{0%,to{opacity:.3}50%{opacity:1}}.offline-retry{color:#fff;cursor:pointer;letter-spacing:.5px;background:linear-gradient(135deg,#4a4a8a,#6a4a8a);border:none;border-radius:8px;padding:12px 32px;font-size:14px;font-weight:600;transition:transform .15s,box-shadow .15s}.offline-retry:hover{transform:translateY(-1px);box-shadow:0 4px 16px #6a4a8a66}.offline-retry:active{transform:translateY(0)}
