.xterm{cursor:text;position:relative;-moz-user-select:none;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#FFF;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm .xterm-cursor-pointer,.xterm.xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;-moz-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:-moz-fit-content;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:double underline;text-decoration:double underline}.xterm-underline-3{-webkit-text-decoration:wavy underline;text-decoration:wavy underline}.xterm-underline-4{-webkit-text-decoration:dotted underline;text-decoration:dotted underline}.xterm-underline-5{-webkit-text-decoration:dashed underline;text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:rgba(0,0,0,0);transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}.play-container{display:flex;flex-direction:column;height:calc(100vh - 80px);max-width:100%;background:var(--void)}.play-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background:var(--crypt);border-bottom:1px solid var(--grave)}.play-title{font-family:var(--font-display);font-size:1.2rem;color:var(--bright);margin:0}.status-indicator{font-family:var(--font-mono);font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;display:flex;align-items:center;gap:.5rem}.status-indicator:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%}.status-indicator.connected{color:#a69f94}.status-indicator.connected:before{background-color:#a69f94;box-shadow:0 0 8px #a69f94}.status-indicator.connecting{color:#7289da}.status-indicator.connecting:before{background-color:#7289da;animation:pulse 1s infinite alternate}.status-indicator.disconnected{color:#801a35}.status-indicator.disconnected:before{background-color:#801a35;box-shadow:0 0 8px #801a35}.terminal-wrapper{flex-grow:1;background-color:#08060a;padding:0 1rem;overflow:hidden;height:100%;display:flex;flex-direction:column}.terminal-wrapper .xterm{height:100%;padding-bottom:.5rem}.terminal-wrapper .xterm-viewport{overflow-y:auto!important;background-color:transparent!important}.reconnect-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(8,6,10,.85);padding:2rem;border:1px solid var(--grave);border-radius:4px;text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10}@keyframes pulse{0%{opacity:.5;transform:scale(.8)}to{opacity:1;transform:scale(1.2)}}@media (max-width:768px){.play-container{padding:1rem;height:calc(100vh - 60px)}.terminal-wrapper{padding:.5rem}}.play-input-form{display:flex;align-items:center;background-color:var(--crypt);border-top:1px solid var(--grave);padding:.75rem 1.5rem;width:100%}.play-prompt-char{color:var(--ember);font-family:var(--font-mono);font-weight:700;margin-right:.75rem;font-size:1.2rem}.play-input-field{flex-grow:1;background:transparent;border:none;color:var(--bright);font-family:var(--font-mono);font-size:1.1rem;outline:none}.play-input-field:disabled{opacity:.5;cursor:not-allowed}.play-input-field::placeholder{color:var(--dust);font-style:italic}.play-submit-btn{background:linear-gradient(135deg,var(--blood),var(--vein));border:1px solid var(--ember);color:var(--bright);padding:.4rem 1.2rem;border-radius:2px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:all .2s}.play-submit-btn:hover:not(:disabled){border-color:var(--crimson);color:#fff;box-shadow:0 0 10px rgba(192,48,80,.4)}.play-submit-btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(1)}.terminal-wrapper{position:relative}.play-hud{position:absolute;top:1rem;right:1.5rem;z-index:10;gap:.75rem;pointer-events:none;background:rgba(8,6,10,.85);padding:1rem;border-radius:4px;border:1px solid var(--grave);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);min-width:250px;box-shadow:0 4px 12px rgba(0,0,0,.5);animation:fadeIn .3s ease}.hud-room,.play-hud{display:flex;flex-direction:column}.hud-room{border-bottom:1px solid var(--grave);padding-bottom:.5rem;margin-bottom:.25rem}.room-name{color:var(--bright);font-weight:700;font-family:var(--font-display);font-size:1.1rem}.room-area{color:var(--ember);font-size:.8rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em}.hud-vitals{display:flex;flex-direction:column;gap:.5rem}.vital-bar{position:relative;height:20px;background:rgba(30,26,40,.8);border:1px solid var(--grave);border-radius:2px;overflow:hidden}.vital-fill{position:absolute;top:0;left:0;height:100%;width:var(--percent,0);transition:width .3s ease}.vital-bar.hp .vital-fill{background:linear-gradient(90deg,#601428,#a61f43)}.vital-bar.mana .vital-fill{background:linear-gradient(90deg,#4b5a93,#7289da)}.vital-bar.move .vital-fill{background:linear-gradient(90deg,#4a3b5c,#7060a0)}.vital-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.75rem;font-weight:700;color:#fff;text-shadow:1px 1px 3px rgba(0,0,0,.9);letter-spacing:.05em}