:root{font-family:system-ui,sans-serif;font-size:14px;color:#e8ecf4}*{box-sizing:border-box}body{margin:0;background:#0f131b;overflow:hidden}.app{position:relative;width:100vw;height:100vh}.view{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none}.modal{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#080a10bf;gap:10px}.modal h1{font-size:40px;margin:0;letter-spacing:2px}.modal form{display:flex;gap:8px}.modal input{font-size:18px;padding:8px 12px;border-radius:6px;border:1px solid #3a4150;background:#1b2130;color:#fff}.modal button{font-size:18px;padding:8px 16px;border-radius:6px;border:none;background:#5aa9ff;color:#08131f;font-weight:600;cursor:pointer}.hint{color:#9aa0ab;font-size:12px}.hint.credits{margin-top:14px;font-size:11px;color:#7a8090}.modal.login form.stack{flex-direction:column;align-items:stretch;width:min(360px,90vw)}.modal.login .row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#cfd6e4;font-size:14px}.modal.login .check{display:inline-flex;align-items:center;gap:6px;color:#cfd6e4;font-size:14px}.modal.login .create-character{background:#2a3346;color:#e8ecf4;border:1px solid #3a4150}.modal.login .create-character:hover{background:#354160}.dialog-backdrop{position:fixed;inset:0;z-index:11;display:flex;align-items:center;justify-content:center;background:#0000008c}.dialog{display:flex;flex-direction:column;gap:12px;padding:20px 24px;border-radius:10px;border:1px solid #3a4150;background:#0e121cf7;box-shadow:0 10px 40px #000000b3}.dialog h2{margin:0;font-size:20px}.dialog .dialog-buttons{justify-content:space-between}.dialog button.secondary{background:#2a3346;color:#e8ecf4}.modal.login .error{color:#ff7a7a;margin:0}.modal.login .characters{display:flex;flex-direction:column;gap:6px;width:min(360px,90vw)}.modal.login .character{display:flex;justify-content:space-between;align-items:baseline;gap:12px;background:#1b2130;color:#e8ecf4;border:1px solid #3a4150;font-weight:500;text-align:left}.modal.login .character:hover{border-color:#5aa9ff}.modal.login .cname{font-size:18px}.modal.login .cinfo{font-size:12px;color:#9aa0ab}.modal.login .swatch{width:26px;height:26px;padding:0;border-radius:50%;border:2px solid transparent}.modal.login .swatch.picked{border-color:#fff}.flee-button{position:absolute;top:84px;left:50%;transform:translate(-50%);z-index:6;padding:18px 56px;font-size:34px;font-weight:800;letter-spacing:4px;color:#fff;background:#c0202a;border:3px solid #ff8a8a;border-radius:14px;box-shadow:0 0 0 4px #c0202a59,0 8px 30px #0009;cursor:pointer;animation:flee-pulse .9s ease-in-out infinite alternate}.flee-button:hover{background:#e02a36}@keyframes flee-pulse{0%{transform:translate(-50%) scale(1)}to{transform:translate(-50%) scale(1.06)}}.hud-top{position:absolute;top:12px;left:12px;right:12px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.room-name{font-size:20px;font-weight:600;text-shadow:0 1px 3px #000}.menu-backdrop{position:fixed;inset:0}.hover-card{position:absolute;pointer-events:none;max-width:320px;background:#080a10e0;border:1px solid #3a4150;border-radius:6px;padding:6px 10px;box-shadow:0 4px 16px #00000080;z-index:5}.hover-name{color:#e8ecf4;font-size:13px;font-weight:600}.hover-line{color:#b8c0cc;font-family:ui-monospace,Menlo,monospace;font-size:12px;margin-top:2px}.entity-menu{position:fixed;width:260px;background:#080a10f0;border:1px solid #3a4150;border-radius:8px;padding:6px;box-shadow:0 6px 24px #0009;display:flex;flex-direction:column;gap:4px}.menu-title{font-weight:600;color:#ffe6b3;padding:4px 6px;border-bottom:1px solid #2a3040}.menu-item{text-align:left;background:transparent;border:none;color:#e8ecf4;font:inherit;padding:5px 8px;border-radius:4px;cursor:pointer}.menu-item:hover{background:#263043}.menu-danger{color:#ff9a9a}.menu-god{color:#ffd27a}.compass{display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:auto;filter:drop-shadow(0 1px 3px #000)}.compass-face{fill:#080a1099;stroke:#3a4150;stroke-width:1.5}.compass-north{fill:#ff7a7a}.compass-south{fill:#c9d1e0}.compass-axis{stroke:#3a4150;stroke-width:1}.compass-letter{fill:#e8ecf4;font-size:11px;font-weight:600;text-anchor:middle}.compass-needle{fill:#ffd479}.compass-facing{font-size:12px;font-weight:600;color:#ffd479}.bars{display:grid;gap:4px;min-width:240px}.bar{display:grid;grid-template-columns:40px 1fr 60px;align-items:center;gap:6px;font-size:12px}.bar-track{height:8px;background:#00000080;border-radius:4px;overflow:hidden}.bar-fill{height:100%}.bar-num{text-align:right;font-variant-numeric:tabular-nums}.stats-line{display:flex;justify-content:space-between;gap:12px;margin-top:2px;font-size:12px;color:#cfd6e4;font-variant-numeric:tabular-nums;text-shadow:0 1px 3px #000}.hud-bottom{position:absolute;left:12px;bottom:12px;width:560px;max-width:calc(100vw - 24px);display:flex;flex-direction:column;gap:6px}.log{position:relative;height:240px;background:#080a10b8;border:1px solid #2a3040;border-radius:6px;font-family:ui-monospace,Menlo,monospace;font-size:12.5px;line-height:1.35;white-space:pre-wrap}.log-scroll{height:100%;overflow-y:auto;padding:8px}.grip{position:absolute;z-index:1;touch-action:none}.grip-top{top:-4px;left:0;right:0;height:8px;cursor:ns-resize}.grip-right{top:0;bottom:0;right:-4px;width:8px;cursor:ew-resize}.grip:hover{background:#5aa9ff59}.line.room{color:#ffd479;font-weight:600;margin-top:4px}.line.desc{color:#c9d1e0}.line.say{color:#9be79f}.line.tell{color:#f2a9ff}.line.shout{color:#ffb3a1}.line.combat{color:#ffb08a}.line.error{color:#ff7a7a}.line.echo{color:#7f8797}.cmd{display:flex;gap:8px;align-items:center;background:#080a10b8;border:1px solid #2a3040;border-radius:6px;padding:6px 8px}.cmd .prompt{font-family:ui-monospace,monospace;color:#9be79f}.cmd input{flex:1;background:transparent;border:none;color:#fff;font-size:14px;outline:none}.hud-help{position:absolute;right:12px;bottom:12px;color:#9aa0ab;font-size:12px;text-shadow:0 1px 2px #000}.debug{font-family:ui-monospace,monospace;font-size:11px;color:#7f8797;margin-bottom:4px}.modal.bug{justify-content:center;z-index:50;background:#080a10eb}.modal.bug textarea{width:min(560px,90vw);font:inherit;padding:8px;border-radius:6px;border:1px solid #3a4150;background:#1b2130;color:#fff}.modal.bug .row{display:flex;gap:8px}.modal.bug button{font-size:14px;padding:6px 14px;border-radius:6px;border:1px solid #3a4150;background:#2a2e37;color:#fff;cursor:pointer}.modal.bug button:first-child{background:#5aa9ff;color:#08131f;border-color:transparent;font-weight:600}.modal.bug button:disabled{opacity:.5}.logout-button{position:absolute;top:212px;right:12px;padding:6px 12px;font-size:13px;border-radius:6px;border:1px solid #3a4150;background:#080a10bf;color:#cfd6e4;cursor:pointer}.logout-button:hover{background:#282e3ce6}.quality-button{position:absolute;top:248px;right:12px;padding:6px 12px;font-size:13px;border-radius:6px;border:1px solid #3a4150;background:#080a10bf;color:#c8ccd6;cursor:pointer}.quality-button:hover{background:#282e3ce6}.modal.login .account-buttons{justify-content:center}.bug-button{position:absolute;top:116px;right:12px;background:#080a10b8;color:#e8ecf4;border:1px solid #2a3040;border-radius:6px;padding:5px 10px;cursor:pointer;font-size:12px}.bug-button:hover{border-color:#5aa9ff}.inv-button{position:absolute;top:148px;right:12px;background:#080a10b8;color:#e8ecf4;border:1px solid #2a3040;border-radius:6px;padding:5px 10px;cursor:pointer;font-size:12px}.inv-button:hover{border-color:#5aa9ff}.tools-menu{position:absolute;top:218px;right:12px;z-index:6;text-align:right}.tools-button{background:#080a10b8;color:#e8ecf4;border:1px solid #2a3040;border-radius:6px;padding:5px 10px;cursor:pointer;font-size:12px}.tools-button:hover{border-color:#5aa9ff}.tools-menu ul{margin:6px 0 0;padding:6px;list-style:none;width:260px;background:#080a10f0;border:1px solid #2a3040;border-radius:6px;text-align:left}.tools-menu li{padding:5px 6px}.tools-menu li+li{border-top:1px solid #1b2330}.tools-menu a{color:#8ac0ff;text-decoration:none;font-size:13px}.tools-menu a:hover{text-decoration:underline}.tools-menu span{display:block;color:#6b7688;font-size:11px}.mail-button{position:absolute;top:148px;right:118px;background:#080a10b8;color:#ffd76a;border:1px solid #5a4a20;border-radius:6px;padding:5px 10px;cursor:pointer;font-size:12px}.mail-button:hover{border-color:#ffd76a}.inventory{position:absolute;top:180px;right:12px;width:280px;max-height:calc(100vh - 220px);overflow-y:auto;background:#080a10e6;border:1px solid #3a4150;border-radius:8px;padding:6px;display:flex;flex-direction:column;gap:4px;font-size:13px}.inv-head{display:flex;justify-content:space-between;align-items:center;font-weight:600;color:#ffe6b3;padding:2px 6px;border-bottom:1px solid #2a3040}.inv-close{background:transparent;border:none;color:#9aa0ab;font-size:16px;cursor:pointer}.inv-section{color:#9aa0ab;font-size:11px;text-transform:uppercase;letter-spacing:1px;padding:4px 6px 0}.inv-list{display:flex;flex-direction:column}.inv-item{display:flex;gap:8px;align-items:baseline;text-align:left;background:transparent;border:none;color:#e8ecf4;font:inherit;padding:3px 8px;border-radius:4px;cursor:pointer}.inv-item:hover,.inv-item.picked{background:#263043}.inv-where{color:#9aa0ab;font-size:11px;min-width:46px}.inv-empty{color:#6b7280;padding:2px 8px}.inv-actions{display:flex;flex-wrap:wrap;gap:2px;border-top:1px solid #2a3040;padding-top:4px}.replay-banner{position:absolute;top:48px;left:12px;right:12px;background:#783c00bf;border:1px solid #ff9a4a;border-radius:6px;padding:6px 10px;font-size:13px}.guides-button{position:absolute;top:180px;right:12px;background:#080a10b8;color:#e8ecf4;border:1px solid #2a3040;border-radius:6px;padding:5px 10px;cursor:pointer;font-size:12px}.guides-button:hover{border-color:#5aa9ff}.inventory{top:212px}.logout-button{top:244px}.guides-backdrop{z-index:40}.dialog.guides{width:min(880px,calc(100vw - 32px));height:calc(100vh - 48px);display:flex;flex-direction:column;padding:0;text-align:left}.guides-head{display:flex;align-items:center;gap:12px;padding:12px 16px 8px;border-bottom:1px solid #2a3040}.guides-head .guides-bug{background:none;border:1px solid #2a3040;color:#e8ecf4;border-radius:6px;padding:3px 8px;cursor:pointer;font-size:12px}.guides-head .guides-bug:hover{border-color:#5aa9ff}.guides-head h2{margin:0;flex:1}.guides-level{color:#9aa0ab;font-size:13px}.guides-tabs{display:flex;gap:4px;padding:8px 16px;border-bottom:1px solid #2a3040;align-items:center}.guides-tab{background:transparent;border:1px solid transparent;color:#cfd6e4;padding:5px 10px;border-radius:6px;cursor:pointer;font:inherit}.guides-tab.active{background:#5aa9ff26;border-color:#5aa9ff;color:#fff}.guides-filter{margin-left:auto;width:160px;padding:4px 8px;font:inherit;font-size:13px}.guides-body{overflow-y:auto;padding:8px 16px 16px;font-size:13px;line-height:1.4}.guides-body .hint{margin:4px 0 10px}.guides-body code{background:#ffffff14;padding:0 4px;border-radius:3px}.guides-toc{display:flex;flex-wrap:wrap;gap:6px 14px;margin-bottom:10px}.guides-toc a{color:#5aa9ff;text-decoration:none}.guides-body section h3{margin:18px 0 2px;color:#ffe6b3;font-size:15px}.guide-note{color:#9aa0ab;margin:0 0 6px;font-size:12px}.guide-row{padding:4px 0;border-bottom:1px solid rgba(255,255,255,.05)}.guide-row.unported .guide-cmd{color:#8a8f9a}.guide-name{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;background:transparent;border:none;color:inherit;font:inherit;padding:0;cursor:pointer;text-align:left}.guide-name.static{cursor:default}.guide-cmd{font-weight:600;color:#e8ecf4;font-family:ui-monospace,Menlo,Consolas,monospace}.guide-tag{font-size:11px;color:#9aa0ab;border:1px solid #2a3040;border-radius:10px;padding:0 7px}.guide-tag.not-yet{color:#f0b060;border-color:#6a4a20}.guide-blurb{color:#cfd6e4;margin:2px 0 0 2px}.guide-blurb b{color:#9aa0ab;font-weight:600}.guide-entrance{color:#9aa0ab;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}.guide-help{white-space:pre-wrap;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;color:#d8dde8;background:#ffffff0a;border-left:2px solid #3a4150;padding:6px 10px;margin:6px 0 4px}.guide-blurb.preview{color:#9aa0ab}.hotbar{display:flex;gap:4px;flex-wrap:wrap}.hotkey{display:flex;align-items:center;gap:5px;background:#080a10b8;color:#e8ecf4;border:1px solid #2a3040;border-radius:6px;padding:3px 8px 3px 4px;cursor:pointer;font:inherit;font-size:12px}.hotkey:hover:not(:disabled){border-color:#5aa9ff}.hotkey.off{opacity:.45;cursor:default}.hotnum{display:inline-block;min-width:16px;text-align:center;font-size:11px;color:#9aa0ab;border:1px solid #3a4150;border-radius:4px;padding:0 3px}.gallery-legend{position:fixed;left:0;right:0;bottom:0;padding:8px 14px;background:#080a10d9;color:#e8ecf4;font:15px/1.45 system-ui,sans-serif;z-index:5}.gallery-legend b{color:#ffe28a;margin-right:6px}.gallery-nav{position:fixed;top:12px;right:14px;z-index:6;display:flex;align-items:center;gap:10px;padding:6px 10px;background:#080a10d9;border:1px solid #2a3040;border-radius:8px;color:#8792a5;font:12px/1.4 system-ui,sans-serif}.gallery-nav button{padding:5px 12px;background:#16202f;color:#d4dae6;border:1px solid #2a3040;border-radius:6px;cursor:pointer;font:inherit}.gallery-nav button:hover:not(:disabled){border-color:#5aa9ff}.gallery-nav button:disabled{opacity:.4;cursor:default}.gallery-nav b{color:#e8ecf4}.reconnect-banner{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);padding:10px 18px;border-radius:8px;background:#080a10cc;border:1px solid #5aa9ff;color:#e8ecf4;font-size:15px;pointer-events:none}
