:root{--panel-bg: rgba(16, 20, 28, .82);--panel-border: rgba(255, 255, 255, .14);--text: #f2f5f8;--muted: #a8b3c2;--accent: #5fa8e8;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:#87b6d9;color:var(--text)}body{-webkit-tap-highlight-color:transparent}#viewport,#labels{position:fixed;top:0;right:0;bottom:0;left:0}#viewport canvas{display:block;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#viewport canvas[data-cursor=attack]{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cg transform='rotate(-45 16 16)' stroke='%230d1116' stroke-width='1.4' stroke-linejoin='round'%3E%3Cpath d='M16 1 L19 6 V19 H13 V6 Z' fill='%23eef3f8'/%3E%3Crect x='8' y='19' width='16' height='3.5' rx='1' fill='%23d8452f'/%3E%3Crect x='14' y='22.5' width='4' height='6' fill='%237b5230'/%3E%3Ccircle cx='16' cy='29.5' r='2.2' fill='%23e0b13a'/%3E%3C/g%3E%3C/svg%3E") 5 5,crosshair}#viewport canvas[data-cursor=interact]{cursor:pointer}#labels{pointer-events:none;overflow:hidden}.nametag{padding:2px 8px;border-radius:999px;background:#0c101699;border:1px solid rgba(255,255,255,.18);color:#fff;font-size:12px;font-weight:600;letter-spacing:.02em;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.6);-webkit-user-select:none;user-select:none}.nametag.is-you{background:#265c94c7;border-color:#96cdff99}.bubble{max-width:220px;padding:6px 10px;border-radius:12px;background:#fbfbf7;color:#1a1f26;font-size:12.5px;line-height:1.35;text-align:center;box-shadow:0 4px 14px #0000004d;word-break:break-word;-webkit-user-select:none;user-select:none;position:relative;animation:bubble-in .14s ease-out}.bubble:after{content:"";position:absolute;left:50%;bottom:-5px;width:10px;height:10px;transform:translate(-50%) rotate(45deg);background:#fbfbf7}@keyframes bubble-in{0%{opacity:0;transform:translateY(4px) scale(.94)}}.healthbar{padding-bottom:26px;-webkit-user-select:none;user-select:none}.healthbar-track{box-sizing:content-box;width:48px;height:8px;border-radius:2px;background:#7c1a15;border:1px solid rgba(0,0,0,.85);box-shadow:0 1px 2px #00000080}.healthbar-fill{height:100%;border-radius:1px;background:#46cf4c;transition:width .18s ease-out}.splat{font-size:13px;font-weight:700;color:#fff;text-shadow:0 0 3px rgba(0,0,0,.9),0 1px 2px rgba(0,0,0,.8);-webkit-user-select:none;user-select:none;pointer-events:none;animation:splat-rise .9s ease-out forwards}.splat.is-miss{color:#b9c2cc;font-weight:600}@keyframes splat-rise{0%{opacity:1;transform:translateY(0)}70%{opacity:1}to{opacity:0;transform:translateY(-26px)}}#hud[hidden]{display:none}#hud-top{position:fixed;top:12px;left:50%;transform:translate(-50%);display:flex;gap:14px;align-items:center;padding:7px 14px;border-radius:999px;background:var(--panel-bg);border:1px solid var(--panel-border);font-size:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap}#online{font-weight:700;color:var(--accent)}#hint{color:var(--muted)}#chat{position:fixed;bottom:14px;left:14px;width:min(380px,calc(100vw - 28px));display:flex;flex-direction:column;gap:8px}#chat-log{display:flex;flex-direction:column;gap:3px;max-height:34vh;overflow-y:auto;padding:8px 10px;border-radius:10px;background:var(--panel-bg);border:1px solid var(--panel-border);font-size:12.5px;line-height:1.45;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);scrollbar-width:thin}#chat-log:empty{display:none}#chat-log .who{font-weight:700}#chat-log .system{color:var(--muted);font-style:italic}#chat-input{width:100%;padding:9px 12px;border-radius:10px;border:1px solid var(--panel-border);background:#10141cb8;color:var(--text);font:inherit;font-size:13px;outline:none;transition:border-color .12s ease,background .12s ease}#chat-input::placeholder{color:var(--muted)}#chat-input:focus{border-color:var(--accent);background:#10141ceb}#join{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#182434b8,#080c12eb);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10}#join[hidden]{display:none}.panel{width:min(340px,calc(100vw - 32px));display:flex;flex-direction:column;gap:12px;padding:24px;border-radius:16px;background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:0 20px 60px #00000073;text-align:center}.panel h1{margin:0;font-size:20px;letter-spacing:.01em}#join-status{margin:0;font-size:12.5px;color:var(--muted);min-height:1.2em}#join-status.error{color:#ff9a9a}#name-input{padding:10px 12px;border-radius:10px;border:1px solid var(--panel-border);background:#080c12b3;color:var(--text);font:inherit;font-size:14px;text-align:center;outline:none}#name-input:focus{border-color:var(--accent)}#join-button{padding:10px 12px;border:none;border-radius:10px;background:var(--accent);color:#08121c;font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:filter .12s ease}#join-button:hover:not(:disabled){filter:brightness(1.1)}#join-button:disabled{opacity:.55;cursor:default}.ui-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none;color:var(--text);font-size:13px;-webkit-user-select:none;user-select:none}.ui-hud-top{position:absolute;top:calc(12px + var(--safe-top));left:50%;transform:translate(-50%);z-index:3;display:flex;gap:14px;align-items:center;padding:7px 14px;border-radius:999px;background:var(--panel-bg);border:1px solid var(--panel-border);font-size:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;pointer-events:auto}.ui-online{font-weight:700;color:var(--accent)}.ui-controls-toggle{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;border:1px solid var(--panel-border);background:#080c128c;color:var(--muted);font:inherit;font-size:11.5px;cursor:pointer;transition:color .12s ease,border-color .12s ease}.ui-controls-toggle:hover,.ui-controls-toggle[aria-expanded=true]{color:var(--text);border-color:var(--accent)}.ui-controls-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ui-controls-glyph{font-weight:700}.ui-controls-backdrop{position:absolute;top:-100vmax;right:-100vmax;bottom:-100vmax;left:-100vmax;pointer-events:auto}.ui-controls-popover{position:absolute;top:calc(100% + 8px);left:0;width:min(400px,calc(100vw - 28px));max-height:min(76dvh,620px);overflow-y:auto;scrollbar-width:thin;display:flex;flex-direction:column;gap:12px;padding:12px 14px;border-radius:10px;background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:0 12px 32px #00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:normal;pointer-events:auto}.ui-controls-group{display:flex;flex-direction:column;gap:5px}.ui-controls-title{margin:0;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.ui-controls-rows{display:grid;grid-template-columns:minmax(0,auto) 1fr;column-gap:10px;row-gap:4px;margin:0;align-items:baseline;font-size:11.5px}.ui-controls-rows dt{font-weight:700;color:var(--text)}.ui-controls-rows dd{margin:0;color:var(--muted);line-height:1.35}.ui-hitpoints{display:flex;align-items:center;gap:6px}.ui-hitpoints-bar{width:54px;height:7px;padding:1px;border-radius:4px;background:#00000059;border:1px solid var(--panel-border)}.ui-hitpoints-fill{display:block;height:100%;border-radius:3px;background:#4fbf5a;transition:width .18s ease-out,background-color .18s linear}.ui-hitpoints.is-low .ui-hitpoints-fill{background:#d9a13a}.ui-hitpoints.is-critical .ui-hitpoints-fill{background:#d1493f}.ui-hitpoints-value{font-variant-numeric:tabular-nums;font-weight:700;color:var(--muted)}.ui-run-toggle{min-width:66px;padding:4px 10px;border-radius:999px;border:1px solid var(--panel-border);background:#080c128c;color:var(--muted);font:inherit;font-size:11.5px;text-align:center;cursor:pointer;transition:color .12s ease,border-color .12s ease}.ui-run-toggle[aria-pressed=true]{color:var(--text);border-color:var(--accent)}.ui-run-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ui-reconnect{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;padding:12px 22px;border-radius:999px;background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:14px;font-weight:600;pointer-events:none;animation:ui-reconnect-pulse 1.6s ease-in-out infinite}.ui-logout{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 22px;border-radius:14px;background:var(--panel-bg);border:1px solid rgba(255,154,154,.45);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:14px;font-weight:600;color:var(--text);text-align:center}.ui-logout-hint{font-size:11px;font-weight:400;color:var(--muted)}@keyframes ui-reconnect-pulse{0%,to{opacity:1}50%{opacity:.55}}.ui-panel{padding:10px;border-radius:10px;background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ui-sidebar{position:absolute;top:calc(196px + var(--safe-top));right:calc(14px + var(--safe-right));width:min(268px,calc(100vw - 28px));max-height:calc(100vh - 210px);max-height:calc(100dvh - 210px - var(--safe-top));display:flex;flex-direction:column;gap:8px;pointer-events:auto}.ui-tabs{display:flex;gap:6px}.ui-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;overflow:hidden;padding:7px 2px;border-radius:9px;border:1px solid var(--panel-border);background:var(--panel-bg);color:var(--muted);font:inherit;font-size:12px;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:color .12s ease,border-color .12s ease}.ui-tab:hover{color:var(--text)}.ui-tab[aria-selected=true]{color:var(--text);border-color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.ui-tab-key{font-size:10px;opacity:.6}.ui-tab:focus-visible,.ui-slot:focus-visible,.ui-join-button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ui-inventory{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;overflow-y:auto;scrollbar-width:thin}.ui-slot{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;padding:3px;border-radius:8px;border:1px solid var(--panel-border);background:#080c128c;color:var(--text);font:inherit;font-size:10px;line-height:1.15;text-align:center;overflow:hidden;cursor:pointer;transition:border-color .12s ease,background .12s ease}.ui-slot:hover:not(.is-empty){background:#182230cc;border-color:#ffffff47}.ui-slot.is-empty{cursor:default;background:#080c1252}.ui-slot.is-drop-target{border-color:var(--accent);background:#5fa8e82e}.ui-slot.is-move-source{border-color:#ffe37a;background:#ffe37a24}.ui-slot.is-use-source{border-color:#f2a52b;background:#f2a52b29}.ui-move-hint{grid-column:1 / -1;margin:0;color:var(--muted);font-size:11px;line-height:1.35}.ui-item-icon{display:block;width:86%;height:86%;flex:0 0 auto}.ui-slot-name{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.ui-slot-name.is-unillustrated{position:absolute;left:2px;right:2px;bottom:2px;-webkit-line-clamp:2;padding:1px 2px;border-radius:4px;background:#080c12c7}.ui-slot-hint{color:var(--muted);opacity:.65;text-transform:capitalize;font-size:9.5px}.ui-qty{position:absolute;top:2px;left:3px;font-size:9.5px;font-weight:700;color:#ffe37a;text-shadow:0 1px 2px rgba(0,0,0,.8)}.ui-slot-wrap{position:relative;aspect-ratio:1}.ui-slot-wrap .ui-slot{position:absolute;top:0;right:0;bottom:0;left:0}.ui-drop-btn{position:absolute;top:2px;right:2px;width:14px;height:14px;padding:0;border:none;border-radius:50%;background:#14161cbf;color:var(--muted);font:inherit;font-size:10px;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s ease,color .12s ease,background .12s ease}.ui-slot-wrap:hover .ui-drop-btn,.ui-drop-btn:focus-visible{opacity:1}.ui-drop-btn:hover{background:#c4443ae6;color:#fff}.ui-drop-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ui-doll{display:grid;grid-template-columns:repeat(3,1fr);grid-template-areas:".      head   ." "cape   amulet ." "weapon body   shield" ".      legs   ." "hands  feet   ring";gap:6px}.ui-skills{display:flex;flex-direction:column;gap:7px;overflow-y:auto;scrollbar-width:thin}.ui-skill{display:grid;grid-template-columns:1fr auto;column-gap:8px;row-gap:3px;font-size:11.5px}.ui-skill-name{text-transform:capitalize}.ui-skill-level{font-weight:700;color:var(--accent)}.ui-bar{grid-column:1 / -1;height:4px;border-radius:999px;background:#ffffff1f;overflow:hidden}.ui-bar>i{display:block;height:100%;background:var(--accent)}.ui-action-bar{grid-column:auto;width:72px;height:5px;flex:0 0 auto}.ui-skill-xp{grid-column:1 / -1;color:var(--muted);font-size:10px}.ui-quest-log{display:flex;flex-direction:column;gap:10px;overflow-y:auto;scrollbar-width:thin}.ui-quest-empty{margin:0;color:var(--muted);font-size:11.5px}.ui-quest-count{margin:0;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;letter-spacing:.04em;text-transform:uppercase}.ui-quest-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.ui-quest-name{font-weight:700;font-size:12px}.ui-quest-state{flex:0 0 auto;font-weight:700;font-size:10px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.ui-quest-not-started{color:#d1493f}.ui-quest-in-progress{color:#d9a13a}.ui-quest-complete{color:#4fbf5a}.ui-quest-description{margin:3px 0 0;color:var(--muted);font-size:11.5px;line-height:1.4}.ui-settings{display:flex;flex-direction:column;gap:12px;font-size:12px}.ui-setting{display:flex;flex-direction:column;gap:4px}.ui-setting-label{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-weight:600}.ui-setting-value{color:var(--accent);font-weight:400;font-variant-numeric:tabular-nums}.ui-setting-hint{color:var(--muted);font-size:10.5px;line-height:1.35}.ui-setting-check{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 8px;cursor:pointer}.ui-setting-check .ui-setting-hint{grid-column:2}.ui-setting input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}.ui-setting-choices{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.ui-setting-choice{padding:5px 2px;border-radius:7px;border:1px solid var(--panel-border);background:transparent;color:var(--muted);font:inherit;font-size:11px;cursor:pointer;transition:color .12s ease,border-color .12s ease}.ui-setting-choice:hover{color:var(--text)}.ui-setting-choice[aria-pressed=true]{color:var(--text);border-color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.ui-setting-choice:disabled{opacity:.4;cursor:default}.ui-setting-choice:disabled:hover{color:var(--muted)}.ui-setting-reset{align-self:flex-start;padding:5px 10px;border-radius:7px;border:1px solid var(--panel-border);background:transparent;color:var(--muted);font:inherit;font-size:11px;cursor:pointer}.ui-setting-reset:hover:not(:disabled){color:var(--text)}.ui-setting-reset:disabled{opacity:.4;cursor:default}.ui-setting-logout{align-self:flex-start;padding:7px 14px;border-radius:7px;border:1px solid rgba(255,154,154,.5);background:transparent;color:#ff9a9a;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.ui-setting-logout:hover:not(:disabled){background:#ff9a9a1f}.ui-setting-logout:disabled{opacity:.5;cursor:default}.ui-setting-choice:focus-visible,.ui-setting-reset:focus-visible,.ui-setting-logout:focus-visible,.ui-setting input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ui-minimap{position:absolute;top:calc(14px + var(--safe-top));right:calc(14px + var(--safe-right));padding:5px;border-radius:50%;background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 18px #00000059;pointer-events:auto;line-height:0}.ui-minimap-disc{display:block;border-radius:50%;cursor:crosshair;touch-action:none}.ui-worldmap-toggle{position:absolute;top:calc(14px + var(--safe-top));left:calc(14px + var(--safe-left));display:flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--text);font:inherit;font-size:12px;cursor:pointer;pointer-events:auto}.ui-worldmap-toggle:hover{border-color:var(--accent)}.ui-worldmap-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ui-worldmap-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#04060ab8;pointer-events:auto;z-index:3}.ui-worldmap-panel{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:12px;background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:0 12px 40px #00000080}.ui-worldmap-header{display:flex;justify-content:space-between;align-items:baseline;font-weight:700}.ui-worldmap-close{border:none;background:transparent;color:var(--muted);font-size:18px;line-height:1;cursor:pointer}.ui-worldmap-close:hover{color:var(--text)}.ui-worldmap-close:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ui-worldmap-canvas{display:block;width:min(720px,92vw,92vh);height:min(720px,92vw,92vh);border-radius:6px;cursor:crosshair;touch-action:none}.ui-worldmap-notice,.ui-worldmap-hint{margin:0;max-width:480px;font-size:11.5px;color:var(--muted);text-align:center}.ui-debug{position:absolute;top:calc(56px + var(--safe-top));left:calc(14px + var(--safe-left));width:226px;max-height:calc(100vh - 70px);max-height:calc(100dvh - 70px - var(--safe-top));display:flex;flex-direction:column;gap:8px;font-variant-numeric:tabular-nums;font-size:11.5px;pointer-events:auto;overflow-y:auto;scrollbar-width:thin}.ui-debug-title{display:flex;justify-content:space-between;align-items:center;font-weight:700;letter-spacing:.03em;text-transform:uppercase;font-size:10px;color:var(--muted)}.ui-debug-key{opacity:.6}.ui-debug-rows{display:grid;grid-template-columns:auto 1fr;column-gap:8px;row-gap:3px;margin:0}.ui-debug-rows dt{color:var(--muted)}.ui-debug-rows dd{margin:0;text-align:right;word-break:break-word}.ui-debug-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--muted)}.ui-debug-toggle:hover{color:var(--text)}.ui-debug-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin:0;padding:0;list-style:none;font-size:10px}.ui-debug-keys li{padding:2px 0;border-radius:5px;background:#6fd8ff24;text-align:center}.ui-debug-keys li.is-pending{background:#ffc47a38}.ui-chat{position:absolute;bottom:calc(14px + var(--safe-bottom));left:calc(14px + var(--safe-left));width:min(380px,calc(100vw - 28px));display:flex;flex-direction:column;gap:8px;pointer-events:none}.ui-chat-log,.ui-chat-form,.ui-chat-toggle{pointer-events:auto}.ui-chat-toggle{align-self:flex-start;position:relative;z-index:2;padding:3px 10px;border-radius:999px;border:1px solid var(--panel-border);background:var(--panel-bg);color:var(--muted);font:inherit;font-size:11px;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .12s ease,color .12s ease,border-color .12s ease}.ui-chat:hover .ui-chat-toggle,.ui-chat-toggle:focus-visible,.ui-chat.is-collapsed .ui-chat-toggle{opacity:1}.ui-chat-toggle:hover{color:var(--text);border-color:var(--accent)}.ui-chat-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ui-chat-log{display:flex;flex-direction:column;gap:3px;max-height:34vh;max-height:34dvh;overflow-y:auto;padding:8px 10px;border-radius:10px;background:var(--panel-bg);border:1px solid var(--panel-border);font-size:12.5px;line-height:1.45;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);scrollbar-width:thin;-webkit-user-select:text;user-select:text}.ui-chat-log:empty{display:none}.ui-chat-line{word-break:break-word}.ui-who{font-weight:700}.ui-notice{color:var(--muted);font-style:italic}.ui-chat-input{width:100%;padding:9px 12px;border-radius:10px;border:1px solid var(--panel-border);background:#10141cb8;color:var(--text);font:inherit;font-size:13px;outline:none;transition:border-color .12s ease,background .12s ease}.ui-chat-input::placeholder{color:var(--muted)}.ui-chat-input:focus{border-color:var(--accent);background:#10141ceb}.ui-dialogue{position:absolute;bottom:calc(14px + var(--safe-bottom));left:50%;transform:translate(-50%);z-index:1;width:min(460px,calc(100vw - 28px));padding:12px 14px;border-radius:10px;background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto}.ui-dialogue-speaker{font-weight:700;color:var(--accent);margin-bottom:4px}.ui-dialogue-text{font-size:13px;line-height:1.45;margin-bottom:10px}.ui-dialogue-replies{display:flex;flex-direction:column;gap:5px}.ui-dialogue-reply{display:flex;align-items:baseline;gap:8px;padding:7px 10px;border-radius:8px;border:1px solid var(--panel-border);background:#080c128c;color:var(--text);font:inherit;font-size:12.5px;text-align:left;cursor:pointer;transition:border-color .12s ease,background .12s ease}.ui-dialogue-reply:hover{background:#182230cc;border-color:#ffffff47}.ui-dialogue-reply-key{flex:none;width:16px;color:var(--muted);font-variant-numeric:tabular-nums}.ui-dialogue-end{position:absolute;top:8px;right:10px;border:none;background:transparent;color:var(--muted);font-size:16px;line-height:1;cursor:pointer}.ui-dialogue-end:hover{color:var(--text)}.ui-dialogue-reply:focus-visible,.ui-dialogue-end:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ui-shop{position:absolute;bottom:calc(14px + var(--safe-bottom));left:50%;transform:translate(-50%);z-index:3;width:min(520px,calc(100vw - 28px));padding:12px 14px;border-radius:10px;background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto}.ui-shop-head{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}.ui-shop-name{font-weight:700;color:var(--accent)}.ui-shop-purse{margin-left:auto;font-weight:700;color:#ffe37a;font-variant-numeric:tabular-nums}.ui-shop-close{border:none;background:transparent;color:var(--muted);font-size:16px;line-height:1;cursor:pointer;padding:0 2px}.ui-shop-close:hover{color:var(--text)}.ui-shop-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ui-shop-heading{margin:0 0 5px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.ui-shop-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:min(38dvh,300px);overflow-y:auto;scrollbar-width:thin}.ui-shop-row{display:flex;align-items:baseline;gap:8px;width:100%;padding:6px 9px;border-radius:8px;border:1px solid var(--panel-border);background:#080c128c;color:var(--text);font:inherit;font-size:12px;text-align:left;cursor:pointer;transition:background .12s ease,border-color .12s ease}.ui-shop-row:hover:not(:disabled){background:#182230cc;border-color:#ffffff47}.ui-shop-row:disabled{cursor:default;opacity:.45}.ui-shop-icon{flex:0 0 auto;align-self:center;width:20px;height:20px}.ui-shop-item{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-shop-qty{margin-left:5px;color:#ffe37a;font-weight:700}.ui-shop-price{flex:none;color:var(--muted);font-variant-numeric:tabular-nums}.ui-shop-empty{margin:2px 0 0;font-size:11px;color:var(--muted)}.ui-shop-row:focus-visible,.ui-shop-close:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ui-join{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#182434b8,#080c12eb);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto}.ui-join-heading{position:relative;display:flex;align-items:center;justify-content:center}.ui-join-mute{position:absolute;right:0;display:grid;place-items:center;width:30px;height:30px;padding:0;border-radius:8px;border:1px solid var(--panel-border);background:transparent;color:var(--text);font:inherit;font-size:14px;line-height:1;cursor:pointer;transition:border-color .12s ease,opacity .12s ease}.ui-join-mute:hover{border-color:var(--accent)}.ui-join-mute.is-muted{opacity:.55}.ui-join-status{margin:0;font-size:12.5px;color:var(--muted);min-height:1.2em}.ui-join-status.is-error{color:#ff9a9a}.ui-join-retry{margin:0;font-size:12.5px;font-weight:600;color:var(--text)}.ui-name-input{padding:10px 12px;border-radius:10px;border:1px solid var(--panel-border);background:#080c12b3;color:var(--text);font:inherit;font-size:14px;text-align:center;outline:none}.ui-name-input:focus{border-color:var(--accent)}.ui-join-button{padding:10px 12px;border:none;border-radius:10px;background:var(--accent);color:#08121c;font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:filter .12s ease}.ui-join-button:hover:not(:disabled){filter:brightness(1.1)}.ui-join-button:disabled{opacity:.55;cursor:default}.ui-join .panel{width:min(420px,calc(100vw - 32px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px - var(--safe-top) - var(--safe-bottom));overflow-y:auto}.ui-appearance{display:flex;gap:12px;align-items:flex-start;text-align:left}.ui-appearance-controls{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.ui-appearance-row{display:flex;flex-direction:column;gap:3px}.ui-appearance-label{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.ui-appearance-options{display:flex;flex-wrap:wrap;gap:3px}.ui-appearance-choice{padding:3px 7px;border-radius:6px;border:1px solid var(--panel-border);background:#080c12b3;color:var(--text);font:inherit;font-size:11px;cursor:pointer}.ui-appearance-choice.is-chosen{border-color:var(--accent);background:#5fa8e838}.ui-appearance-swatch{width:16px;height:16px;padding:0;border-radius:4px;border:2px solid transparent;box-shadow:0 0 0 1px #00000080 inset;cursor:pointer}.ui-appearance-swatch.is-chosen{border-color:var(--text)}.ui-doll{display:flex;flex-direction:column;align-items:center;gap:1px;width:56px;padding:8px 0;border-radius:8px;background:#080c128c;border:1px solid var(--panel-border)}.ui-doll-hair{width:26px;height:6px;border-radius:3px 3px 0 0}.ui-doll-head{width:24px;height:22px;border-radius:3px}.ui-doll-top{height:30px;border-radius:3px}.ui-doll-legs{height:28px;border-radius:2px}.ui-doll-shoes{height:7px;border-radius:0 0 3px 3px}.ui-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:auto}.ui-context-menu{position:fixed;z-index:4;min-width:172px;max-width:min(260px,calc(100vw - 16px));display:flex;flex-direction:column;padding:4px;border-radius:8px;background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:0 10px 28px #00000080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto}.ui-menu-title{padding:4px 8px 6px;color:var(--muted);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.ui-menu-entry{padding:6px 8px;border:none;border-radius:5px;background:transparent;color:var(--text);font:inherit;font-size:13px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.ui-menu-entry:hover{background:#ffffff1f}.ui-menu-entry.is-attack{color:#ff8478}.ui-menu-entry.is-cancel{color:var(--muted)}@media(pointer:coarse){.ui-tab-key,.ui-dialogue-reply-key,.ui-debug-key{display:none}.ui-root button,.ui-root input,.ui-root label{touch-action:manipulation}.ui-tab{min-height:44px;font-size:13px}.ui-dialogue-reply{min-height:44px;padding:10px 12px;font-size:14px}.ui-shop-row{min-height:44px;font-size:13px}.ui-shop-icon{width:26px;height:26px}.ui-dialogue-end,.ui-shop-close,.ui-worldmap-close{padding:8px 12px;font-size:20px}.ui-setting-choice,.ui-setting-reset{min-height:40px}.ui-setting-logout{min-height:44px;font-size:14px}.ui-appearance-choice{padding:8px 10px}.ui-join-mute{width:44px;height:44px;font-size:18px}.ui-appearance-swatch{width:26px;height:26px}.ui-run-toggle,.ui-controls-toggle{min-height:34px}.ui-chat-toggle{opacity:1;min-height:34px;padding:6px 12px}.ui-chat.is-collapsed .ui-chat-toggle{min-height:44px;padding:10px 16px;font-size:13px}.ui-menu-entry{min-height:44px;display:flex;align-items:center;padding:10px 12px;font-size:14px}.ui-context-menu{min-width:200px}.ui-drop-btn{opacity:1;width:22px;height:22px;font-size:13px}.ui-chat-input,.ui-name-input{font-size:16px}}@media(max-width:700px){:root{--dock-height: 56px}.ui-hud-top{left:calc(80px + var(--safe-left));transform:none;gap:10px;padding:6px 12px;max-width:calc(100vw - 80px - var(--safe-left) - 10px);flex-wrap:wrap}.ui-controls-label{display:none}.ui-controls-popover{width:min(360px,calc(100vw - 92px - var(--safe-left) - var(--safe-right)))}.ui-sidebar{top:auto;bottom:0;left:0;right:0;width:auto;max-height:none;flex-direction:column-reverse;gap:6px;padding:6px calc(8px + var(--safe-right)) calc(6px + var(--safe-bottom)) calc(8px + var(--safe-left));z-index:2}.ui-tab-key{display:none}.ui-sidebar [role=tabpanel]{max-height:46dvh;overflow-y:auto;scrollbar-width:thin}.ui-inventory{grid-template-columns:repeat(7,1fr)}.ui-chat{bottom:calc(var(--dock-height) + 10px + var(--safe-bottom));left:calc(10px + var(--safe-left));width:min(320px,calc(100vw - 20px))}.ui-chat-log{max-height:20dvh}.ui-dialogue{bottom:calc(var(--dock-height) + 10px + var(--safe-bottom));width:calc(100vw - 20px)}.ui-dialogue:has(+.ui-chat.is-collapsed){margin-bottom:54px}.ui-shop{bottom:calc(var(--dock-height) + 10px + var(--safe-bottom));width:calc(100vw - 20px)}.ui-shop-columns{grid-template-columns:1fr;gap:8px}.ui-shop-list{max-height:22dvh}.ui-worldmap-panel{padding:10px}}
