*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;background:#0a0d12}.canvas-mount{position:fixed;inset:0}.hud,.actionbar{position:fixed;z-index:10}.hud{pointer-events:none;-webkit-user-select:none;user-select:none;color:#e8eaed;font:12px/1.5 ui-monospace,SF Mono,Menlo,monospace;text-shadow:0 1px 2px rgba(0,0,0,.8)}.hud-topleft{top:12px;left:12px;padding:8px 12px;background:#080b128c;border:1px solid rgba(255,255,255,.08);border-radius:8px}.hud-title{font-weight:600;margin-bottom:2px;color:#f4d9a6}.actionbar{bottom:18px;left:50%;transform:translate(-50%);display:flex;gap:6px;pointer-events:none;-webkit-user-select:none;user-select:none}.action-slot{position:relative;width:44px;height:44px;border-radius:8px;background:#12161ea8;border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px #0006}.action-key{position:absolute;bottom:2px;right:4px;font:10px/1 ui-monospace,monospace;color:#e8eaed99}.debug-toggle{position:fixed;right:12px;bottom:68px;z-index:46;padding:6px 12px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#0e121adb;color:#e8eaed;font:600 12px/1 system-ui,sans-serif;cursor:pointer}.debug-toggle:hover{background:#1e2634f0}.debug-backdrop{position:fixed;inset:0;z-index:90;border:none;background:#06080c8c;cursor:default}.debug-modal{position:fixed;z-index:91;top:50%;left:50%;transform:translate(-50%,-50%);display:none;flex-direction:column;width:min(720px,92vw);max-height:86vh;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:#0c1017fa;box-shadow:0 18px 60px #0009;pointer-events:auto}.debug-modal.debug-open{display:flex}.debug-modal-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.12)}.debug-modal-title{font:700 14px/1 system-ui,sans-serif;color:#f4d9a6;letter-spacing:.03em}.debug-close{width:28px;height:28px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#28303ecc;color:#e8eaed;font-size:15px;cursor:pointer}.debug-close:hover{background:#46282ce6}.debug-pane{padding:12px 14px 16px;overflow-y:auto;pointer-events:auto}.debug-pane .tp-rotv,.debug-pane .tp-dfwv{width:100%}.debug-pane{--tp-button-background-color: #d7dde6;--tp-button-background-color-active: #aeb8c6;--tp-button-background-color-focus: #c6ced9;--tp-button-background-color-hover: #c6ced9;--tp-button-foreground-color: #10151d}.debug-pane .tp-btnv_b{color:#10151d;font-weight:700}.name-prompt-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0a0c10b8;pointer-events:auto;z-index:20}.name-prompt{display:flex;flex-direction:column;gap:12px;padding:28px 32px;border-radius:10px;background:#1b2230;box-shadow:0 12px 40px #00000080;min-width:280px}.name-prompt h2{margin:0;font:600 18px/1.2 system-ui,sans-serif;color:#e8eaed}.name-prompt input{padding:10px 12px;border-radius:6px;border:1px solid #33506f;background:#0f141d;color:#e8eaed;font:14px/1 system-ui,sans-serif}.name-prompt button{padding:10px 12px;border-radius:6px;border:none;background:#4a6b9a;color:#fff;font:600 14px/1 system-ui,sans-serif;cursor:pointer}.name-prompt button:hover{background:#5a7bab}.join-prompt{min-width:460px}.class-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.class-col{display:flex;flex-direction:column;gap:6px}.class-col-head{font:700 11px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;text-align:center;margin-bottom:2px;opacity:.9}.class-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 6px 7px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#0f141d;color:#e8eaed;cursor:pointer}.class-card:hover{background:#141b26}.class-card-sel{background:#1a2331;box-shadow:0 0 0 1px currentColor inset}.class-card-key{position:absolute;top:3px;left:5px;font:700 9px/1 ui-monospace,monospace;color:#e8eaed8c}.class-card-glyph{font-size:20px;line-height:1}.class-card-name{font:600 12px/1.1 system-ui,sans-serif}.mode-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mode-card{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 6px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#0f141d;color:#e8eaed;cursor:pointer}.mode-card:hover{background:#141b26}.mode-card-sel{background:#1a2331;box-shadow:0 0 0 1px currentColor inset}.mode-card-glyph{font-size:24px;line-height:1}.mode-card-label{font:700 13px/1.1 system-ui,sans-serif}.mode-card-desc{font:500 10px/1.1 system-ui,sans-serif;color:#e8eaed99;text-align:center}.mode-hint{margin:0;font:500 13px/1.4 system-ui,sans-serif;color:#e8eaedbf}.map-picker{display:flex;align-items:center;gap:10px}.map-picker-label{font:700 11px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#e8eaedb3}.map-picker select{flex:1;padding:8px 10px;border-radius:6px;border:1px solid #33506f;background:#0f141d;color:#e8eaed;font:13px/1 system-ui,sans-serif}.slot-charges{position:absolute;top:2px;right:4px;min-width:12px;text-align:center;font:800 11px/1 ui-monospace,monospace;color:#f2d9a0;text-shadow:0 1px 2px rgba(0,0,0,1);z-index:2}.slot-empty{filter:grayscale(.5) brightness(.8)}.uf-formed{border-color:#a3783cb3;box-shadow:0 2px 10px #0000008c,inset 0 0 22px #784e2059}.stealth-indicator{position:fixed;bottom:132px;left:50%;transform:translate(-50%);z-index:12;padding:2px 12px;border-radius:3px;background:#141a28cc;border:1px solid rgba(150,170,210,.5);font:700 11px/1.4 system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#aebfe0;pointer-events:none;-webkit-user-select:none;user-select:none}.np-small .np-hp{width:44px;height:4px}.np-small .np-name{font-size:9px;opacity:.9}.vignette{position:fixed;inset:0;z-index:9;pointer-events:none;background:radial-gradient(ellipse at center,transparent 52%,rgba(158,22,22,.75) 100%)}.frames-row{position:fixed;top:12px;left:12px;z-index:11;display:flex;align-items:flex-start;gap:8px;pointer-events:none;-webkit-user-select:none;user-select:none;font:12px/1.35 system-ui,sans-serif}.unit-frame{width:300px;padding:10px 13px 11px;background:#0a0d14d1;border:1px solid rgba(232,183,74,.22);border-radius:3px;box-shadow:0 2px 10px #0000008c;transition:border-color .35s ease,box-shadow .35s ease}.uf-combat{border-color:#d2544ad9;box-shadow:0 2px 10px #0000008c,inset 0 0 20px #9e282247}.uf-combat-glyph{display:inline-block;margin-right:6px;color:#e07068;text-shadow:0 1px 2px rgba(0,0,0,.9)}.uf-tot{width:184px;padding:7px 11px 8px}.uf-dead{filter:grayscale(.9);opacity:.65}.uf-name{font-weight:700;font-size:17px;margin-bottom:6px;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.uf-dead-tag{color:#8a8f98;font-weight:400;font-size:15px}.bar{position:relative;height:21px;margin-top:4px;background:#10141ce6;border:1px solid rgba(255,255,255,.09);border-radius:2px;overflow:hidden}.bar-fill{position:absolute;inset:0;transform-origin:left;transition:transform 90ms linear}.bar-hp .bar-fill{background:linear-gradient(180deg,#4cbb62,#2e8442)}.bar-mana{height:15px}.bar-mana .bar-fill{background:linear-gradient(180deg,#4d7fd6,#2f56a2)}.uf-secondary{display:flex;gap:4px;margin-top:5px;justify-content:flex-start}.sec-pip{width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.6);background:#ffffff1f;box-shadow:inset 0 1px 2px #00000080}.sec-pip-on{background:radial-gradient(circle at 40% 35%,#ffe89a,#e0a92a 70%);border-color:#b7841f;box-shadow:0 0 5px #f0be46cc}.bar-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:700 14px/1 ui-monospace,monospace;color:#eef1f4;text-shadow:0 1px 2px rgba(0,0,0,.95)}.uf-pips,.np-pips{display:flex;gap:4px;margin-top:6px;justify-content:flex-start}.np-pips{justify-content:center;margin-top:2px}.pip{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.6);box-shadow:0 0 4px #00000080;font:700 12px/16px system-ui,sans-serif;color:#0b0d12;text-align:center}.pip-sm{width:10px;height:10px}.uf-cast{position:relative;height:17px;margin-top:6px;background:#10141ce6;border:1px solid rgba(232,183,74,.35);border-radius:2px;overflow:hidden}.uf-cast-fill{position:absolute;inset:0;transform-origin:left;background:linear-gradient(180deg,#e8b74a,#b98a2e);transition:transform 90ms linear}.uf-cast-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:700 13px/1 system-ui,sans-serif;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8)}.nameplates{position:fixed;inset:0;z-index:10;pointer-events:none;-webkit-user-select:none;user-select:none;overflow:hidden}.nameplate{position:absolute;left:0;top:0;width:84px;text-align:center;will-change:transform}.np-dead{opacity:.3}.np-targeted{width:96px}.np-name{font:700 10px/1.2 system-ui,sans-serif;text-shadow:0 1px 2px rgba(0,0,0,.95);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.np-targeted .np-name{font-size:11px}.np-hp{position:relative;width:60px;height:5px;margin:2px auto 0;background:#0c0f16eb;border:1px solid rgba(0,0,0,.7);border-radius:1px;overflow:hidden}.np-targeted .np-hp{height:7px;outline:1px solid rgba(232,183,74,.85);outline-offset:1px}.np-hp-fill{position:absolute;inset:0;transform-origin:left;transition:transform 90ms linear}.np-cast{position:relative;width:60px;height:3px;margin:1px auto 0;background:#0c0f16eb;border-radius:1px;overflow:hidden}.np-cast-fill{position:absolute;inset:0;transform-origin:left;background:#e8b74a}.combat-text-layer{position:fixed;inset:0;z-index:12;pointer-events:none;-webkit-user-select:none;user-select:none;overflow:hidden}.ct{position:absolute;font:800 21px/1 system-ui,sans-serif;text-shadow:0 1px 2px rgba(0,0,0,.95),0 0 6px rgba(0,0,0,.5);animation:ct-rise 1.2s ease-out forwards;will-change:transform,opacity}.ct-damage{color:#ff5a4e}.ct-auto{color:#fff}.ct-absorb{color:#9aa3ad;font-size:16px;font-weight:700}.ct-heal{color:#59d97c}.ct-effect-gain,.ct-effect-loss{color:#b48ae0;font-size:16px;font-weight:700}.ct-in.ct-damage{color:#ffb24d}.ct-in.ct-auto{color:#ffd9a0}.ct-in.ct-heal{color:#8ff0a8}.ct-in.ct-absorb{color:#cfd6de}@keyframes ct-rise{0%{transform:translate(-50%);opacity:1}70%{opacity:1}to{transform:translate(-50%,-44px);opacity:0}}.kill-feed{position:fixed;top:16%;left:50%;transform:translate(-50%);z-index:12;pointer-events:none;-webkit-user-select:none;user-select:none;text-align:center}.kill-entry{font:700 14px/1.5 system-ui,sans-serif;color:#e8d9b0;text-shadow:0 1px 3px rgba(0,0,0,.95);animation:kill-fade 4s linear forwards}@keyframes kill-fade{0%,80%{opacity:1}to{opacity:0}}.own-cast{position:fixed;bottom:104px;left:50%;transform:translate(-50%);z-index:11;width:320px;height:22px;background:#0a0d14d9;border:1px solid rgba(232,183,74,.4);border-radius:3px;overflow:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}.own-cast-fill{position:absolute;inset:0;transform-origin:left;background:linear-gradient(180deg,#e8b74a,#a97e28);transition:transform 70ms linear}.own-cast-fail .own-cast-fill{background:linear-gradient(180deg,#d4453a,#8e2721)}.own-cast-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:700 12px/1 system-ui,sans-serif;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8)}.own-cast-fail .own-cast-text{color:#f4e9e8}.own-cast-hint{position:absolute;right:6px;top:50%;transform:translateY(-50%);font:400 9px/1 system-ui,sans-serif;color:#16130abf}.swing-bars{position:fixed;bottom:128px;left:50%;transform:translate(-50%);z-index:11;width:320px;display:flex;flex-direction:column;gap:2px;pointer-events:none;-webkit-user-select:none;user-select:none}.swing-bar{position:relative;height:5px;background:#0a0d14cc;border:1px solid rgba(232,183,74,.22);border-radius:2px;overflow:hidden}.swing-bar-fill{position:absolute;inset:0;transform-origin:left;transition:transform 70ms linear}.swing-bar-own .swing-bar-fill{background:linear-gradient(180deg,#e8b74a,#a97e28)}.swing-bar-target .swing-bar-fill{background:linear-gradient(180deg,#d86f6a,#a3423d)}.toasts{position:fixed;bottom:136px;left:50%;transform:translate(-50%);z-index:12;display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none;-webkit-user-select:none;user-select:none}.toast{padding:4px 14px;background:#2e0c0ce0;border:1px solid rgba(212,69,58,.55);border-radius:3px;font:700 12px/1.3 system-ui,sans-serif;color:#f0b9b4;text-shadow:0 1px 2px rgba(0,0,0,.9);animation:toast-life 1.5s linear forwards}@keyframes toast-life{0%,75%{opacity:1}to{opacity:0}}.hud-actionbar{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:11;display:flex;gap:6px;-webkit-user-select:none;user-select:none}.slot{position:relative;width:52px;height:52px;padding:0;border-radius:4px;background:linear-gradient(180deg,#181d28eb,#0d1018eb);border:1px solid rgba(232,183,74,.25);box-shadow:inset 0 0 0 1px #00000080,0 2px 6px #00000080;cursor:pointer;pointer-events:auto}.slot:hover{border-color:#e8b74a99}.slot:active{transform:translateY(1px)}.slot-glyph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.9))}.slot-key{position:absolute;top:2px;left:4px;font:700 9px/1 ui-monospace,monospace;color:#e8eaedd9;text-shadow:0 1px 1px rgba(0,0,0,.9)}.slot-cost{position:absolute;bottom:2px;right:4px;font:700 9px/1 ui-monospace,monospace;color:#7fa3d8;text-shadow:0 1px 1px rgba(0,0,0,.9)}.slot-cost-low{color:#e2543e}.slot-cd{position:absolute;inset:0;border-radius:inherit;pointer-events:none}.slot-cd-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:800 14px/1 ui-monospace,monospace;color:#f2d9a0;text-shadow:0 1px 3px rgba(0,0,0,1);pointer-events:none}.slot-gcd{position:absolute;left:0;bottom:0;width:100%;height:3px;transform-origin:left;background:#e8b74acc;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;pointer-events:none}.slot-error{animation:slot-flash .5s linear}@keyframes slot-flash{0%,60%{border-color:#e2543e;box-shadow:inset 0 0 10px #e2543e99,0 0 8px #e2543e99}to{border-color:#e8b74a40}}.corner-stats{position:fixed;top:14px;right:284px;z-index:11;display:flex;gap:10px;pointer-events:none;-webkit-user-select:none;user-select:none;font:11px/1 ui-monospace,monospace;color:#e8eaedcc;text-shadow:0 1px 2px rgba(0,0,0,.9)}.hud-error{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:40;padding:6px 12px;border:1px solid rgba(216,111,106,.7);border-radius:6px;background:#281212db;color:#f0d7d5;font:12px/1.3 ui-monospace,monospace;pointer-events:none;-webkit-user-select:none;user-select:none;text-shadow:0 1px 2px rgba(0,0,0,.9)}.slot-icon{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;pointer-events:none}.pip{position:relative;overflow:visible;padding:0;pointer-events:auto}.pip-icon{display:block;width:100%;height:100%;border-radius:inherit}.pip-stacks{position:absolute;right:-3px;bottom:-3px;font:700 10px/1 ui-monospace,monospace;color:#fff;text-shadow:0 0 2px #000,0 0 2px #000}.uf-cast-icon{position:absolute;left:0;top:0;height:100%;width:17px;object-fit:cover;pointer-events:none}.class-chip{display:inline-block;width:16px;height:16px;margin-right:5px;vertical-align:-3px;border-radius:3px;box-shadow:0 1px 2px #0009}.class-chip-sm{width:11px;height:11px;margin-right:3px;vertical-align:-1px;border-radius:2px}.own-cast-icon{position:absolute;left:0;top:0;height:100%;width:22px;object-fit:cover;pointer-events:none}.tooltip{position:absolute;z-index:50;min-width:150px;max-width:240px;padding:8px 10px;background:#0a0d14f5;border:1px solid rgba(232,183,74,.4);border-radius:4px;box-shadow:0 4px 14px #0009;pointer-events:none;text-align:left;white-space:normal;font:12px/1.35 system-ui,sans-serif;color:#d8dde5}.tooltip-ability{bottom:62px;left:50%;transform:translate(-50%)}.tooltip-sb{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip-effect{bottom:16px;left:50%;transform:translate(-50%)}.tt-name{font-weight:700;color:#f2d9a0;margin-bottom:3px}.tooltip-effect.tt-buff .tt-name{color:#7fd6a0}.tooltip-effect.tt-debuff .tt-name{color:#e2867a}.tt-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:11px;color:#9aa3b0;margin-bottom:4px}.tt-mana{color:#7fa3d8}.tt-kind-buff{color:#7fd6a0}.tt-kind-debuff{color:#e2867a}.tt-stacks{color:#f2d9a0}.tt-desc{color:#c2c8d2}.combat-panel{position:fixed;bottom:12px;left:12px;z-index:12;pointer-events:auto;-webkit-user-select:none;user-select:none;width:340px;max-width:42vw;background:#0a0d14d9;border:1px solid rgba(255,255,255,.08);border-radius:8px;overflow:hidden;font:11px/1.4 ui-monospace,SF Mono,Menlo,monospace}.combat-panel.cp-closed{width:auto}.cp-header{display:flex;align-items:center}.cp-tabs{display:flex;align-items:center;gap:2px;width:100%;padding:4px 4px 0}.cp-tabs button,.cl-seg button,.cl-reset,.cp-reopen{pointer-events:auto;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:5px;color:#c2c8d2;cursor:pointer;font:inherit;padding:3px 10px}.cp-tabs button.on,.cl-seg button.on{background:#f4d9a629;border-color:#f4d9a680;color:#f4d9a6}.cp-tabs button.cp-collapse{margin-left:auto;padding:3px 8px}.cp-reopen{color:#f4d9a6}.cp-body{padding:4px}.cl-empty{color:#c2c8d280;padding:8px 4px;text-align:center}.cl-log{height:176px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.cl-line{display:flex;gap:6px;padding:1px 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cl-time{color:#a0a8b4b3;flex:none}.cl-body{overflow:hidden;text-overflow:ellipsis}.cl-k-damage .cl-body{color:#ff8a80}.cl-k-auto .cl-body{color:#e6e8ec}.cl-k-absorb .cl-body{color:#9aa3ad}.cl-k-heal .cl-body{color:#7fd99a}.cl-k-effect-gain .cl-body,.cl-k-effect-loss .cl-body{color:#c1a1e8}.cl-k-death .cl-body{color:#e8d9b0;font-weight:700}.cl-k-flag .cl-body{color:#ffd76a;font-weight:700}.ctf-panel{position:absolute;top:10px;left:50%;transform:translate(-50%);min-width:260px;padding:8px 14px;background:#0c0e12b8;border:1px solid rgba(255,255,255,.12);border-radius:8px;text-align:center;pointer-events:none;z-index:20;font-family:system-ui,sans-serif}.ctf-scores{display:flex;align-items:center;justify-content:center;gap:16px;font-size:20px;font-weight:800}.ctf-clock{color:#e6e8ec;font-variant-numeric:tabular-nums;font-size:16px;opacity:.9}.ctf-flags{margin-top:4px;display:flex;flex-direction:column;gap:2px;font-size:12px;color:#cdd2d8}.ctf-flag-row{display:flex;align-items:center;justify-content:center;gap:6px}.ctf-flag-dot{width:9px;height:9px;border-radius:2px;display:inline-block}.ctf-wave{margin-top:5px;font-size:13px;font-weight:700;color:#ffd76a}.ctf-outcome{margin-top:5px;font-size:18px;font-weight:900;color:#fff}.announcements{position:absolute;top:22%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none;z-index:21}.announce-banner{padding:8px 20px;background:#0c0e12c7;border:1px solid rgba(255,215,106,.5);border-radius:6px;color:#ffe9a8;font-size:22px;font-weight:800;font-family:system-ui,sans-serif;text-shadow:0 2px 6px rgba(0,0,0,.6);animation:announce-pop .2s ease-out}@keyframes announce-pop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.cl-meters-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.cl-seg{display:flex;gap:2px}.cl-rows{height:148px;overflow-y:auto;scrollbar-width:thin}.cl-mrow{position:relative;display:flex;align-items:center;gap:6px;height:20px;padding:0 6px;margin-bottom:2px;border-radius:3px;overflow:hidden;background:#ffffff0a}.cl-mbar{position:absolute;inset:0;transform-origin:left;background:linear-gradient(90deg,#d86f6a8c,#d86f6a33);z-index:0}.cl-mbar-heal{background:linear-gradient(90deg,#59d97c80,#59d97c2e)}.cl-mname{position:relative;z-index:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e8eaed}.cl-mtotal{position:relative;z-index:1;color:#f4d9a6;font-weight:700}.cl-mrate{position:relative;z-index:1;color:#c2c8d2bf;min-width:54px;text-align:right}.cl-mrow{width:100%;border:none;font:inherit;text-align:left;cursor:pointer}.cl-mrow:hover{background:#ffffff14}.cl-mrow-open{background:#e8b74a1f}.cl-mpets{color:#c2c8d299;font-weight:400;font-size:10px}.cl-mbreakdown{padding:2px 6px 4px 14px;margin-bottom:2px}.cl-mability{display:flex;align-items:center;gap:6px;height:16px;font-size:11px;color:#d8dce4e6}.cl-maname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cl-matotal{color:#f4d9a6;font-weight:700;min-width:40px;text-align:right}.cl-marate{color:#c2c8d2b3;min-width:48px;text-align:right}.cl-mapct{color:#c2c8d28c;min-width:34px;text-align:right}.recap-overlay{position:fixed;inset:0;z-index:22;display:flex;align-items:center;justify-content:center;pointer-events:auto;-webkit-user-select:none;user-select:none}.recap-backdrop{position:absolute;inset:0;z-index:0;border:none;padding:0;cursor:pointer;background:#06080c73}.recap{position:relative;z-index:1;min-width:340px;max-width:90vw;padding:18px 22px;background:#100c0ef5;border:1px solid rgba(212,69,58,.5);border-radius:10px;box-shadow:0 12px 40px #0009;color:#e8eaed;font:12px/1.5 ui-monospace,SF Mono,Menlo,monospace}.recap-title{font:800 18px/1 system-ui,sans-serif;color:#f0b9b4;text-align:center;margin-bottom:4px}.recap-killer{text-align:center;color:#e8d9b0;margin-bottom:10px}.recap-rows{max-height:260px;overflow-y:auto;scrollbar-width:thin}.recap-row{display:flex;align-items:center;gap:8px;padding:2px 4px;border-top:1px solid rgba(255,255,255,.06)}.recap-ago{color:#a0a8b4bf;min-width:42px}.recap-src{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recap-ability{flex:1;color:#c2c8d2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recap-amt{min-width:52px;text-align:right;font-weight:700}.recap-damage .recap-amt{color:#ff8a80}.recap-heal .recap-amt{color:#7fd99a}.recap-effect .recap-ability{color:#c1a1e8}.recap-total{margin-top:10px;text-align:center;font-weight:700;color:#f4d9a6}.recap-dismiss{display:block;margin:12px auto 0;padding:5px 20px;cursor:pointer;background:#d4453a33;border:1px solid rgba(212,69,58,.6);border-radius:6px;color:#f0b9b4;font:700 12px/1 system-ui,sans-serif}.recap-dismiss:hover{background:#d4453a59}.settings-toggle{position:fixed;right:12px;bottom:120px;z-index:30;width:40px;height:40px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#0e121ad1;color:#e8eaed;font-size:20px;cursor:pointer}.settings-toggle:hover{background:#1e2634eb}.settings-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:45;width:min(680px,94vw);max-height:88vh;overflow-y:auto;padding:18px 22px 20px;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:#0a0e14f7;box-shadow:0 18px 60px #0009;color:#e8eaed;font:13px/1.4 system-ui,sans-serif}.sp-tabs{display:flex;gap:8px;margin-bottom:14px}.sp-tabs button{padding:7px 16px;border:1px solid rgba(255,255,255,.16);border-radius:7px;background:#1e263499;color:#c9ccd1;font:600 13px/1 system-ui,sans-serif;cursor:pointer}.sp-tabs button.on{background:#466eb48c;color:#fff}.sp-tabs .sp-close{margin-left:auto}.sp-hint{margin-bottom:14px;font-size:12.5px;color:#9aa0a8}.sp-bar{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;margin-bottom:18px}.sp-slot{position:relative;aspect-ratio:1;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#141a24cc;color:inherit;cursor:pointer;overflow:hidden}.sp-slot:hover{border-color:#fff6}.sp-slot-empty{border-style:dashed;background:#141a2466}.sp-slot.sp-picked{border-color:#ffe066;box-shadow:0 0 0 2px #ffe066b3 inset}.sp-slot-key{position:absolute;top:2px;left:3px;font-size:11px;font-weight:600;color:#d6d9de;text-shadow:0 1px 2px #000}.sp-icon{width:100%;height:100%;object-fit:cover;display:block}.sp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.sp-ability{position:relative;display:flex;align-items:center;gap:9px;padding:7px 8px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#141a24b3;color:inherit;font:inherit;text-align:left;cursor:pointer}.sp-ability:hover{border-color:#ffffff4d}.sp-ability.sp-selected{border-color:#ffe066;box-shadow:0 0 0 2px #ffe06699 inset}.sp-ability .sp-icon{width:38px;height:38px;border-radius:6px;flex:0 0 auto}.sp-ability-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-selecting .sp-slot{cursor:copy}.sp-passive-header{margin:6px 0 8px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#e8eaed8c}.sp-ability.sp-passive{cursor:default;opacity:.55}.sp-ability.sp-passive .sp-icon{filter:grayscale(.7)}.sp-reset{width:100%;margin-top:4px;padding:6px;border:1px solid rgba(255,255,255,.16);border-radius:6px;background:#28303eb3;color:#e8eaed;cursor:pointer}.sp-reset:hover{background:#3a4456d9}.kb-row{display:flex;align-items:center;gap:8px;padding:3px 0}.kb-label{flex:1 1 auto}.kb-key{flex:0 0 auto;min-width:64px;padding:3px 8px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#1e2634b3;color:#e8eaed;cursor:pointer}.kb-key.capturing{border-color:#7fd0ff;color:#7fd0ff}.kb-key.conflict{border-color:#e0b24a;color:#e0b24a}.kb-warn{color:#e0b24a}.forge-root{position:fixed;inset:0;font-family:system-ui,sans-serif;color:#e8eaed}.forge-canvas{position:absolute;inset:0}.forge-canvas canvas{display:block}.forge-topbar{position:absolute;top:0;left:0;right:0;display:flex;gap:6px;align-items:center;padding:8px 10px;background:#10141ce0;border-bottom:1px solid rgba(255,255,255,.08);z-index:10}.forge-brand{font-weight:700;letter-spacing:2px;color:#ffb454;margin-right:6px}.forge-topbar button,.forge-tool{padding:5px 10px;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:#262e3ee6;color:#e8eaed;cursor:pointer;font-size:13px}.forge-topbar button:hover,.forge-tool:hover{background:#3a465cf2}.forge-topbar button:disabled{opacity:.4;cursor:not-allowed}.forge-topbar button.forge-testplay{background:#468250e6;border-color:#6cc07a}.forge-input{padding:5px 8px;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:#141a24e6;color:#e8eaed;font-size:13px}.forge-id{width:130px}.forge-name{width:160px}.forge-palette{position:absolute;top:56px;left:10px;width:150px;display:flex;flex-direction:column;gap:4px;padding:10px;background:#10141cdb;border:1px solid rgba(255,255,255,.08);border-radius:8px;max-height:calc(100vh - 90px);overflow-y:auto;z-index:10}.forge-section{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#8a94a6;margin:6px 0 2px}.forge-tool.forge-tool-active{border-color:#ffb454;color:#ffb454;background:#46381ee6}.forge-snap{font-size:12px;margin-top:8px;display:flex;gap:6px;align-items:center}.forge-inspector{position:absolute;top:56px;right:10px;width:240px;display:flex;flex-direction:column;gap:10px;padding:10px;background:#10141cdb;border:1px solid rgba(255,255,255,.08);border-radius:8px;max-height:calc(100vh - 90px);overflow-y:auto;z-index:10;font-size:13px}.forge-row{margin:2px 0}.forge-field{display:flex;gap:6px;align-items:center;margin:4px 0}.forge-field input[type=number],.forge-field input[type=text],.forge-field input:not([type]){flex:1;min-width:0;padding:3px 6px;border:1px solid rgba(255,255,255,.18);border-radius:5px;background:#141a24e6;color:#e8eaed}.forge-hint{color:#8a94a6;font-size:12px}.forge-valid{color:#6cc07a}.forge-invalid{color:#e07a6a}.forge-err{color:#e79b8f;font-size:12px;margin:2px 0}.forge-warn{color:#e0b24a;font-size:12px;margin:2px 0}.forge-help{position:absolute;bottom:8px;left:50%;transform:translate(-50%);padding:6px 12px;background:#10141ccc;border:1px solid rgba(255,255,255,.08);border-radius:6px;font-size:11px;color:#a8b0be;z-index:10;white-space:nowrap;max-width:96vw;overflow:hidden;text-overflow:ellipsis}.forge-status{position:absolute;bottom:40px;left:50%;transform:translate(-50%);padding:6px 14px;background:#1e2634f2;border:1px solid #ffb454;border-radius:6px;font-size:13px;z-index:11}
