:root{--bg:#0a0b0a;--bg2:#0f110f;--surface:#141712;--surface2:#1a1e18;--line:#2a2e27;--line-soft:#20241d;--text:#e6e9e2;--text-dim:#8b9285;--text-mute:#565c50;--accent:oklch(80% .13 195);--accent-glow:oklch(80% .13 195/.4);--ansi-green:oklch(78% .17 150);--ansi-red:oklch(68% .19 27);--ansi-gold:oklch(83% .15 92);--ansi-magenta:oklch(72% .16 335);--dmg-fire:oklch(70% .19 40);--dmg-frost:oklch(80% .1 220);--dmg-necro:oklch(68% .15 330);--dmg-heal:oklch(78% .17 150);--dmg-crit:oklch(83% .15 92);--dmg-time:oklch(68% .09 280);--dmg-electro:oklch(85% .17 95);--dmg-earth:oklch(66% .08 80);--dmg-air:oklch(85% .03 200);--dmg-illusion:oklch(72% .16 335);--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:14px/1.5 var(--mono)}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}input,button{font:inherit;color:inherit}button{background:0 0;border:none;padding:0}@keyframes critPop{0%{transform:scale(.82)}45%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes emberGlow{0%,to{text-shadow:0 0 5px var(--dmg-fire)}50%{text-shadow:0 0 13px var(--dmg-fire)}}@keyframes frostGlow{0%,to{text-shadow:0 0 4px var(--dmg-frost);letter-spacing:.01em}50%{text-shadow:0 0 12px var(--dmg-frost);letter-spacing:.05em}}@keyframes necroDrip{0%{opacity:.55}55%{opacity:1}to{opacity:.85}}@keyframes healGlow{0%,to{text-shadow:0 0 4px var(--dmg-heal)}50%{text-shadow:0 0 13px var(--dmg-heal)}}.link{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:none}.link:hover{color:color-mix(in srgb, var(--accent) 80%, white)}.connect-screen{flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100vh;display:flex}.connect-screen h1{color:var(--accent);margin:0;font-size:22px}.connect-bar{align-items:center;gap:8px;display:flex}.connect-bar input{background:var(--surface);border:1px solid var(--line);color:var(--text);padding:6px 10px}.connect-bar button{background:var(--surface);border:1px solid var(--accent);cursor:pointer;color:var(--text);padding:6px 12px}.connect-bar button:disabled{opacity:.5;cursor:default;border-color:var(--line)}.status-pill{border:1px solid var(--line);padding:2px 8px;font-size:12px}.status-pill.status-open{color:var(--ansi-green);border-color:var(--ansi-green)}.console-layout{align-items:flex-start;gap:20px;min-height:100vh;padding:24px;display:flex}.console{border:1px solid var(--line);background:var(--bg2);border-radius:5px;flex-direction:column;flex:1;min-width:0;height:calc(100vh - 48px);display:flex;overflow:hidden;box-shadow:0 20px 50px #00000080}.room-header{border-bottom:1px solid var(--line);flex-shrink:0;padding:16px 20px}.room-name{color:var(--text);font-weight:600}.room-desc{color:var(--text-dim);margin:4px 0 8px}.room-exits{color:var(--text-dim)}.occupant-list{max-height:130px;margin-top:4px;overflow:hidden auto}.occupant-row{cursor:pointer;color:var(--text-dim);border-radius:3px;margin:0 -4px;padding:2px 4px}.occupant-row.selected{background:color-mix(in srgb, var(--accent) 10%, transparent)}.occupant-marker{color:var(--accent);font-weight:700}.occ-player{color:var(--ansi-green)}.occ-monster{color:var(--ansi-red)}.occ-corpse{color:var(--text-mute)}.occ-unknown{color:var(--ansi-magenta)}.occ-dim{color:var(--text-mute)}.occupant-actions .link{margin-left:2px}.log-panel{flex-direction:column;flex:1;gap:2px;min-height:0;padding:16px 20px;line-height:1.7;display:flex;overflow-y:auto}.log-line{overflow-wrap:anywhere}.log-echo{color:var(--text);margin-top:4px;font-weight:600}.log-muted{color:var(--text-mute);font-style:italic}.log-plain{color:var(--text-dim)}.log-physical{color:var(--text)}.log-miss{color:var(--text-mute);font-style:italic}.log-crit{color:var(--dmg-crit);font-weight:700;animation:.42s ease-out critPop}.log-Pyromancy{color:var(--dmg-fire);animation:.9s ease-in-out 2 emberGlow}.log-Cryomancy{color:var(--dmg-frost);animation:.9s ease-in-out 2 frostGlow}.log-Necromancy{color:var(--dmg-necro);animation:.9s ease-in-out necroDrip}.log-Restoration{color:var(--dmg-heal);animation:.9s ease-in-out 2 healGlow}.log-Chronomancy{color:var(--dmg-time)}.log-Electromancy{color:var(--dmg-electro)}.log-Geomancy{color:var(--dmg-earth)}.log-Aeromancy{color:var(--dmg-air)}.log-Illusion{color:var(--dmg-illusion)}.loot-item{color:var(--text-dim);padding-left:14px}.status-bar{border-top:1px solid var(--line);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:18px;padding:8px 20px;display:flex}.status-name{color:var(--text)}.status-level{color:var(--ansi-gold)}.status-label{color:var(--text-mute);margin-right:-12px}.status-hp{color:var(--ansi-green)}.status-mv{color:var(--accent)}.status-links{gap:12px;margin-left:auto;font-size:12px;display:flex}.command-bar{border-top:1px solid var(--line);flex-direction:column;flex-shrink:0;gap:6px;padding:12px 20px;display:flex}.attacking-indicator{color:var(--ansi-red);font-size:12px}.command-input-row{align-items:center;gap:8px;display:flex}.command-prompt{color:var(--accent);flex-shrink:0}.command-input{min-width:0;color:var(--text);font-family:var(--mono);background:0 0;border:none;outline:none;flex:1;font-size:13px}.command-input::placeholder{color:var(--text-mute)}.sidebar{flex-direction:column;flex-shrink:0;gap:20px;width:280px;height:calc(100vh - 48px);display:flex}.sidebar-panel{border:1px solid var(--line);background:var(--bg2);border-radius:5px;flex-direction:column;gap:8px;padding:16px 18px;display:flex}.sidebar-panel-header{justify-content:space-between;align-items:center;display:flex}.minimap-panel{flex-shrink:0;height:200px}.minimap-placeholder{background:repeating-linear-gradient(45deg, var(--surface), var(--surface) 6px, var(--surface2) 6px, var(--surface2) 12px);color:var(--text-mute);text-align:center;border-radius:4px;flex:1;justify-content:center;align-items:center;font-size:11px;display:flex}.roadmap-badge{letter-spacing:.06em;text-transform:uppercase;color:var(--text-mute);border:1px solid var(--line);border-radius:4px;padding:2px 6px;font-size:10px}.inventory-glance-panel{flex:1;min-height:0;overflow:hidden}.inventory-glance-list{flex-direction:column;gap:6px;display:flex;overflow-y:auto}.inventory-glance-row{color:var(--text-dim);font-size:12px}.scrim{z-index:20;background:#0006;transition:opacity .2s;position:fixed;inset:0}.drawer{background:var(--bg2);border-left:1px solid var(--line);z-index:21;flex-direction:column;gap:16px;width:400px;max-width:90vw;height:100vh;padding:20px 22px;transition:transform .22s;display:flex;position:fixed;top:0;right:0;overflow-y:auto;box-shadow:-24px 0 60px #0000008c}.drawer-header{justify-content:space-between;align-items:center;display:flex}.drawer-title{color:var(--text);text-transform:capitalize}.drawer-section-title{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:11px}.drawer-empty,.drawer-note{color:var(--text-mute);font-size:12px}.attr-grid{color:var(--text-dim);grid-template-columns:1fr 1fr;gap:6px 20px;display:grid}.attr-row{justify-content:space-between;display:flex}.skill-row{color:var(--text-dim);align-items:baseline;gap:6px;display:flex}.skill-name{white-space:nowrap}.skill-leader{border-bottom:1px dotted var(--line-soft);flex:1}.value{color:var(--text)}.equip-row{color:var(--text-dim);align-items:baseline;gap:8px;display:flex}.equip-slot{color:var(--accent);white-space:nowrap}.equip-item.filled{color:var(--ansi-green)}.equip-item.empty{color:var(--text-mute);font-style:italic}.inv-row{color:var(--text-dim);justify-content:space-between;display:flex}
