*{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}.edit-toggle{position:fixed;right:12px;bottom:104px;z-index:46;padding:6px 12px;border:1px solid rgba(255,180,84,.5);border-radius:8px;background:#2e220edb;color:#ffb454;font:600 12px/1 system-ui,sans-serif;cursor:pointer}.edit-toggle:hover{background:#423012f0}.edit-overlay{position:fixed;inset:0;z-index:60}.edit-overlay-wait{display:grid;place-items:center;background:#0a0c12b8}.edit-wait-panel{display:flex;flex-direction:column;gap:12px;align-items:center;padding:20px 26px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:#10141cf0;color:#e8eaed;font:500 14px/1.3 system-ui,sans-serif}.edit-wait-panel button{padding:6px 14px;border:1px solid rgba(255,255,255,.2);border-radius:7px;background:#262e3ee6;color:#e8eaed;cursor:pointer}.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}.debug-ability-json{position:absolute;top:0;right:calc(100% + 12px);width:min(420px,42vw);max-height:86vh;overflow-y:auto;padding:12px 14px 16px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:#0c1017fa;box-shadow:0 18px 60px #0009;pointer-events:auto}.daj-head{display:flex;align-items:center;gap:10px;padding:0 0 8px}.daj-title{font:700 12px/1 system-ui,sans-serif;color:#f4d9a6;letter-spacing:.03em}.daj-select{flex:1;min-width:0;padding:4px 6px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#1c222ee6;color:#e8eaed;font:12px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.daj-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:12px}@media(max-width:560px){.daj-cols{grid-template-columns:1fr}}.daj-json{margin:0;max-height:320px;overflow:auto;padding:10px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#080b10e6;color:#cde3c6;font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre;tab-size:2}.daj-paths{min-width:0}.daj-paths-head{font:700 11px/1 system-ui,sans-serif;color:#cbd2dc;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.daj-path-list{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto}.daj-path-list li{padding:2px 0}.daj-path-list code,.daj-hint code{font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:#f0c98a;word-break:break-all}.daj-hint{margin-top:10px;font-size:11px;line-height:1.5;color:#9aa4b2}.daj-hint code{color:#cbd2dc}.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}.join-layout{display:flex;flex:1;min-height:0;gap:20px}.join-col{overflow-y:auto;min-height:0}.join-col-left,.join-col-right{flex:0 0 320px}.join-col-center{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}.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{width:min(1500px,95vw);max-height:92vh}.class-grid{display:grid;grid-template-columns:repeat(4,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:#1c2736;box-shadow:0 0 0 2px currentColor inset,0 0 12px -2px currentColor}.class-card-check{position:absolute;top:3px;right:5px;font:700 10px/1 system-ui,sans-serif}.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}.class-card-sel .class-card-name{font-weight:800}.mode-grid{display:grid;grid-template-columns:repeat(3,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)}.slot-offform{filter:grayscale(.9) brightness(.55);border-color:#be46468c}.slot-offform:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom right,transparent calc(50% - 1px),rgba(220,90,90,.75) 50%,transparent calc(50% + 1px));pointer-events:none}.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-click{pointer-events:auto;cursor:pointer}.uf-click:hover{border-color:#e8b74a8c}.uf-click:focus-visible{outline:2px solid rgba(232,183,74,.8);outline-offset:1px}.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-hp-stack{display:flex;flex-direction:column}.bar-ward{height:13px;border-radius:2px 2px 0 0;border-bottom-color:#00000080}.bar-ward .bar-fill{background:linear-gradient(180deg,#8fd3d6,#3d868f);box-shadow:inset 0 -1px #cef4f759}.uf-hp-stack .bar-ward+.bar-hp{margin-top:0;border-radius:0 0 2px 2px}.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)}.bar-ward .bar-text{font-size:10px}.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-immune{opacity:.5;filter:grayscale(.55)}.np-targeted{width:96px}.np-target-arrow{position:absolute;left:50%;top:-15px;font-size:13px;line-height:1;color:#ffd24a;text-shadow:0 0 4px rgba(0,0,0,.95),0 1px 2px rgba(0,0,0,.9);pointer-events:none;transform:translate(-50%);animation:np-target-bob 1s ease-in-out infinite}@keyframes np-target-bob{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-3px)}}.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-ward{position:relative;width:60px;height:3px;margin:2px auto 0;background:#0c0f16eb;border:1px solid rgba(0,0,0,.7);border-radius:1px;overflow:hidden}.np-ward-fill{position:absolute;inset:0;transform-origin:left;transition:transform 90ms linear;background:linear-gradient(180deg,#8fd3d6,#3d868f)}.np-ward+.np-hp{margin-top:1px}.np-targeted .np-ward{height:4px}.np-small .np-ward{width:44px;height:2px}.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-crit{font-size:32px}.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-stage{position:absolute;top:0;bottom:0;z-index:1;box-sizing:border-box;border-right:3px solid rgba(6,8,12,.95);box-shadow:inset -4px 0 0 -3px #fff0c88c;pointer-events:none}.own-cast-stage:last-of-type{border-right:0;box-shadow:none}.own-cast-stage-lit{background:#fff6dc4d;box-shadow:inset 0 0 0 1px #fff0bebf,inset -4px 0 0 -3px #fff0c88c}.own-cast-stage-lit:last-of-type,.own-cast-stage-lit:not(:has(~.own-cast-stage-lit)){background:#fffcee70;box-shadow:inset 0 0 0 1px #fffadcf2,inset -4px 0 0 -3px #fff0c88c}.own-cast-text{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:8px;font:700 12px/1 system-ui,sans-serif;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8)}.own-cast-stage-count{padding:1px 5px;border-radius:6px;background:#06080cb8;border:1px solid rgba(255,240,190,.65);color:#fff4d6;font-size:10px;letter-spacing:.03em}.own-cast-fail .own-cast-text{color:#f4e9e8}.own-cast-hint{position:absolute;z-index:2;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}}.volley-bank-count{position:fixed;bottom:76px;left:50%;transform:translate(-50%);z-index:11;padding:1px 10px;border-radius:3px;background:#1e100ad1;border:1px solid rgba(232,140,60,.5);font:700 11px/1.4 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#e8a860;pointer-events:none;-webkit-user-select:none;user-select:none}.volley-bank-num{font-size:14px;color:#ffcf8a}.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}}.slot-active{border-color:#baf0ff;box-shadow:inset 0 0 0 1px #00000080,inset 0 0 12px #8fdcff8c,0 0 12px #8fdcffd9}.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}.pip-value{position:absolute;left:50%;top:-4px;transform:translate(-50%);font:700 9px/1 ui-monospace,monospace;color:#cfe6ff;text-shadow:0 0 2px #000,0 0 2px #000;pointer-events:none;white-space:nowrap}.pip-cd{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:700 10px/1 ui-monospace,monospace;color:#fff;text-shadow:0 0 2px #000,0 0 3px #000;pointer-events:none}.pip-paused{filter:grayscale(1) brightness(.65);opacity:.7}.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;z-index:2;height:100%;width:22px;object-fit:cover;pointer-events:none}.tooltip{position:fixed;right:14px;bottom:100px;z-index:95;width:340px;max-width:calc(100vw - 28px);padding:9px 11px;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.4 system-ui,sans-serif;color:#d8dde5}.tt-unit-dead{color:#b9c0cc;font-style:italic}.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}.tooltip-unit .tt-name{font-size:13px}.tt-unit-hostile .tt-name{color:#e2867a}.tt-unit-friendly .tt-name{color:#8fd39a}.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}.tt-school{margin-bottom:4px;padding-bottom:3px;border-bottom:1px solid rgba(255,255,255,.07);font-size:10px;letter-spacing:.02em;color:#9aa3b0d9}.tt-mag{margin-top:2px;color:#cfe6ff;font-weight:600}.tt-warn{margin-top:4px;color:#e08a8a;font-weight:600}.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;align-items:baseline;gap:6px;padding:1px 2px;white-space:nowrap;overflow:hidden}.cl-time{color:#a0a8b4b3;flex:none}.cl-body{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.cl-amount{flex:none;margin-left:auto;padding-left:4px;font-weight:700;font-variant-numeric:tabular-nums}.cl-k-damage .cl-body,.cl-k-damage .cl-amount{color:#ff8a80}.cl-k-auto .cl-body,.cl-k-auto .cl-amount{color:#e6e8ec}.cl-k-absorb .cl-body,.cl-k-absorb .cl-amount{color:#9aa3ad}.cl-k-heal .cl-body,.cl-k-heal .cl-amount{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-points{margin-top:2px;display:flex;align-items:center;justify-content:center;gap:12px;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.ctf-points-label{color:#cdd2d8;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.85}.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}}.progress-panel{position:absolute;top:96px;left:50%;transform:translate(-50%);width:190px;padding:6px 10px;background:#0c0e12b8;border:1px solid rgba(255,255,255,.12);border-radius:8px;pointer-events:none;z-index:20;font-family:system-ui,sans-serif}.progress-levels{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700}.bar-xp{height:8px;margin-top:4px}.bar-xp .bar-fill{background:linear-gradient(90deg,#d0a12f,#ffd76a)}.talent-pip{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,215,106,.6);background:#0c0e12d1;color:#ffd76a;font-weight:900;font-size:15px;cursor:pointer;z-index:22}.talent-pick-panel{position:absolute;top:12px;right:12px;width:260px;padding:8px 10px;background:#0c0e12e0;border:1px solid rgba(255,215,106,.45);border-radius:8px;font-family:system-ui,sans-serif;z-index:22}.talent-pick-header{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:800;color:#ffe9a8;margin-bottom:6px}.talent-pick-collapse{background:none;border:none;color:#cdd2d8;font-size:16px;line-height:1;cursor:pointer;padding:0 2px}.talent-pick-cards{display:flex;flex-direction:column;gap:6px}.talent-card{display:grid;grid-template-columns:28px 1fr;column-gap:8px;row-gap:2px;align-items:center;text-align:left;padding:6px 8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:6px;cursor:pointer;color:#e6e8ec}.talent-card:hover{background:#ffd76a24;border-color:#ffd76a80}.talent-card-icon{grid-row:span 2;width:28px;height:28px;border-radius:4px}.talent-card-name{font-size:13px;font-weight:700}.talent-card-desc{grid-column:2;font-size:11px;color:#cdd2d8;opacity:.9}.sb-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:30}.sb-panel{pointer-events:auto;max-width:92vw;max-height:88vh;overflow:auto;scrollbar-width:thin;display:flex;flex-direction:column;gap:12px;padding:14px 16px;background:#0c0e12e6;border:1px solid rgba(255,255,255,.18);border-radius:10px;font-family:system-ui,sans-serif;color:#e6e8ec}.sb-outcome{text-align:center;font-size:20px;font-weight:800;color:#ffe9a8;margin-bottom:2px}.sb-team-head{font-size:14px;font-weight:800;margin-bottom:4px}.sb-table{border-collapse:collapse;width:100%;font-size:12px}.sb-table th,.sb-table td{padding:3px 8px;white-space:nowrap}.sb-table th{text-align:right;font-weight:700;color:#9aa0a8;border-bottom:1px solid rgba(255,255,255,.14)}.sb-table th.sb-name,.sb-table td.sb-name{text-align:left}.sb-num{text-align:right;font-variant-numeric:tabular-nums}.sb-name{display:flex;align-items:center;gap:6px;max-width:180px}.sb-name-text{overflow:hidden;text-overflow:ellipsis}.sb-row-own{background:#ffd76a29}.sb-row-own td{color:#ffe9a8}.sb-empty td{text-align:center;color:#9aa0a8;font-style:italic}.sb-talents-cell{text-align:left}.sb-talents{display:inline-flex;gap:3px}.sb-talent-icon{width:18px;height:18px;border-radius:3px;border:1px solid rgba(255,255,255,.18)}.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-offform{border-color:#be46468c}.sp-slot-offform .sp-icon{filter:grayscale(.9) brightness(.6)}.sp-slot-offform:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom right,transparent calc(50% - 1px),rgba(220,90,90,.75) 50%,transparent calc(50% + 1px));pointer-events:none}.sp-slot-unknown{border-style:dotted;border-color:#c8aa5a99}.sp-slot-stale{position:absolute;inset:0;display:grid;place-items:center;font-size:18px;font-weight:700;color:#c8aa5acc}.sp-pages{display:flex;gap:6px;margin-bottom:8px}.sp-pages button{padding:4px 10px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#141a24cc;color:#d6d9de;font-size:12px;cursor:pointer}.sp-pages button.on{border-color:#ffe066;color:#ffe066}.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}.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}.kb-key.unbound{color:#e8eaed73;border-style:dashed}.kb-hint{margin-bottom:8px;font-size:11px;line-height:1.45;color:#e8eaed99}.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-nav{margin-left:auto;display:flex;align-items:center;gap:6px}.forge-attrib{color:#9aa3b2;font-size:12px;margin-right:4px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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:200px;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-palette-tabs{position:sticky;top:-10px;z-index:2;display:flex;gap:4px;margin:-10px -10px 4px;padding:8px 10px;background:#10141cf5;border-bottom:1px solid rgba(255,255,255,.08)}.forge-palette-tab{flex:1;padding:4px 8px;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:#262e3ee6;color:#cdd4de;cursor:pointer;font-size:12px;white-space:nowrap}.forge-palette-tab:hover{border-color:#ffffff52}.forge-palette-tab-active{border-color:#ffb454;color:#fff}.forge-panel-resizer{position:absolute;top:56px;width:8px;height:calc(100vh - 90px);cursor:ew-resize;z-index:11}.forge-panel-resizer:after{content:"";position:absolute;left:3px;top:0;bottom:0;width:2px;background:#ffffff14;border-radius:2px}.forge-panel-resizer:hover:after{background:#ffb454}.forge-section{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#8a94a6;margin:6px 0 2px}.forge-section-head{display:flex;align-items:center;gap:4px;margin:6px 0 2px}.forge-section-toggle{flex:1;min-width:0;display:flex;align-items:center;gap:6px;margin:0;padding:0;background:none;border:none;cursor:pointer;text-align:left}.forge-section-toggle:hover{color:#cfd6e0}.forge-section-caret{flex:none;width:9px;font-size:9px;line-height:1;color:#6c7688}.forge-tool.forge-tool-active{border-color:#ffb454;color:#ffb454;background:#46381ee6}.studio-swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.studio-swatch{width:100%;aspect-ratio:1;border:1px solid rgba(255,255,255,.14);border-radius:4px;cursor:pointer;padding:0}.studio-swatch.studio-swatch-active{border-color:#fff;box-shadow:0 0 0 1px #fff}.studio-swatch-input{background:none;overflow:hidden}.studio-swatch-input::-webkit-color-swatch-wrapper{padding:0}.studio-swatch-input::-webkit-color-swatch{border:none;border-radius:3px}.studio-swatch-input::-moz-color-swatch{border:none;border-radius:3px}.studio-gearbar{position:absolute;bottom:14px;left:50%;transform:translate(-50%);display:flex;gap:6px;padding:6px;background:#10141cdb;border:1px solid rgba(255,255,255,.08);border-radius:10px;z-index:10;max-width:calc(100vw - 40px);flex-wrap:wrap;justify-content:center}.studio-gearslot{display:flex;flex-direction:column;gap:4px;align-items:stretch;min-width:92px;padding:5px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#262e3e99}.studio-gearslot-active{border-color:#ffb454;background:#46381ecc;box-shadow:0 0 0 1px #ffb45466}.studio-gearslot-name{display:flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid rgba(255,255,255,.16);border-radius:6px;background:#141a24b3;color:#e8eaed;cursor:pointer;font-size:12px;text-transform:capitalize}.studio-gearslot-name:hover{background:#3a465ce6}.studio-gearslot-active .studio-gearslot-name{color:#ffcf7a;border-color:#ffb45480}.studio-gearslot-icon{font-size:13px;line-height:1}.studio-gearslot-editing{font-size:11px;text-align:center;color:#ffcf7a;letter-spacing:1px;text-transform:uppercase;padding:3px 0}.studio-gearslot-pick{width:100%;max-width:120px;font-size:11px;padding:3px 4px}.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-objects{border:1px solid rgba(255,255,255,.08);border-radius:6px;overflow:hidden}.forge-objects-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;background:#141a24e6;border:none;color:#c7cdd8;font-size:12px;text-transform:uppercase;letter-spacing:1px;cursor:pointer}.forge-objects-count{color:#8a94a6;font-size:11px}.forge-objects-list{max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:1px;padding:4px}.forge-objects-row{display:flex;align-items:center;gap:8px;width:100%;padding:4px 6px;border:1px solid transparent;border-radius:4px;background:none;color:#e8eaed;font-size:12px;text-align:left;cursor:pointer}.forge-objects-row:hover{background:#ffffff0d}.forge-objects-row-active{border-color:#ffb454;color:#ffb454;background:#46381ee6}.forge-objects-chip{flex:none;width:12px;height:12px;border-radius:3px;border:1px solid rgba(255,255,255,.25)}.forge-objects-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forge-field{display:flex;gap:6px;align-items:center;margin:4px 0;cursor:ew-resize;-webkit-user-select:none;user-select:none}.forge-field input{-webkit-user-select:text;user-select:text}.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-scale-axes{display:flex;gap:6px}.forge-field-axis{flex:1;flex-direction:column;align-items:stretch;gap:2px;font-size:11px;color:#8a94a6}.forge-field-axis input[type=number]{flex:none;width:100%}.forge-scatter-row{display:flex;align-items:center;gap:6px}.forge-scatter-row>.forge-snap{flex:1;min-width:0;margin-top:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forge-scatter-row>.forge-field-axis{flex:0 0 54px}.forge-color{display:flex;gap:6px;align-items:center;margin:4px 0}.forge-swatch{flex:none;width:34px;height:26px;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:5px;background:none;cursor:pointer}.forge-hex{flex:1;min-width:0;padding:3px 6px;border:1px solid rgba(255,255,255,.18);border-radius:5px;background:#141a24e6;color:#e8eaed;font-family:monospace}.forge-color .forge-tool{flex:none;padding:4px 8px}.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}.forge-modal-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:30}.forge-modal-backdrop{position:absolute;inset:0;border:none;padding:0;background:#060a1099;cursor:pointer}.forge-modal{position:relative;min-width:260px;max-width:420px;max-height:70vh;overflow-y:auto;padding:14px 16px;background:#181e2afa;border:1px solid #3a465c;border-radius:8px;display:flex;flex-direction:column;gap:8px}.forge-modal-list{display:flex;flex-direction:column;gap:4px}.forge-npc-modal{max-width:640px;width:640px}.forge-npc-modal-body{display:flex;gap:12px;align-items:flex-start}.forge-npc-list{display:flex;flex-direction:column;gap:4px;width:160px;flex:0 0 160px}.forge-npc-form{flex:1 1 auto;min-width:0;max-height:60vh;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.forge-npc-editor{display:flex;flex-direction:column;gap:6px}.forge-npc-ability-list{display:flex;flex-direction:column;gap:2px;max-height:180px;overflow-y:auto;border:1px solid #33405a;border-radius:4px;padding:3px}.forge-npc-ability{display:flex;align-items:center;gap:6px;text-align:left;padding:3px 5px}.forge-npc-ability-icon{flex:0 0 auto;border-radius:3px}.forge-npc-ability-name{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forge-npc-ability-cat{flex:0 0 auto;font-size:10px;opacity:.7}.forge-npc-ability-check{flex:0 0 12px;color:#6cc07a}.forge-npc-personality{display:flex;flex-direction:column;gap:4px}.forge-npc-axis{display:flex;align-items:center;gap:6px;font-size:12px}.forge-npc-axis-auto{display:flex;align-items:center;gap:3px;flex:0 0 auto}.forge-npc-axis-name{flex:0 0 84px}.forge-npc-axis input[type=range]{flex:1 1 auto;min-width:0}.forge-npc-axis-val{flex:0 0 44px;text-align:right;opacity:.85}.forge-modebar{display:flex;gap:4px}.forge-modebtn{flex:1;padding:5px 2px;text-align:center;font-size:12px}.forge-rect{display:flex;gap:6px;align-items:flex-end}.forge-rect .forge-tool{padding:4px 6px}.forge-terrain{display:flex;flex-direction:column;gap:6px;margin-top:4px}.forge-terrain .forge-modebar{flex-wrap:wrap}.forge-terrain .forge-modebtn{flex:1 1 30%;min-width:52px}.forge-env{display:flex;flex-direction:column;gap:6px;margin-top:4px}.forge-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#8a94a6;margin:6px 0 0}.forge-mode-indicator{position:absolute;top:0;left:0;pointer-events:none;z-index:9;font-size:22px;line-height:1;color:#ffb454;text-shadow:0 0 4px rgba(0,0,0,.9);will-change:transform}.inspect-panel{position:fixed;top:12px;right:12px;z-index:13;pointer-events:auto;-webkit-user-select:none;user-select:none;width:260px;max-width:32vw;max-height:88vh;overflow-y:auto;background:#0a0d14e6;border:1px solid rgba(255,255,255,.08);border-left:3px solid #6f9fd8;border-radius:8px;padding:8px 10px;color:#c2c8d2;font:11px/1.45 ui-monospace,SF Mono,Menlo,monospace}.inspect-panel[data-hostility=hostile]{border-left-color:#d86f6a}.inspect-panel[data-hostility=friendly]{border-left-color:#6f9fd8}.inspect-panel[data-hostility=neutral]{border-left-color:#d8c56f}.inspect-panel[data-hostility=self]{border-left-color:#7fd6a0}.ip-header{margin-bottom:6px}.ip-title{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.ip-name{font-weight:700;color:#f2d9a0;font-size:13px}.ip-kind{color:#8b93a1;text-transform:uppercase;font-size:9px;letter-spacing:.5px}.ip-meta{display:flex;gap:8px;margin-top:1px}.ip-hostility{color:#a7aebb}.inspect-panel[data-hostility=hostile] .ip-hostility{color:#e2867a}.inspect-panel[data-hostility=neutral] .ip-hostility{color:#e0cf86}.inspect-panel[data-hostility=self] .ip-hostility{color:#7fd6a0}.ip-subtitle{color:#c2c8d2}.ip-owner{color:#8b93a1;margin-top:1px}.ip-vitals{display:flex;flex-direction:column;gap:3px;margin-bottom:6px}.ip-bar-row{display:flex;align-items:center;gap:6px}.ip-bar-label{width:30px;color:#8b93a1}.ip-bar-row .bar{flex:1}.ip-hp .bar-fill{background:#5db07a}.ip-mana .bar-fill{background:#4f79c8}.ip-stats{display:flex;flex-direction:column;gap:1px;margin-bottom:6px}.ip-stat{display:flex;justify-content:space-between;gap:8px}.ip-stat-label{color:#8b93a1}.ip-stat-value{color:#d5dae2;text-align:right}.ip-stat-note{color:#6b7280;font-style:normal}.ip-section{margin-top:6px;border-top:1px solid rgba(255,255,255,.06);padding-top:5px}.ip-h{margin:0 0 4px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#8b93a1}.ip-abilities{display:flex;flex-direction:column;gap:2px}.ip-ability{position:relative;display:flex;align-items:center;gap:6px}.ip-ability-icon{width:18px;height:18px;border-radius:3px;image-rendering:pixelated}.ip-ability-name{color:#d5dae2}.ip-effects{display:flex;flex-direction:column;gap:3px}.ip-effect{position:relative;display:flex;align-items:center;gap:6px}.ip-effect-name{flex:1}.ip-buff{color:#7fd6a0}.ip-debuff{color:#e2867a}.ip-effect-time{color:#8b93a1}.ip-axes{display:flex;flex-direction:column;gap:3px}.ip-axis{display:flex;align-items:center;gap:6px}.ip-axis-label{position:relative;width:84px;color:#a7aebb;white-space:nowrap;cursor:help}.ip-axis-fixed{color:#e0cf86}.ip-axis-bar{flex:1;height:7px;background:#ffffff14;border-radius:4px;overflow:hidden}.ip-axis-fill{height:100%;width:100%;transform-origin:left;background:linear-gradient(90deg,#6f9fd8,#b48fd0)}.ip-axis-value{width:30px;text-align:right;color:#d5dae2}.studio-palette{top:56px;height:calc(100vh - 66px);max-height:calc(100vh - 66px)}.vfxtl{display:flex;flex-direction:column;gap:4px;margin-top:4px;padding-top:4px;border-top:1px solid #2a3040}.vfxtl-head{display:flex;align-items:flex-end;gap:4px;flex-wrap:wrap}.vfxtl-title{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#6f7a8d}.vfxtl-win{font-size:10px;color:#8a94a6}.vfxtl-lane{display:flex;flex-direction:column;gap:2px}.vfxtl-lane-head{display:flex;align-items:center;gap:4px;font-size:10px;color:#8a94a6}.vfxtl-name{color:#cfd6e0}.vfxtl-count{margin-left:auto}.forge-tool.vfxtl-mini{padding:0 6px;font-size:11px;line-height:18px;border-radius:4px}.vfxtl-plot{position:relative;height:64px;margin:7px;border:1px solid #2f3644;border-radius:4px;background:#141a24e6;touch-action:none}.vfxtl-plot-empty{display:flex;align-items:center;justify-content:center;height:34px;border-style:dashed}.vfxtl-svg{position:absolute;inset:0;display:block;width:100%;height:100%}.vfxtl-grid{stroke:#ffffff12;stroke-width:1}.vfxtl-unit{stroke:#ffffff29;stroke-width:1;stroke-dasharray:3 3}.vfxtl-line{fill:none;stroke:#6f9fd8;stroke-width:2;stroke-linejoin:round}.vfxtl-loopband{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(45deg,rgba(255,180,84,.1) 0 6px,transparent 6px 12px)}.vfxtl-key{position:absolute;width:11px;height:11px;padding:0;transform:translate(-50%,-50%);border:1px solid #0b0f16;border-radius:3px;background:#cfd6e0;cursor:grab}.vfxtl-key:hover{background:#fff}.vfxtl-key:active{cursor:grabbing}.vfxtl-key.vfxtl-key-sel{background:#ffb454;border-color:#ffd9a0;box-shadow:0 0 0 2px #ffb4544d}.vfxtl-strip{position:relative;height:26px;margin:0 7px;border:1px solid #2f3644;border-radius:4px;touch-action:none}.vfxtl-swatch{position:absolute;top:50%;width:12px;height:20px;padding:0;transform:translate(-50%,-50%);border:1px solid #0b0f16;border-radius:2px;box-shadow:0 0 0 1px #ffffff59;cursor:grab}.vfxtl-swatch:active{cursor:grabbing}.vfxtl-swatch.vfxtl-swatch-sel{box-shadow:0 0 0 2px #ffb454}.vfxtl-insp{display:flex;align-items:flex-end;gap:4px;flex-wrap:wrap;margin:0 7px;padding:3px 5px;border:1px solid #2f3644;border-radius:4px;background:#ffffff08}.vfxtl-field{display:flex;flex-direction:column;font-size:10px;color:#8a94a6}.vfxtl-select{padding:3px 6px;font-size:12px}.vfxtl-legacy{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 7px;padding:4px 6px;font-size:10px;color:#d8c48a;border:1px dashed #5a4a28;border-radius:4px;background:#5a4a282e}.vfxtl-legacy code{color:#ffb454}.cform-vfx{display:flex;flex-direction:column;gap:4px;min-width:0}.cform-vfx-row{display:flex;align-items:center;gap:4px;min-width:0}.cform-vfx-row .forge-input{flex:1;min-width:0}.cform-vfx-btn{flex:none;padding:2px 6px;border-radius:4px;border:1px solid #33506f;background:#1a2432;color:#cdd4de;font-size:11px;cursor:pointer}.cform-vfx-btn:disabled{opacity:.45;cursor:default}.cform-vfx-btn-on{border-color:#6c9fd8;color:#e8f0fb}.cform-vfx-badge{align-self:flex-start;font-size:11px;line-height:1.3}.cform-vfx-ok{color:#7fbf7f}.cform-vfx-warn{color:#ffb454}.cform-vfx-bad{color:#e08080}.cform-vfx-hint{font-size:11px;color:#8a94a6}.cform-vfx-summary{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:11px;color:#8a94a6}.cform-vfx-swatch{width:10px;height:10px;border-radius:2px;border:1px solid rgba(255,255,255,.18)}.cform-vfx-canvas{position:relative;width:100%;height:150px;border:1px solid #2a3040;border-radius:4px;overflow:hidden}.cform-vfx-canvas canvas{display:block}.cform-vfx-overlay{position:fixed;inset:0;z-index:60;background:#0b0e14}.studio-panel-resizer{top:56px;height:calc(100vh - 66px)}.studio-sun-row{display:flex;align-items:center;gap:6px;font-size:12px;color:#cfd6e0}.studio-sun-row>span:first-child{width:62px;flex:0 0 auto;color:#8a94a6}.studio-sun-row input[type=range]{flex:1 1 auto;min-width:0}.studio-sun-row input[type=color]{flex:1 1 auto;min-width:0;height:24px;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:#141a24e6;cursor:pointer}.studio-sun-val{width:40px;flex:0 0 auto;text-align:right;color:#d5dae2}.pf-root{position:fixed;top:156px;left:12px;z-index:11;pointer-events:none;-webkit-user-select:none;user-select:none;max-height:calc(100vh - 320px);font:12px/1.3 system-ui,sans-serif}.pf-header{display:flex;align-items:center;justify-content:space-between;gap:8px;width:208px;margin-bottom:4px;padding:0 2px}.pf-title{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9aa4b2}.pf-toggle{pointer-events:auto;cursor:pointer;padding:2px 7px;font:inherit;font-size:10px;color:#c3cbd6;background:#12161ee6;border:1px solid rgba(255,255,255,.12);border-radius:3px}.pf-toggle.on{color:#e8f0fb;border-color:#6c9fd899}.pf-list-party{display:flex;flex-direction:column;gap:4px}.pf-row{display:flex;align-items:stretch;gap:4px}.pf-frame{pointer-events:auto;cursor:pointer;display:block;text-align:left;padding:0;margin:0;color:#eef2f8;background-color:#0a0d14e6;border:1px solid rgba(255,255,255,.12);border-radius:4px;box-shadow:0 2px 8px #00000080;transition:border-color .3s ease,filter .25s ease,opacity .25s ease}.pf-frame:hover{border-color:#e8b74a80}.pf-party{width:208px;padding:6px 8px 7px;min-height:76px}.pf-target-frame{width:100px;min-height:76px;padding:6px 8px 7px}.pf-target-frame .pf-name{margin-bottom:3px}.pf-target-unseen{opacity:.7}.pf-name{display:flex;align-items:center;gap:4px;margin-bottom:3px;font-weight:600;line-height:1.2}.pf-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-combat-glyph{color:#e2543e;font-size:11px}.pf-bar{position:relative;height:14px;margin-top:3px;background:#06090ed9;border:1px solid rgba(0,0,0,.5);border-radius:2px;overflow:hidden}.pf-bar-fill{position:absolute;inset:0;transform-origin:left;transition:transform .12s linear}.pf-hp .pf-bar-fill{background:linear-gradient(180deg,#4cbb62,#2e8442)}.pf-res{height:8px}.pf-res-mana .pf-bar-fill{background:linear-gradient(180deg,#4f78d8,#2f4c9a)}.pf-res-secondary .pf-bar-fill{background:linear-gradient(180deg,#e8b74a,#b07c1e)}.pf-bar-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:9px;color:#f3f6fb;text-shadow:0 1px 2px rgba(0,0,0,.9)}.pf-pips{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}.pf-list-raid{display:grid;grid-auto-flow:column;grid-template-rows:repeat(5,auto);gap:3px}.pf-raid{position:relative;width:58px;height:40px;overflow:hidden}.pf-raid-hp{position:absolute;inset:0;z-index:0}.pf-raid-hp-fill{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg,#4cbb6280,#2e844299);transition:height .12s linear}.pf-raid-name{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0 2px;font-size:9px;font-weight:600;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.9)}.pf-combat-dot{position:absolute;top:2px;right:2px;z-index:2;width:5px;height:5px;border-radius:50%;background:#e2543e;box-shadow:0 0 3px #e2543ee6}.pf-pips-mini{position:absolute;left:2px;bottom:2px;z-index:2;margin-top:0;gap:2px}.pf-combat{border-color:#e2543eb3}.pf-own{border-color:#e8b74a73}.pf-far{filter:grayscale(.85) brightness(.7);opacity:.6}.pf-dead{filter:grayscale(1) brightness(.5);opacity:.5}.fx-terrain-base{margin-top:6px}.fx-piece-texture{margin-top:6px;display:flex;flex-direction:column;gap:4px}.fx-draw-hint{font-style:italic;opacity:.8}.studio-part-row{border:1px solid #2f3644;border-radius:4px;padding:4px;margin-bottom:4px}.studio-palette>*{flex-shrink:0}.studio-group-row{border:1px solid #2f3644;border-radius:4px;padding:4px;margin-bottom:4px}.studio-part-row.studio-part-selected{border-color:#ffd24a}.auth-loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;color:#9aa4b2;font:500 14px/1.4 system-ui,sans-serif;background:#10141c}.auth-panel{display:flex;flex-direction:column;gap:10px;min-width:260px}.auth-panel h2{margin:0 0 2px;font:600 18px/1.2 system-ui,sans-serif;color:#e8eaed}.auth-panel input{padding:10px 12px;border-radius:6px;border:1px solid #33506f;background:#0f141d;color:#e8eaed;font:14px/1 system-ui,sans-serif}.auth-panel button{padding:10px 12px;border-radius:6px;border:none;background:#4a6b9a;color:#fff;font:600 14px/1 system-ui,sans-serif;cursor:pointer}.auth-panel button:hover{background:#5a7bab}.auth-panel button:disabled{opacity:.6;cursor:default}.auth-tabs{display:flex;gap:6px}.auth-tabs .auth-tab{flex:1;padding:8px 10px;background:#232c3b;color:#9aa4b2;font-weight:600}.auth-tabs .auth-tab-on{background:#34527a;color:#fff}.auth-error{color:#e58a84;font:500 13px/1.35 system-ui,sans-serif}.auth-probe-warning{margin-bottom:12px;padding:8px 10px;border-radius:6px;border:1px solid #6a5326;background:#2a2110;color:#e6c27a;font:500 12px/1.4 system-ui,sans-serif}.auth-account-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:6px;background:#141b26}.auth-account-name{color:#cdd4de;font:500 13px/1.2 system-ui,sans-serif}.auth-account-name strong{color:#e8eaed}.auth-admin-badge,.invites-badge{margin-left:6px;padding:1px 6px;border-radius:999px;background:#6a4ea0;color:#fff;font:600 10px/1.6 system-ui,sans-serif;text-transform:uppercase}.auth-account-row .auth-logout{padding:6px 10px;background:#33414f;font-size:12px}.auth-denied{display:flex;flex-direction:column;gap:10px;max-width:340px}.auth-denied h2{margin:0;font:600 18px/1.2 system-ui,sans-serif;color:#e8eaed}.auth-denied p{margin:0;color:#9aa4b2;font:400 13px/1.5 system-ui,sans-serif}.auth-denied button{align-self:flex-start;padding:8px 14px;border-radius:6px;border:none;background:#4a6b9a;color:#fff;font:600 13px/1 system-ui,sans-serif;cursor:pointer}.invites-card{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:8px;background:#141b26;border:1px solid #24304250}.invites-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.invites-title{font:600 13px/1 system-ui,sans-serif;color:#cdd4de;margin-right:auto}.invites-admin-toggle{display:flex;align-items:center;gap:4px;color:#9aa4b2;font:500 12px/1 system-ui,sans-serif}.invites-head button{padding:6px 10px;border-radius:6px;border:none;background:#4a6b9a;color:#fff;font:600 12px/1 system-ui,sans-serif;cursor:pointer}.invites-empty{color:#6d7684;font:400 12px/1.4 system-ui,sans-serif}.invites-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}.invites-row{display:flex;align-items:center;gap:8px}.invites-code{font:600 13px/1 ui-monospace,monospace;color:#e8eaed;letter-spacing:1px}.invites-copy{margin-left:auto;padding:4px 8px;border-radius:5px;border:1px solid #33506f;background:#1a2432;color:#cdd4de;font:600 11px/1 system-ui,sans-serif;cursor:pointer}.invites-copy:disabled{opacity:.5;cursor:default}.invites-meta{color:#8b96a5;font:400 11px/1.3 system-ui,sans-serif}.invites-user{color:#e8eaed;font:600 12px/1 system-ui,sans-serif}.content-palette{width:240px;top:56px;bottom:10px;max-height:none}.content-ref{font:600 13px/1 ui-monospace,monospace;color:#cdd4de;padding:0 8px;min-width:220px}.content-dirty{color:#ffb454}.content-kind{margin:4px 0 8px}.content-kind-label{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#8a94a6;margin:4px 0 2px}.content-item{display:block;width:100%;text-align:left;padding:3px 6px;border:1px solid transparent;border-radius:4px;background:none;color:#cdd4de;cursor:pointer;font:400 13px/1.4 ui-monospace,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content-item:hover{background:#3a465ccc}.content-item-active{background:#465a7cf2;border-color:#ffb454;color:#fff}.content-editor{position:absolute;inset:56px 10px 10px 262px;display:flex;flex-direction:column;gap:8px}.content-empty{padding:12px}.content-editor-body{flex:1;display:flex;flex-direction:column;gap:6px;min-height:0}.content-json{flex:1;min-height:0;resize:none;padding:10px 12px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#10141ce6;color:#e8eaed;font:400 13px/1.5 ui-monospace,monospace;tab-size:2}.content-json:focus{outline:1px solid #ffb454}.content-parse-error{padding:4px 8px;border:1px solid #7a3a30;border-radius:6px;background:#3c1814cc}.content-draft-banner{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid #ffb454;border-radius:6px;background:#3c2e14d9;font-size:13px}.content-draft-banner button{padding:3px 8px;border:1px solid rgba(255,255,255,.18);border-radius:5px;background:#262e3ee6;color:#e8eaed;cursor:pointer;font-size:13px}.content-status{max-height:26vh;overflow-y:auto;padding:8px 12px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#10141ceb;color:#cdd4de;font:400 13px/1.5 ui-monospace,monospace;white-space:pre-wrap}.content-dialog-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:4px}.content-dialog-actions button{padding:5px 10px;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:#262e3ee6;color:#e8eaed;cursor:pointer;font-size:13px}.content-dialog-actions button:disabled{opacity:.4;cursor:not-allowed}.content-view-tabs{display:flex;align-items:center;gap:6px}.content-view-tab{padding:4px 11px;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:#262e3ee6;color:#cdd4de;cursor:pointer;font-size:13px}.content-view-tab-active{border-color:#ffb454;color:#fff}.content-form-scroll{overflow-y:auto;padding-right:4px}.cform{display:flex;flex-direction:column;gap:2px;font-size:13px;--cform-label-w: 160px}.cform-toolbar{display:flex;align-items:center;gap:12px;padding:2px 0 6px}.cform-showall{display:flex;align-items:center;gap:5px;color:#8a94a6;cursor:pointer}.cform .forge-section-head{margin:10px 0 0;padding:5px 9px;border:1px solid rgba(255,255,255,.1);border-radius:7px 7px 0 0;background:#262e3ebf}.cform .forge-section-toggle{font-size:12px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:#cdd4de}.cform .forge-section-head:last-child{border-radius:7px}.cform-section-body{display:flex;flex-direction:column;gap:4px;padding:8px 10px 10px;border:1px solid rgba(255,255,255,.1);border-top:none;border-radius:0 0 7px 7px;background:#161b2580}.cform-field{gap:4px}.cform-label{display:inline-flex;align-items:center;gap:4px}.cform-label-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cform-req{color:#ffb454;font-weight:700}.cform-help{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;border:1px solid rgba(255,255,255,.25);border-radius:50%;color:#8a94a6;font-size:9px;cursor:help}.cform-clear,.cform-scalar-toggle{padding:0 4px;border:1px solid rgba(255,255,255,.15);border-radius:4px;background:none;color:#8a94a6;cursor:pointer;font-size:11px;line-height:1.4}.cform-clear:hover,.cform-scalar-toggle:hover{color:#fff}.cform-problem{color:#ff9c8a;font-size:11px;line-height:1.4;white-space:pre-wrap}.cform-num{cursor:ew-resize}.cform-raw{font:400 11px/1.4 ui-monospace,monospace}.cform-raw-bad{border-color:#7a3a30}.cform-raw-hint{color:#ff9c8a;font-size:11px}.cform-list{display:flex;flex-direction:column;gap:3px}.cform-list-row{display:flex;gap:4px}.cform-sub,.cform-steps{display:flex;flex-direction:column;gap:4px;margin:4px 0}.cform-sub-head{display:flex;align-items:center;gap:8px;color:#cdd4de}.cform-sub-body{display:flex;flex-direction:column;gap:4px;padding-left:10px;border-left:1px solid rgba(255,255,255,.1);--cform-label-w: 140px}.cform-card{padding:6px 8px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#161b25b3}.cform-card-head{display:flex;align-items:center;gap:6px}.cform-card-title{color:#8a94a6;font-size:11px;letter-spacing:1px;text-transform:uppercase;min-width:44px}.cform-step{margin:10px 0;border-left:3px solid rgba(255,180,84,.45)}.cform-step-head{margin:-6px -8px 6px;padding:5px 8px;border-bottom:1px solid rgba(255,255,255,.1);border-radius:5px 5px 0 0;background:#262e3eb3}.cform-step-badge{color:#ffb454}.cform-step-id{width:150px}.cform-step-handler{flex:1 1 auto;min-width:170px;max-width:280px;font-size:13px;font-weight:600}.cform-step-toggle{margin-left:auto;padding:0 6px;border:1px solid rgba(255,255,255,.15);border-radius:4px;background:none;color:#8a94a6;cursor:pointer;font-size:12px;line-height:1.5}.cform-step-toggle:hover{color:#fff}.cform-step-summary{padding-top:2px;color:#8a94a6;font:400 12px/1.5 ui-monospace,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cform-params{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:4px 12px;padding:6px 0 0 4px}.cform-conts{display:flex;flex-wrap:wrap;gap:4px 12px;padding-top:6px}.cform-cont{flex:1 1 320px;min-width:280px;padding-left:7px;border-left:3px solid transparent;--cform-label-w: 110px}.cform-cont-swatch{width:9px;height:9px;border-radius:2px;border:1px solid rgba(0,0,0,.5)}.cform-scalar{display:flex;flex-direction:column;gap:2px}.cform-empty{padding:12px}.cform .cform-problem,.cform .cform-raw,.cform .cform-raw-hint,.cform .cform-clear,.cform .cform-scalar-toggle,.cform .cform-card-title,.cform .cform-vfx-btn,.cform .cform-vfx-badge,.cform .cform-vfx-hint,.cform .cform-vfx-summary{font-size:12px}.cform .cform-help{width:14px;height:14px;font-size:10px}.cform .cform-field{display:grid;grid-template-columns:var(--cform-label-w) minmax(0,1fr);align-items:center;column-gap:8px;row-gap:2px}.cform .cform-field>*{grid-column:2}.cform .cform-field>.cform-label{grid-column:1;min-width:0}.cform .cform-field>.cform-problem,.cform .cform-field>.cform-raw-hint{grid-column:1 / -1}.cform .cform-field>input[type=checkbox]{justify-self:start}.content-similar{margin-top:6px;padding:6px 8px;border:1px solid rgba(255,180,84,.4);border-radius:6px;background:#3c2e1480;font-size:13px}.content-similar-head{color:#ffb454;margin-bottom:4px}.content-similar-row{display:flex;justify-content:space-between;gap:10px;color:#cdd4de}.content-similar-id{font:400 13px/1.5 ui-monospace,monospace}.content-similar-src{color:#8a94a6;font-size:12px}.content-graph-pane{display:flex;min-height:0;flex:1 1 auto}.cgraph{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;gap:6px;font-size:12px}.cgraph-empty{padding:12px}.cgraph-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.cgraph-pick{max-width:260px}.cgraph-only{color:#cdd4de;font:400 12px/1.5 ui-monospace,monospace}.cgraph-fit{font-size:12px}.cgraph-legend{display:flex;flex-wrap:wrap;gap:4px 10px;color:#8a94a6;font-size:11px}.cgraph-legend-item{display:inline-flex;align-items:center;gap:4px}.cgraph-legend-swatch{width:14px;height:3px;border-radius:2px}.cgraph-body{display:flex;flex:1 1 auto;min-height:0;gap:8px}.cgraph-palette{display:flex;flex-direction:column;gap:4px;width:190px;flex:0 0 auto;min-height:0}.cgraph-search{width:100%}.cgraph-palette-list{display:flex;flex-direction:column;gap:2px;overflow-y:auto;min-height:0}.cgraph-palette-row{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:3px 6px;border:1px solid rgba(255,255,255,.1);border-radius:5px;background:#161b25b3;color:#cdd4de;cursor:pointer;font-size:12px;text-align:left}.cgraph-palette-row:hover{border-color:#ffb454;color:#fff}.cgraph-palette-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cgraph-palette-req{color:#ffb454;font-size:11px}.cgraph-viewport{position:relative;flex:1 1 auto;min-width:0;min-height:0;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:radial-gradient(circle at 1px 1px,rgba(255,255,255,.07) 1px,transparent 0) 0 0 / 26px 26px,#0e121ad9;touch-action:none;cursor:grab}.cgraph-viewport:focus-visible{outline:1px solid #ffb454}.cgraph-canvas{position:absolute;top:0;left:0;transform-origin:0 0}.cgraph-wires{position:absolute;top:0;left:0;pointer-events:none;overflow:visible}.cgraph-wire-line{fill:none;stroke-width:2}.cgraph-wire-hit{fill:none;stroke:transparent;stroke-width:14;pointer-events:stroke;cursor:pointer}.cgraph-wire:hover .cgraph-wire-line{stroke-width:3.5}.cgraph-wire-pending{fill:none;stroke-width:2;stroke-dasharray:5 4;opacity:.8}.cgraph-node{position:absolute;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.16);border-radius:7px;background:#181e29f7;box-shadow:0 4px 14px #00000073;overflow:visible}.cgraph-node-entry{border-color:#5fd08a}.cgraph-node-orphan{border-color:#ff9c8a}.cgraph-node-selected{border-color:#ffb454;box-shadow:0 0 0 1px #ffb454,0 4px 14px #00000080}.cgraph-node-open{z-index:3}.cgraph-node-grip{flex:0 0 auto;height:14px;border-radius:6px 6px 0 0;background:repeating-linear-gradient(-45deg,#8a94a652 0 2px,#262e3ee6 2px 6px);cursor:move}.cgraph-node-grip:hover{background:repeating-linear-gradient(-45deg,#ffb4548c 0 2px,#262e3ee6 2px 6px)}.cgraph-node-resize{position:absolute;right:0;bottom:0;width:12px;height:12px;border-bottom-right-radius:7px;background:linear-gradient(135deg,transparent 0 46%,rgba(138,148,166,.5) 46% 58%,transparent 58% 70%,rgba(138,148,166,.5) 70% 82%,transparent 82%);cursor:nwse-resize}.cgraph-node-resize:hover{background:linear-gradient(135deg,transparent 0 46%,#ffb454 46% 58%,transparent 58% 70%,#ffb454 70% 82%,transparent 82%)}.cgraph-node-head{display:flex;align-items:center;gap:4px;padding:4px 5px 0}.cgraph-node-sub{display:flex;align-items:center;gap:4px;padding:2px 5px 3px}.cgraph-node-id{flex:1 1 auto;min-width:0;font:400 12px/1.4 ui-monospace,monospace}.cgraph-node-handler{flex:1 1 auto;min-width:0;font-size:12px}.cgraph-toggle,.cgraph-del{padding:0 4px;border:1px solid rgba(255,255,255,.15);border-radius:4px;background:none;color:#8a94a6;cursor:pointer;font-size:12px;line-height:1.4}.cgraph-toggle:hover,.cgraph-del:hover{color:#fff}.cgraph-badge{padding:0 4px;border-radius:3px;background:#5fd08a2e;color:#5fd08a;font-size:11px;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}.cgraph-badge-bad{background:#ff6b6b2e;color:#ff9c8a}.cgraph-node-summary{padding:0 6px 4px;overflow:hidden;color:#8a94a6;font:400 11px/1.3 ui-monospace,monospace;text-overflow:ellipsis;white-space:nowrap}.cgraph-node-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 6px 6px}.cgraph-node-body .cform-params{grid-template-columns:1fr;padding-top:0}.cgraph-port{position:absolute;width:10px;height:10px;border:1px solid rgba(0,0,0,.6);border-radius:50%;padding:0}.cgraph-port-in{top:-6px;left:50%;margin-left:-5px;background:#cdd4de}.cgraph-ports-out{position:absolute;bottom:0;left:0;width:100%;height:0}.cgraph-port-out{bottom:-6px;margin-left:-5px;cursor:crosshair}.cgraph-port-idle{opacity:0}.cgraph-node:hover .cgraph-port-idle{opacity:.55}.practice-cheats{position:fixed;right:12px;bottom:18px;z-index:13;display:flex;gap:4px;pointer-events:auto;-webkit-user-select:none;user-select:none}.practice-cheat-btn{padding:4px 8px;border:1px solid rgba(255,255,255,.14);border-radius:5px;background:#0a0d14d1;color:#e8eaedd1;cursor:pointer;font:11px/1 ui-monospace,monospace}.practice-cheat-btn:hover{border-color:#ffffff4d;background:#181e2aeb;color:#e8eaed}.content-test-class{max-width:9rem}.content-test-btn{font-weight:600}.esc-menu{position:fixed;z-index:80;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:10px;min-width:220px;max-width:min(420px,90vw);padding:16px 18px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:#0c1017e6;box-shadow:0 18px 60px #0000008c;pointer-events:auto;-webkit-user-select:none;user-select:none}.esc-menu-title{font:700 14px/1 system-ui,sans-serif;color:#f4d9a6;letter-spacing:.04em;text-align:center}.esc-menu-rows{display:flex;flex-direction:column;gap:6px}.esc-menu-btn{padding:8px 14px;border:1px solid rgba(255,255,255,.18);border-radius:7px;background:#1e2532e6;color:#e8eaed;cursor:pointer;font:600 13px/1 system-ui,sans-serif}.esc-menu-btn:hover{border-color:#ffffff57;background:#2e384af2}.esc-menu-classes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;max-height:44vh;overflow-y:auto}.esc-class-btn{padding:6px 8px;border:1px solid rgba(255,255,255,.14);border-radius:6px;background:#161c27e6;color:#e8eaede0;cursor:pointer;font:500 12px/1 system-ui,sans-serif}.esc-class-btn:hover{border-color:#ffffff52;background:#283244f2;color:#e8eaed}.esc-class-sel{border-color:#f4d9a6;color:#f4d9a6}.esc-menu-hint{color:#e8eaed80;text-align:center;font:11px/1.2 system-ui,sans-serif}.games-panel{display:flex;flex-direction:column;gap:8px}.games-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.games-panel-title{font:700 11px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#9fb0c6}.name-prompt .games-refresh{padding:5px 10px;font-size:12px;background:#2b3648}.name-prompt .games-refresh:hover{background:#37455c}.games-empty{margin:0;font:13px/1.4 system-ui,sans-serif;color:#8494a8}.games-join-error{margin:0;padding:7px 10px;border-radius:6px;background:#d86f6a29;border:1px solid rgba(216,111,106,.45);font:13px/1.3 system-ui,sans-serif;color:#f0c3c1}.games-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.games-row{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#0f141d}.games-row-full{opacity:.55}.games-row-head{display:flex;align-items:baseline;gap:8px}.games-row-title{font:600 13px/1.2 system-ui,sans-serif;color:#e8eaed}.games-row-count{font:12px/1.2 system-ui,sans-serif;color:#8494a8;margin-left:auto}.games-row-badge{padding:2px 6px;border-radius:4px;background:#d86f6a40;color:#f0c3c1;font:700 10px/1.2 system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase}.games-row-teams{display:grid;grid-template-columns:1fr 1fr;gap:10px}.games-team{display:flex;flex-direction:column;gap:5px}.games-team-name{font:700 11px/1 system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase}.games-team-roster{display:flex;flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;font:12px/1.35 system-ui,sans-serif;color:#cbd5e1}.games-player-bot{color:#6f7d90;font-style:italic}.name-prompt .games-join,.name-prompt .games-join-any{padding:6px 10px;font-size:12px}.name-prompt .games-join{background:#2b3648}.name-prompt .games-join:hover:not(:disabled){background:#37455c}.name-prompt .games-join:disabled,.name-prompt .games-join-any:disabled{background:#232a36;color:#6f7d90;cursor:not-allowed}
