html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#0b1020;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}#renderCanvas{width:100%;height:100%;display:block;outline:none;touch-action:none;cursor:grab}#renderCanvas[data-rmb-look=armed]{cursor:grabbing}#hud{position:absolute;left:12px;top:12px;z-index:10;pointer-events:none;display:flex;flex-direction:column;gap:8px}#status.hidden{display:none}#status{color:#e8eefc;background:#080c18b8;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:8px 12px;font-size:13px;line-height:1.35;max-width:min(520px,90vw);white-space:pre-wrap}#status[data-conn=connected]{border-color:#5ed68a8c;box-shadow:0 0 0 1px #28784659}#status[data-conn=connecting]{border-color:#ffc45699;box-shadow:0 0 0 1px #8c641459}#status[data-conn=disconnected],#status[data-conn=error]{border-color:#ff78648c;box-shadow:0 0 0 1px #78281e59}#combatBars{display:flex;flex-direction:column;gap:7px;width:min(340px,86vw)}.bar{position:relative;height:18px;background:#080c18b8;border:1px solid rgba(255,255,255,.14);border-radius:6px;overflow:hidden}.bar.hidden{display:none}#castBar{height:30px;border-radius:8px;border:2px solid rgba(255,176,64,.98);background:#0c0602f5;box-shadow:0 0 0 2px #060402f5,0 0 20px #ff8c288c,0 4px 18px #0000008c,inset 0 0 0 1px #ffdc9661}#castBar .barLabel{font-size:13px;font-weight:800;line-height:26px;letter-spacing:.03em;color:#fff8e8;text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 12px rgba(255,160,50,.55)}#gcdBar{height:18px;border-radius:6px;border:2px solid rgba(158,188,228,.94);background:#040912f7;box-shadow:0 0 0 1px #02040af5,0 2px 12px #00000085,inset 0 0 0 1px #bed2eb47}#gcdBar .barLabel{font-size:11px;font-weight:750;letter-spacing:.025em;line-height:16px;color:#f0f5ff;text-shadow:0 1px 2px rgba(0,0,0,.95),0 0 1px rgba(0,0,0,.85)}#gcdBar .barFill{background:linear-gradient(90deg,#243f6e,#3f6eae 52%,#9bb6d8);box-shadow:inset 0 1px #dcebff66}#gcdBar .barFill.ready{background:linear-gradient(90deg,#2f5a64,#6a9a9e);width:100%!important;opacity:.58;box-shadow:inset 0 1px #c8e6e852}#gcdBar[data-gcd=offline]{opacity:.55;border-color:#788caa73}#gcdBar[data-gcd=idle] .barLabel{color:#d8ecf0}#gcdBar[data-gcd=sweep] .barLabel{color:#f0f5ff}.barFill{position:absolute;left:0;top:0;bottom:0;width:0%;background:linear-gradient(90deg,#3a6fd8,#6aa2ff);transition:width 50ms linear}.barFill.ready{background:linear-gradient(90deg,#2f8f55,#5ed68a);width:100%!important;opacity:.35}.barFill.cast{background:linear-gradient(90deg,#be3200,#ff8012,#ffe678);box-shadow:inset 0 0 14px #ff6e1473,2px 0 14px #ffbe50b3;animation:castFillPulse .9s ease-in-out infinite}@keyframes castFillPulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.12)}}.barLabel{position:relative;z-index:1;display:block;padding:1px 8px;font-size:11px;line-height:16px;color:#e8eefc;text-shadow:0 1px 2px rgba(0,0,0,.7)}.persistMark{color:#b8f0c8;background:#082012c7;border:1px solid rgba(94,214,138,.35);border-radius:8px;padding:6px 10px;font-size:12px;line-height:1.35;max-width:min(520px,90vw);min-height:0}.persistMark:empty{display:none}#minimap{position:absolute;right:12px;top:12px;z-index:10;width:160px;height:160px;pointer-events:none;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:#060a14b8;box-shadow:0 4px 18px #00000059}#targetFrame{display:flex;flex-direction:column;width:min(280px,80vw);padding:7px 10px 8px;background:#0a0a10e6;border:2px solid rgba(232,186,48,.95);border-radius:8px;box-shadow:0 0 0 2px #0a0804f2,0 0 12px #dca82452,0 4px 16px #0000007a}#targetFrame.hidden{display:none}.tfNameRow{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:5px}#tfName{color:#f4e4a8;font-size:13px;font-weight:700;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 8px rgba(210,160,40,.28)}.tfId{color:#c4b078;font-size:11px;font-variant-numeric:tabular-nums}.tfHpBar{position:relative;height:16px;background:#08080ceb;border:1px solid rgba(180,140,40,.45);border-radius:5px;overflow:hidden}.tfHpFill{position:absolute;left:0;top:0;bottom:0;width:100%;background:linear-gradient(90deg,#2f8f55,#5ed68a);transition:width 80ms linear,background .12s ease}.tfHpFill.mid{background:linear-gradient(90deg,#a87a12,#e6be37)}.tfHpFill.low{background:linear-gradient(90deg,#a02820,#dc463c)}.tfHpLabel{position:relative;z-index:1;display:block;padding:0 8px;font-size:11px;line-height:16px;color:#e8eefc;text-shadow:0 1px 2px rgba(0,0,0,.75);text-align:center}#spellHotbar{position:absolute;left:50%;bottom:22px;transform:translate(-50%);z-index:12;pointer-events:none;display:flex;gap:10px}.spellSlot{position:relative;width:72px;height:72px;border-radius:12px;background:#080c18d1;border:1px solid rgba(106,162,255,.4);box-shadow:0 4px 16px #0006;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.spellSlot.empty{opacity:1;background:#060a1438;border:2px dashed rgba(170,190,230,.55);box-shadow:inset 0 0 0 1px #00000040;filter:none}.spellSlot.empty .slotName,.spellSlot.empty .slotSweep,.spellSlot.empty .slotCast,.spellSlot.empty .slotBadge{display:none}.slotEmptyMark{position:relative;z-index:2;font-size:22px;font-weight:600;color:#bed2f59e;line-height:1;user-select:none;text-shadow:0 1px 2px rgba(0,0,0,.55)}.spellSlot.empty .slotKey{color:#b4cdffb3}.spellSlot.unknown{opacity:1;background:#060a1438;border:2px dashed rgba(170,190,230,.55);box-shadow:inset 0 0 0 1px #00000040;filter:grayscale(.35)}.spellSlot.unknown .slotName,.spellSlot.unknown .slotBadge{display:none}.spellSlot.disabled{opacity:1;filter:grayscale(.85) brightness(.78);border:2px solid rgba(220,175,95,.92);background:repeating-linear-gradient(-45deg,#1c140aeb 0 5px,#2a1e0eeb 5px 10px);box-shadow:inset 0 0 0 1px #00000073,0 0 10px #b4782838}.spellSlot.disabled .slotBadge{display:inline-flex;align-items:center;justify-content:center;gap:2px;left:4px;right:4px;bottom:4px;min-width:0;width:auto;padding:2px 5px;border-radius:5px;font-size:10px;font-weight:900;letter-spacing:.06em;line-height:13px;background:#37260cf5;border:1px solid rgba(236,190,100,.85);color:#ffe2a0;box-shadow:0 1px 4px #0000008c}.spellSlot.disabled .slotBadge:before{content:"🔒 STAFF"}.spellSlot.disabled .slotName{color:#e6d2aad1;margin-bottom:10px}.spellSlot.disabled .slotKey{color:#e6c98a}.spellSlot.onGcd{border-color:#78afff94;box-shadow:0 4px 16px #0006,inset 0 0 0 1px #6aa2ff38}.spellSlot.casting{border-color:#ffba5aeb;box-shadow:0 0 16px #ff8c287a,inset 0 0 0 1px #ffd28266}.slotKey{position:absolute;left:6px;top:4px;z-index:2;font-size:11px;font-weight:700;color:#9ec0ff;text-shadow:0 1px 2px rgba(0,0,0,.8)}.slotName{position:relative;z-index:2;font-size:12px;font-weight:650;color:#e8eefc;text-shadow:0 1px 2px rgba(0,0,0,.8)}.slotBadge{display:none;position:absolute;right:4px;bottom:4px;z-index:3;min-width:34px;padding:2px 5px;border-radius:5px;font-size:10px;font-weight:900;letter-spacing:.05em;line-height:13px;text-align:center;pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.85)}.slotSweep{position:absolute;left:0;right:0;bottom:0;height:0%;z-index:1;background:linear-gradient(0deg,#020610e6,#060c1ad1 72%,#1c46966b);box-shadow:inset 0 3px #96c8ffeb,inset 0 6px 10px #4682e647;pointer-events:none;transition:height 40ms linear}.slotCast{position:absolute;left:0;right:0;bottom:0;height:0%;z-index:1;background:linear-gradient(0deg,#aa3708d1,#ff821cb3 55%,#ffd2789e);box-shadow:inset 0 3px #ffecaffa,inset 0 0 14px #ff781e66;pointer-events:none;transition:height 40ms linear}#slotSpark .slotName{color:#b8d8ff}#slotEmberbolt .slotName{color:#ffc48a}#hudBottomLeft{position:absolute;left:12px;bottom:22px;z-index:14;display:flex;flex-direction:column;gap:8px;align-items:flex-start;width:min(320px,48vw);max-width:min(320px,48vw);pointer-events:none}#hudBottomLeft #chatPanel,#hudBottomLeft #loadoutStrip,#hudBottomLeft #selfFrame{position:relative;left:auto;bottom:auto;z-index:auto}#selfFrame{pointer-events:none;display:flex;flex-direction:column;width:100%;max-width:min(220px,42vw);padding:8px 11px 7px;background:#080c18d1;border:1px solid rgba(106,162,255,.42);border-radius:8px;box-shadow:0 2px 12px #00000059}#selfFrame.hidden{display:none}.sfNameRow{display:flex;align-items:baseline;justify-content:space-between;gap:10px}#sfName{color:#9ec0ff;font-size:13px;font-weight:700;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.7)}.sfLevel{color:#9fe7ff;font-weight:700;letter-spacing:.02em}.sfXp{color:#e8eefc;font-size:12px;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(0,0,0,.7)}.sfHint{margin-top:4px;color:#8aa0c8;font-size:10px}.sfBuff{margin-top:4px;color:#b89a6e;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.75)}.sfBuff.hidden{display:none}.sfBuff.active{color:#e0b878;text-shadow:0 1px 2px rgba(0,0,0,.8),0 0 6px rgba(180,120,50,.28);animation:sfBuffPulse 1.7s ease-in-out infinite}@keyframes sfBuffPulse{0%,to{opacity:.86}50%{opacity:1}}#selfFrame.resting{border-color:#50b4a0a6;box-shadow:0 0 10px #3ca09138,0 2px 12px #00000059,inset 0 0 0 1px #64c8b93d}.sfRest{margin-top:4px;color:#88d4c4;font-size:11px;font-weight:750;letter-spacing:.04em;text-transform:uppercase;text-shadow:0 0 6px rgba(70,180,160,.35)}.sfRest.hidden{display:none}.sfRest.exiting{color:#b0cec8;text-shadow:none;opacity:.85}#selfFrame.ccStun{border-color:#64beffe0;box-shadow:0 0 16px #50aaff6b,0 2px 12px #00000059,inset 0 0 0 1px #8cd2ff52}#selfFrame.ccSilence{border-color:#b478ffd1;box-shadow:0 0 16px #965aff61,0 2px 12px #00000059,inset 0 0 0 1px #c896ff47}.sfCc{margin-top:5px;padding:4px 8px;border-radius:5px;font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.04em;text-transform:uppercase;text-shadow:0 1px 2px rgba(0,0,0,.85);border:1px solid transparent}.sfCc.hidden{display:none}.sfCc.stun{color:#b6e2ff;background:#081c30f0;border-color:#64beffb8;box-shadow:0 0 10px #46a0ff59,inset 0 0 0 1px #8cd2ff2e;text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 8px rgba(80,170,255,.55);animation:sfCcPulse 1.1s ease-in-out infinite}.sfCc.silence{color:#e0c6ff;background:#1c0c2cf0;border-color:#b478ffb3;box-shadow:0 0 10px #965aff52,inset 0 0 0 1px #c896ff29;text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 8px rgba(160,100,255,.5);animation:sfCcPulse 1.25s ease-in-out infinite}@keyframes sfCcPulse{0%,to{opacity:.88}50%{opacity:1}}#loadoutStrip{pointer-events:none;display:flex;gap:6px;flex-wrap:wrap;width:100%;max-width:100%}#loadoutStrip.hidden{display:none}.loChip{display:flex;align-items:center;gap:5px;padding:5px 8px;background:#0a0806f0;border:1px solid rgba(110,98,78,.42);border-radius:7px;box-shadow:0 2px 8px #0000007a;min-width:0}.loChip.on{border-color:#c49458d1;background:#160f09f5;box-shadow:0 2px 8px #0000007a,inset 0 0 0 1px #c4945833}.loChip.off{opacity:.82;filter:none;border-color:#6e8cb266;background:#080c1485;box-shadow:inset 0 0 0 1px #5a78a024,0 1px 4px #00000047}.loIcon{font-size:12px;line-height:1;color:#d8e6ff}.loIcon.staff{color:#c4a06a}.loIcon.robes{color:#7a9adf}.loIcon.spark{color:#9ec0ff}.loIcon.ember{color:#e0a050}.loIcon.shard{color:#d4924a}.loIcon.tonic{color:#c9a060}.loIcon.bandage{color:#c8b8a0}.loChip.off .loIcon{color:#7a90b0;opacity:.75}.loLabel{color:#f0f6ff;font-size:11px;font-weight:650;text-shadow:0 1px 2px rgba(0,0,0,.65)}.loChip.off .loLabel{color:#a8b8d0}.loState{color:#aec4e8;font-size:10px;font-weight:650;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(0,0,0,.65)}.loChip.on .loState{color:#d4a878}.loChip.off .loState{color:#8aa0c0}#bagPanel{position:absolute;right:12px;bottom:22px;z-index:13;pointer-events:none;width:min(240px,48vw);padding:10px 12px 9px;background:#080c18f0;border:1px solid rgba(196,160,106,.6);border-radius:10px;box-shadow:0 4px 18px #00000080;display:flex;flex-direction:column;gap:5px;opacity:1;transform:translateY(0);transition:opacity .15s ease,transform .15s ease}#bagPanel.hidden{opacity:0;transform:translateY(8px);pointer-events:none}.bagHead{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:4px}.bagTitle{color:#f4d6aa;font-size:13px;font-weight:700;letter-spacing:.02em}.bagKey{color:#9ec0ff;font-size:11px;font-weight:700;border:1px solid rgba(106,162,255,.35);border-radius:4px;padding:1px 6px}.bagRow{display:flex;justify-content:space-between;gap:12px;color:#d4e0f8;font-size:12px}.bagRow span:last-child{color:#f0f6ff;font-variant-numeric:tabular-nums;font-weight:600}.bagRow span:last-child.ok{color:#6ee89a;font-weight:700}.bagRow span:last-child.bad{color:#ec564c;font-weight:700}.bagFoot{margin-top:4px;color:#9eb4d8;font-size:10px;line-height:1.35}#keysLegend{position:absolute;left:50%;top:14%;transform:translate(-50%);z-index:14;pointer-events:none;width:min(580px,94vw);padding:10px 12px 9px;background:#060a14eb;border:1px solid rgba(168,178,196,.42);border-radius:8px;box-shadow:0 4px 20px #00000094,inset 0 0 0 1px #ffffff0d;display:flex;flex-direction:column;gap:7px}#keysLegend.hidden{display:none}#keysLegend .bagTitle{color:#d8dde6;text-shadow:0 1px 2px rgba(0,0,0,.85)}#keysLegend .bagKey{color:#1a2030;background:linear-gradient(180deg,#eef1f6,#cfd6e2);border:1px solid rgba(190,200,214,.9);box-shadow:inset 0 1px #ffffff8c,0 1px 2px #0006}#keysLegend .klRows{display:flex;flex-direction:column;gap:0}#keysLegend .klRow{display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px;padding:6px 2px 7px;border-top:1px solid rgba(168,178,196,.18)}#keysLegend .klRow:first-child{border-top:none;padding-top:2px}#keysLegend .klRow:before{content:attr(data-group);flex:0 0 auto;min-width:3.6em;margin-right:4px;color:#9aa3b2;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-shadow:0 1px 2px rgba(0,0,0,.85)}#keysLegend .klChip{display:inline-flex;align-items:center;gap:5px;color:#d6dce8;font-size:12px;line-height:1.3;padding:2px 4px 2px 2px;text-shadow:0 1px 2px rgba(0,0,0,.75)}#keysLegend .klChip kbd{display:inline-block;color:#1a2030;font-family:inherit;font-size:11px;font-weight:700;border:1px solid rgba(190,200,214,.88);border-radius:4px;padding:1px 6px;background:linear-gradient(180deg,#eef1f6,#c8d0de);box-shadow:inset 0 1px #ffffff8c,0 1px 2px #0000006b;min-width:1.1em;text-align:center;text-shadow:none}#keysLegend .klChip[data-bind=rmb].armed{color:#d8dde6;background:#b4bed224;border-radius:5px;box-shadow:0 0 0 1px #bec8d68c,inset 0 0 0 1px #ffffff0f;text-shadow:0 1px 2px rgba(0,0,0,.75)}#keysLegend .klChip[data-bind=rmb].armed .klRmbLabel{font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#eef1f6}body[data-rmb-look=armed] #status[data-conn]{border-color:#bec8d69e;box-shadow:0 0 0 1px #78829647}#keysLegend .bagFoot{margin-top:2px;padding-top:6px;border-top:1px solid rgba(168,178,196,.16);color:#7e8a9c;font-size:10px;line-height:1.35}#partyFrames{display:flex;flex-direction:column;gap:5px;width:min(240px,70vw);pointer-events:none}#partyFrames.hidden{display:none}.pfHead{color:#9dffb0;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.9;padding:0 2px}.pfRow{display:flex;flex-direction:column;gap:2px;padding:6px 9px 5px;background:#08120ed1;border:1px solid rgba(94,214,138,.38);border-radius:7px;box-shadow:0 2px 10px #0000004d}.pfRow.self{border-color:#6aa2ff6b;background:#080c18d1}.pfRow.leader{border-color:#ffd26e73}.pfNameRow{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.pfName{color:#c8f5d4;font-size:12px;font-weight:700;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.7)}.pfRow.self .pfName{color:#9ec0ff}.pfTag{color:#e8c89a;font-size:10px;font-weight:650}.pfMeta{color:#8ab89a;font-size:10px;font-variant-numeric:tabular-nums}.pfRow.self .pfMeta{color:#8aa0c8}.pfHpBar{position:relative;margin-top:3px;height:12px;background:#030509f5;border:1px solid rgba(0,0,0,.88);border-radius:4px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff12,0 0 0 1px #0000008c,0 1px 3px #00000073}.pfHpFill{position:absolute;left:0;top:0;bottom:0;width:100%;background:linear-gradient(90deg,#178a42,#3ce072);transition:width 80ms linear,background .12s ease}.pfRow.self .pfHpFill{background:linear-gradient(90deg,#178a42,#3ce072)}.pfHpFill.mid,.pfRow.self .pfHpFill.mid{background:linear-gradient(90deg,#c4860c,#f0c22e)}.pfHpFill.low,.pfRow.self .pfHpFill.low{background:linear-gradient(90deg,#b41c14,#f04836)}.pfHpLabel{position:relative;z-index:1;display:block;padding:0 6px;font-size:9px;line-height:12px;font-weight:700;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.98),0 1px 3px rgba(0,0,0,.92),0 0 1px #000;text-align:center;font-variant-numeric:tabular-nums}.pfRow.dead{opacity:.72;border-color:#b4505073}#combatLog{position:absolute;right:12px;top:184px;z-index:12;pointer-events:none;width:min(292px,44vw);max-height:min(300px,44vh);display:flex;flex-direction:column;background:#060a14e0;border:1px solid rgba(150,168,196,.34);border-radius:8px;box-shadow:0 2px 14px #00000085,inset 0 0 0 1px #ffffff0b;overflow:hidden}.clHead{padding:5px 9px 3px;color:#d2dae8;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid rgba(150,168,196,.22);text-shadow:0 1px 2px rgba(0,0,0,.85)}.clLines{display:flex;flex-direction:column;gap:3px;padding:6px 9px 8px;overflow:hidden;max-height:min(268px,40vh)}.clLine{color:#c6ceda;font-size:12px;line-height:1.38;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(0,0,0,.92),0 0 1px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clLine .clTime{color:#7a8799;opacity:.88;margin-right:5px;font-size:10px;font-weight:500}.clLine .clTag{opacity:.92;margin-right:5px;font-size:10px;font-weight:700;letter-spacing:.02em}.clLine.cast,.clLine.equip,.clLine.party,.clLine.mana,.clLine.castCancel,.clLine.castPushback,.clLine.castHardInterrupt,.clLine.silenced,.clLine.kick,.clLine.stun,.clLine.outOfRange{color:#c6ceda}.clLine.damage{color:#e89048;font-weight:650}.clLine.damage .clTag{color:#e07038}.clLine.bandage,.clLine.rest,.clLine.tonic{color:#3ecf78;font-weight:650}.clLine.bandage .clTag,.clLine.rest .clTag,.clLine.tonic .clTag{color:#34c06c}.clLine.death{color:#f07870;font-weight:750}.clLine.death .clTag{color:#ee6860}.clLine.respawn{color:#7dcaa0;font-weight:650}.clLine.respawn .clTag{color:#6cbc90}#fpsHud.hidden{display:none}#fpsHud{position:absolute;right:184px;top:12px;z-index:12;pointer-events:none;min-width:168px;padding:7px 10px 8px;border-radius:8px;background:#080c18d1;border:1px solid rgba(255,255,255,.16);box-shadow:0 2px 10px #00000059;color:#e8eefc;font-variant-numeric:tabular-nums}#fpsHud .fpsRow{display:flex;align-items:baseline;gap:8px}#fpsHud .fpsLabel{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8aa0c8}#fpsHud .fpsValue{font-size:22px;font-weight:750;line-height:1;min-width:2ch}#fpsHud .fpsFloor{font-size:10px;color:#8ab89a;margin-left:auto}#fpsHud .fpsCounts{margin-top:4px;font-size:11px;line-height:1.35;color:#c8d6f0}#fpsHud.fps-green{border-color:#5ed68a73}#fpsHud.fps-green .fpsValue{color:#5ed68a}#fpsHud.fps-amber{border-color:#ffb34780}#fpsHud.fps-amber .fpsValue{color:#ffb347}#fpsHud.fps-red{border-color:#dc50508c}#fpsHud.fps-red .fpsValue{color:#f07070}#toastStack{position:absolute;top:14px;left:50%;transform:translate(-50%);z-index:20;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:8px;width:min(420px,70vw);max-width:70vw}.sysToast{display:flex;align-items:baseline;gap:9px;padding:7px 13px 8px;border-radius:8px;background:#040810f0;border:1px solid rgba(168,180,200,.42);box-shadow:0 3px 14px #00000094,inset 0 0 0 1px #dce6f50f;color:#e6ecf6;font-size:13px;line-height:1.32;text-shadow:0 1px 2px rgba(0,0,0,.92),0 0 1px #000;opacity:0;transform:translateY(-10px);animation:toastIn .18s ease-out forwards,toastOut .32s ease-in forwards;animation-delay:0ms,var(--toast-ttl, 2.8s);max-width:100%}.sysToast .toastTag{font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;opacity:1;flex-shrink:0;text-shadow:0 1px 2px rgba(0,0,0,.95),0 0 1px #000}.sysToast .toastMsg{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;color:#d8e0ec}.sysToast.connected{border-color:#609ee6b8}.sysToast.connected .toastTag{color:#7eb6f0}.sysToast.invite{border-color:#38c46ec7}.sysToast.invite .toastTag{color:#3ecf78}.sysToast.party{border-color:#48bc78b3}.sysToast.party .toastTag{color:#52c888}.sysToast.xp{border-color:#e8a840c7}.sysToast.xp .toastTag{color:#f0b040}.sysToast.level{border-color:#78bce6b3}.sysToast.level .toastTag{color:#8ec8e8}.sysToast.equip{border-color:#c49458c2}.sysToast.equip .toastTag{color:#c89658}.sysToast.death{border-color:#d25858c2}.sysToast.death .toastTag{color:#e07070}.sysToast.respawn{border-color:#48c496b8}.sysToast.respawn .toastTag{color:#5ec8a0}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}#chatPanel{display:flex;flex-direction:column;width:100%;max-height:min(176px,30vh);background:#060a14e6;border:1px solid rgba(168,178,196,.38);border-radius:8px;box-shadow:0 2px 14px #0000008c,inset 0 0 0 1px #ffffff0b;overflow:hidden;pointer-events:none}#chatPanel.composing{pointer-events:auto;border-color:#c6d0e09e;box-shadow:0 2px 16px #00000094,0 0 0 1px #d2dae62e,inset 0 0 0 1px #ffffff0f}.chatHead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:5px 9px 3px;color:#d0d6e0;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid rgba(168,178,196,.22);text-shadow:0 1px 2px rgba(0,0,0,.85);pointer-events:none}.chatHint{opacity:.78;font-weight:600;letter-spacing:.02em;text-transform:none;font-size:10px;color:#9aa3b2}.chatLines{display:flex;flex-direction:column;gap:3px;padding:6px 9px 7px;overflow:hidden;max-height:min(118px,19vh);pointer-events:none}.chatLine{color:#c6ceda;font-size:12px;line-height:1.38;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(0,0,0,.92),0 0 1px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chatLine.say{color:#e6e2d8}.chatLine.say .chatWho{color:#d8d0c4}.chatLine.say.remote .chatWho{color:#cfc6b8}.chatLine.say.local .chatWho{color:#e0d8cc}.chatLine .chatTag{color:#7a8799;opacity:.9;margin-right:5px;font-size:10px;font-weight:500}.chatLine .chatWho{font-weight:700;margin-right:4px}.chatForm{display:flex;align-items:center;gap:6px;padding:4px 8px 7px;border-top:1px solid rgba(168,178,196,.2);opacity:.55;pointer-events:none}#chatPanel.composing .chatForm{opacity:1;pointer-events:auto}.chatPrompt{color:#c8d0dc;font-size:10px;font-weight:750;letter-spacing:.04em;text-transform:uppercase;flex-shrink:0;text-shadow:0 1px 2px rgba(0,0,0,.85)}#chatInput{flex:1;min-width:0;background:#0000007a;border:1px solid rgba(168,178,196,.42);border-radius:5px;color:#f0eee8;font:inherit;font-size:12px;padding:4px 7px;outline:none;box-shadow:inset 0 1px 2px #00000059}#chatInput:focus{border-color:#d2dae6b8;background:#0000008c}.sysToast.say{border-color:#d2c8b47a}.sysToast.say .toastTag{color:#d8d0c4}.sysToast.rate{border-color:#dc966480}.sysToast.rate .toastTag{color:#e0a078}.chatLine.party{color:#b8dcc4}.chatLine.party .chatWho{color:#6fb888}.chatLine.party.remote .chatWho{color:#7ec498}.chatLine.party.local .chatWho{color:#78be90}.chatLine .chatChannel{color:#6fb888;font-weight:800;margin-right:4px;font-size:10px}#chatPanel.partyMode .chatPrompt{color:#78be90}#chatPanel.partyMode #chatInput{border-color:#6fb8887a}#chatPanel.partyMode #chatInput:focus{border-color:#7ec498b8}.sysToast.partySay{border-color:#6fb8887a}.sysToast.partySay .toastTag{color:#6fb888}.chatLine.whisper{color:#c4c8e0}.chatLine.whisper .chatWho{color:#a898c8}.chatLine.whisper.remote .chatWho{color:#b4a4d0}.chatLine.whisper.local .chatWho{color:#aea0c8}.chatLine .chatChannel.whisperTag{color:#9aa8c8}#chatPanel.whisperMode .chatPrompt{color:#a8a0c8}#chatPanel.whisperMode #chatInput{border-color:#a8a0c87a}#chatPanel.whisperMode #chatInput:focus{border-color:#b4acd0b8}.sysToast.whisper{border-color:#a8a0c87a}.sysToast.whisper .toastTag{color:#a898c8}.sysToast.trade,.sysToast.loot{border-color:#ffa0468c}.sysToast.loot .toastTag{color:#ffb04a}.clLine.trade,.clLine.loot{color:#d2b896}.clLine.trade .clTag,.clLine.loot .clTag{color:#c9a878}#vendorPanel{position:absolute;left:50%;top:36%;transform:translate(-50%,-50%);z-index:15;pointer-events:auto;min-width:240px;max-width:min(300px,90vw);padding:10px 12px;background:#060a14f0;border:1px solid rgba(168,184,208,.48);border-radius:10px;box-shadow:0 4px 18px #0000008c,inset 0 0 0 1px #dce6f50f;color:#e4eaf4;font-size:12px;display:flex;flex-direction:column;gap:5px}#vendorPanel.hidden{display:none}#vendorPanel .bagTitle{color:#d8e2f0;text-shadow:0 1px 2px rgba(0,0,0,.75)}#vendorPanel .bagKey{color:#e8f0fc;font-size:11px;font-weight:800;border:1px solid rgba(180,198,224,.58);border-radius:4px;padding:1px 7px;background:#0e1626e6;box-shadow:inset 0 0 0 1px #ffffff0f;text-shadow:0 0 1px rgba(0,0,0,.95)}#vendorPanel .bagFoot{margin-top:5px;color:#8a9bb4;font-size:10px;line-height:1.35;opacity:.88}#vendorPanel .bagRow.vendorBuy{color:#dcc4a4;background:#2a1c0e6b;border:1px solid rgba(168,118,62,.38);border-radius:5px;padding:4px 8px}#vendorPanel .bagRow.vendorBuy span:last-child{color:#c9a070;font-weight:700}#vendorPanel .bagRow.vendorSell{color:#b4c4c0;background:#0c1c1a66;border:1px solid rgba(120,160,148,.36);border-radius:5px;padding:4px 8px}#vendorPanel .bagRow.vendorSell span:last-child{color:#9eb4ac;font-weight:700}.vendorActions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.vendorActions button{flex:1;min-width:64px;cursor:pointer;border-radius:6px;border:1px solid rgba(168,184,208,.4);background:#101828e6;color:#d4deee;padding:6px 8px;font-size:11px}.vendorActions button:hover{border-color:#c4d2e6a6;background:#182234f2}.sysToast.tonic{border-color:#7dffb58c}.sysToast.tonic .toastTag{color:#7dffb5}.sysToast.rest{border-color:#5adc8cbf;background:linear-gradient(180deg,#0a2416f0,#08100ee6);box-shadow:0 4px 18px #00000073,0 0 12px #50dc8c47}.sysToast.rest .toastTag{color:#9fffc8;background:#50dc8c29;padding:2px 7px;border-radius:4px;border:1px solid rgba(125,255,181,.4)}.sysToast.bandage{border-color:#78e6aa8c}.sysToast.bandage .toastTag{color:#7dffc0}.sysToast.bag{border-color:#a8b4c86b}.sysToast.bag .toastTag{color:#a8b4d0}.clLine.vendor{color:#c6ceda}.clLine.vendor .clTag{color:#a8b4c4}.sysToast.vendor .toastTag{color:#6dffb0}.sysToast.vendor{border-color:#50dca08c}.sfHpBar{position:relative;margin-top:6px;height:14px;background:#030509f5;border:1px solid rgba(0,0,0,.88);border-radius:5px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff12,0 0 0 1px #0000008c,0 1px 3px #00000073}.sfHpFill{position:absolute;left:0;top:0;bottom:0;width:100%;background:linear-gradient(90deg,#178a42,#3ce072);transition:width 80ms linear,background .12s ease}.sfHpFill.mid{background:linear-gradient(90deg,#c4860c,#f0c22e)}.sfHpFill.low{background:linear-gradient(90deg,#b41c14,#f04836)}.sfHpLabel{position:relative;z-index:1;display:block;padding:0 8px;font-size:10px;line-height:14px;font-weight:700;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.98),0 1px 3px rgba(0,0,0,.92),0 0 1px #000;text-align:center;font-variant-numeric:tabular-nums}#deathGreyout{position:absolute;inset:0;z-index:40;pointer-events:none;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#120c0e7a,#0c080ad1 68%,#060406eb),#0e0a0cc2;backdrop-filter:grayscale(.95) brightness(.38) contrast(1.08) saturate(.7);-webkit-backdrop-filter:grayscale(.95) brightness(.38) contrast(1.08) saturate(.7)}#deathGreyout.hidden{display:none}.deathGreyInner{text-align:center;padding:26px 38px;border-radius:14px;background:#100c0eeb;border:1px solid rgba(180,72,72,.62);box-shadow:0 8px 42px #000c,inset 0 0 28px #3c121238}.deathTitle{color:#f0d8d2;font-size:30px;font-weight:800;letter-spacing:.08em;text-shadow:0 3px 16px rgba(0,0,0,.95),0 0 22px rgba(160,50,50,.28)}.deathSub{margin-top:12px;color:#a2acb8;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.03em;text-shadow:0 2px 8px rgba(0,0,0,.9)}.deathCountdown{margin-top:10px;color:#fff;font-size:52px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 3px 18px rgba(0,0,0,1),0 0 28px rgba(180,60,60,.35)}.sfManaBar{position:relative;margin-top:4px;height:12px;background:#0c0c10d9;border:1px solid rgba(255,255,255,.12);border-radius:5px;overflow:hidden}.sfManaFill{position:absolute;left:0;top:0;bottom:0;width:100%;background:linear-gradient(90deg,#2a3f9a,#5b7cff);transition:width 80ms linear,background .12s ease}.sfManaFill.mid{background:linear-gradient(90deg,#3a4fb0,#7a94ff)}.sfManaFill.low{background:linear-gradient(90deg,#1e2a66,#4a5bb8)}.sfManaLabel{position:relative;z-index:1;display:block;padding:0 8px;font-size:10px;line-height:12px;color:#e8eefc;text-shadow:0 1px 2px rgba(0,0,0,.75);text-align:center}.spellSlot.lowMana{opacity:1;filter:none;border:2px solid rgba(90,170,255,.95);background:linear-gradient(180deg,#12306ef2,#061030f0);box-shadow:0 0 16px #3282ff73,inset 0 0 18px #286eff47}.spellSlot.lowMana .slotName{color:#c8dcff;margin-bottom:10px}.spellSlot.lowMana .slotKey{color:#9ec8ff}.spellSlot.lowMana .slotBadge{display:inline-flex;align-items:center;justify-content:center;left:4px;right:4px;bottom:4px;min-width:0;width:auto;padding:2px 5px;border-radius:5px;font-size:10px;font-weight:900;letter-spacing:.06em;line-height:13px;background:#0a2464f5;border:1px solid rgba(130,190,255,.9);color:#e6f0ff;box-shadow:0 1px 6px #1e5adc8c}.spellSlot.lowMana .slotBadge:before{content:"◆ OOM"}.spellSlot.disabled.lowMana{opacity:1;filter:grayscale(.85) brightness(.78);border:2px solid rgba(220,175,95,.92);background:repeating-linear-gradient(-45deg,#1c140aeb 0 5px,#2a1e0eeb 5px 10px);box-shadow:inset 0 0 0 1px #00000073,0 0 10px #b4782838}.spellSlot.disabled.lowMana .slotBadge{background:#37260cf5;border:1px solid rgba(236,190,100,.85);color:#ffe2a0;box-shadow:0 1px 4px #0000008c}.spellSlot.disabled.lowMana .slotBadge:before{content:"🔒 STAFF"}.spellSlot.disabled.lowMana .slotKey{color:#e6c98a}.spellSlot.casting:not(.disabled):not(.lowMana):not(.empty){border-width:2px}.spellSlot.onGcd:not(.disabled):not(.lowMana):not(.empty){border-width:2px}.sysToast.mana{border:2px solid rgba(90,190,255,.96);background:linear-gradient(180deg,#082044f7,#040c1cf5);box-shadow:0 0 0 1px #020610eb,0 4px 18px #00000080,0 0 18px #3c96ff6b}.sysToast.mana .toastTag{color:#d0e8ff;background:#46a0ff52;padding:2px 8px;border-radius:4px;border:1px solid rgba(100,180,255,.75);font-weight:750}.sysToast.castCancel{border:2px solid rgba(255,190,90,.98);background:linear-gradient(180deg,#301e08f7,#100a04f5);box-shadow:0 0 0 1px #080502e6,0 4px 18px #00000080,0 0 16px #ffaa3c61}.sysToast.castCancel .toastTag{color:#ffe2a8;background:#ffa03247;padding:2px 8px;border-radius:4px;border:1px solid rgba(255,200,100,.7);font-weight:750}.clLine.castCancel .clTag{color:#b8c0cc}.sysToast.castPushback{border-color:#ff785a8c}.sysToast.castPushback .toastTag{color:#ff7860}.clLine.castPushback .clTag{color:#b8c0cc}.sysToast.castHardInterrupt{border:2px solid rgba(255,48,78,1);background:linear-gradient(180deg,#400410fa,#140208f7);box-shadow:0 0 0 1px #0a0004f2,0 4px 22px #0000008c,0 0 22px #ff1e3c8c}.sysToast.castHardInterrupt .toastTag{color:#ffd0d6;background:#dc14376b;padding:2px 8px;border-radius:4px;border:1px solid rgba(255,70,95,.85);letter-spacing:.1em;font-weight:800}.clLine.castHardInterrupt .clTag{color:#b8c0cc}.sysToast.silenced{border-color:#b478ffa6}.sysToast.silenced .toastTag{color:#c49bff}.clLine.silenced .clTag{color:#b8c0cc}.spellSlot.outOfRange{opacity:.42;filter:saturate(.4) brightness(.7)}.spellSlot.outOfRange .slotName{color:#ffb07a}.sysToast.outOfRange{border-color:#ffa05aa6}.sysToast.outOfRange .toastTag{color:#ffb07a}.clLine.outOfRange .clTag{color:#b8c0cc}.sysToast.kick{border-color:#ffa03cb3}.sysToast.kick .toastTag{color:#ffb03c}.clLine.kick .clTag{color:#b8c0cc}.sysToast.stun{border-color:#78c8ffbf}.sysToast.stun .toastTag{color:#7ec8ff}.clLine.stun .clTag{color:#b8c0cc}.sysToast.canvasFocus{border-color:#64b4ffcc}.sysToast.canvasFocus .toastTag{color:#64b4ff}
