:root{--ink:#17221d;--paper:#f4eddc;--moss:#2f5a43;--lime:#b9d85a;--gold:#eabf58;--red:#d75a44;--blue:#72aecd}*{box-sizing:border-box}html,body{min-height:100%;color:var(--ink);background:#17221d;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{font:inherit}.shell{background:var(--paper);width:min(100%,430px);min-height:100dvh;margin:auto;position:relative;overflow:hidden}.selection{background:radial-gradient(circle at 80% 8%,#dce3b5 0 13%,#0000 14%),linear-gradient(160deg,#f7f0de,#e9e1c8);padding:42px 22px 28px}.selection:before,.selection:after{content:"";border:1px solid #2f5a4333;border-radius:50%;width:330px;height:330px;position:absolute;top:95px;right:-210px}.selection:after{width:220px;height:220px;top:500px;left:-155px}.brand{letter-spacing:-2px;z-index:1;font-size:32px;font-weight:950;position:relative;transform:skew(-5deg)}.brand b{color:var(--moss)}.eyebrow{letter-spacing:3px;color:#6e765c;margin:42px 0 8px;font-size:11px;font-weight:800}.selection h1{margin:0;font-family:Georgia,serif;font-size:35px;line-height:1.05}.lede{color:#5d665c;margin:12px 0 22px;font-size:14px;line-height:1.5}.class-grid{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.class-card{text-align:left;background:#f9f3e7;border:1px solid #8b927d;border-radius:18px;min-height:164px;padding:13px 8px 10px;transition:all .15s;box-shadow:0 5px #c8bfa9}.class-card.active{border:2px solid var(--moss);background:#eef0d6;transform:translateY(2px);box-shadow:0 3px #95a477}.class-card strong,.class-card small{display:block}.class-card strong{margin-top:9px;font-size:14px}.class-card small{color:var(--moss);text-transform:uppercase;font-size:10px;font-weight:800}.class-card p{color:#6d7469;margin:6px 0;font-size:10px;line-height:1.25}.class-glyph{width:48px;height:48px;margin:auto;display:block;position:relative}.class-glyph.warrior{background:var(--gold);clip-path:polygon(50% 0,88% 15%,82% 70%,50% 100%,18% 70%,12% 15%)}.class-glyph.rogue{background:var(--moss);clip-path:polygon(50% 0,68% 33%,100% 50%,68% 67%,50% 100%,32% 67%,0 50%,32% 33%)}.class-glyph.priest{background:var(--blue);border-radius:50% 50% 45% 45%;box-shadow:inset 0 0 0 12px #f9f3e7}.spec-panel{z-index:1;border-top:1px solid #aab09c;border-bottom:1px solid #aab09c;justify-content:space-between;align-items:center;gap:10px;margin-top:18px;padding:14px 0;display:flex;position:relative}.spec-panel .label{font-size:13px;font-weight:900}.spec-panel p{color:#6d7469;margin:3px 0;font-size:10px}.segmented{background:#d9d5c1;border-radius:12px;padding:3px;display:flex}.segmented button{background:0 0;border:0;border-radius:9px;padding:9px 11px;font-size:11px;font-weight:800}.segmented .selected{background:var(--ink);color:#fff}.party-preview{align-items:center;gap:7px;margin:16px 0 14px;font-size:10px;display:flex}.party-preview span{color:#777e70;font-weight:900}.party-preview b{background:#e2dfcd;border-radius:20px;padding:5px 7px}.party-preview i{color:#868c7b;font-style:normal}.primary{z-index:1;background:var(--moss);color:#fff;border:0;border-radius:15px;width:100%;padding:17px;font-weight:900;position:relative;box-shadow:0 5px #183d2a}.primary span{float:right}.game-shell{color:#fff;background:#17221d;flex-direction:column;display:flex}.hud-top{background:#142019;border-bottom:1px solid #ffffff18;justify-content:space-between;align-items:center;height:66px;padding:13px 16px;display:flex}.hud-top span{letter-spacing:2px;color:var(--lime);font-size:9px;font-weight:900;display:block}.hud-top b{font-family:Georgia,serif;font-size:16px}.timer{font-variant-numeric:tabular-nums;color:#dfe8c2;background:#26372d;border-radius:9px;padding:8px 10px}.battlefield{touch-action:none;background:radial-gradient(circle at 50% 30%,#566949 0 3%,#0000 3.5%),linear-gradient(90deg,#0000 49.4%,#d5c39418 49.5% 50.5%,#0000 50.6%),linear-gradient(#758064,#56674d);height:min(62vh,590px);min-height:450px;position:relative;overflow:hidden}.battlefield:before{content:"";background:repeating-linear-gradient(35deg,#0000 0 55px,#ffffff08 56px 58px);position:absolute;inset:0}.lane{background:#b8a77b22;border:1px solid #d8cb9833;border-radius:50%;position:absolute;transform:rotate(-8deg)}.lane-a{width:260px;height:130px;top:280px;left:65px}.lane-b{width:180px;height:90px;top:90px;left:105px}.unit{z-index:3;position:absolute;transform:translate(-50%,-50%)}.hero{color:#fff;background:0 0;border:0;width:52px;height:62px;padding:0}.hero-shape{border:4px solid #17221d;width:34px;height:34px;margin:auto;display:block;box-shadow:0 4px #17221d}.hero.tank .hero-shape{background:var(--gold);clip-path:polygon(50% 0,92% 20%,80% 86%,50% 100%,20% 86%,8% 20%)}.hero.healer .hero-shape{background:var(--blue);border-radius:50%}.hero.dps .hero-shape{background:var(--lime);transform:rotate(45deg)}.hero em,.enemy em{text-shadow:0 1px 3px #000;white-space:nowrap;margin-top:4px;font-size:8px;font-style:normal;font-weight:900;display:block}.selected-unit .hero-shape{outline-offset:3px;outline:3px solid #fff}.stunned{filter:grayscale(.7);animation:.35s infinite wobble}.target-mark{color:#4f301b;background:#fd5;border-radius:50%;width:22px;height:22px;font-size:15px;font-weight:950;animation:.6s infinite pulse;position:absolute;top:-28px;left:18px}.enemy{text-align:center;width:62px}.goblin-shape{clip-path:polygon(0 18%,25% 22%,35% 0,50% 22%,65% 0,75% 22%,100% 18%,82% 100%,18% 100%);background:#6a8b43;border:4px solid #23341f;width:38px;height:34px;margin:4px auto;display:block;position:relative}.goblin-shape i,.goblin-shape b{background:#ffdf6a;width:5px;height:5px;position:absolute;top:14px}.goblin-shape i{left:8px}.goblin-shape b{right:8px}.enemy-hp{background:#2b211d;border-radius:4px;height:5px;overflow:hidden}.enemy-hp i{background:#e86d4c;height:100%;display:block}.casting .goblin-shape{animation:.55s infinite alternate pickup}.cast-ring{border:2px dashed #ffdb62;border-radius:50%;width:52px;height:52px;animation:1.4s linear infinite spin;position:absolute;top:3px;left:5px}.mud{z-index:4;background:#563c24;border:3px solid #2e2317;border-radius:50% 40%;width:14px;height:14px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #8b623d55}.party-bars{background:#111b15;gap:4px;padding:7px 10px;display:grid}.party-bars button{color:#eef3df;text-align:left;background:#1e2b23;border:1px solid #0000;border-radius:8px;grid-template-columns:18px 1fr 52px;align-items:center;gap:5px;padding:5px 7px;display:grid}.party-bars button.active{border-color:var(--lime)}.party-bars b{font-size:9px;display:block}.party-bars strong{text-align:right;font-variant-numeric:tabular-nums;font-size:9px}.role-dot{width:10px;height:10px;display:block}.role-dot.tank{background:var(--gold);clip-path:polygon(50% 0,100% 25%,80% 100%,20% 100%,0 25%)}.role-dot.healer{background:var(--blue);border-radius:50%}.role-dot.dps{background:var(--lime);transform:rotate(45deg)}.hp-track{background:#382926;border-radius:5px;height:5px;margin-top:3px;position:relative;overflow:hidden}.hp-track i{height:100%;position:absolute;left:0}.hp-track .red{background:#c64f43}.hp-track .green{background:#76a54d}.combat-bottom{background:#17221d;padding:7px 10px 10px}.status-line{color:#dce6cb;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:9px;display:flex}.status-line span{max-width:66%}.status-line b{white-space:nowrap;color:var(--lime)}.skills{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.skills button{color:#fff;text-align:left;background:#26372d;border:1px solid #ffffff18;border-radius:10px;grid-template-rows:1fr 1fr;grid-template-columns:26px 1fr;align-items:center;padding:6px;font-size:10px;font-weight:900;display:grid}.skills button:disabled{opacity:.38}.skills small{color:#bac5af;font-size:8px}.skill-icon{grid-row:1/3;width:22px;height:22px;margin-right:4px}.skill-icon.shield{background:var(--gold);clip-path:polygon(50% 0,100% 20%,80% 100%,20% 100%,0 20%)}.skill-icon.heal{background:var(--blue);clip-path:polygon(36% 0,64% 0,64% 36%,100% 36%,100% 64%,64% 64%,64% 100%,36% 100%,36% 64%,0 64%,0 36%,36% 36%)}.skill-icon.strike{background:var(--lime);clip-path:polygon(42% 0,65% 0,58% 38%,100% 38%,35% 100%,42% 58%,0 58%)}.move-hint{text-align:center;color:#8fa08f;margin:7px 0 0;font-size:8px}.result{z-index:20;text-align:center;background:#122019dd;flex-direction:column;justify-content:center;align-items:center;padding:28px;display:flex;position:absolute;inset:0}.result p{letter-spacing:3px;color:var(--lime);font-size:11px;font-weight:900}.result h2{font-family:Georgia,serif;font-size:28px}.result button{background:var(--paper);color:var(--ink);border:0;border-radius:10px;padding:12px 18px;font-weight:900}@keyframes pickup{to{transform:translateY(7px)rotate(-8deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{transform:translateY(-4px);box-shadow:0 0 0 6px #fd53}}@keyframes wobble{50%{transform:translate(-50%,-50%)rotate(5deg)}}@media (max-height:720px){.battlefield{height:54vh;min-height:380px}.selection{padding-top:24px}.eyebrow{margin-top:24px}}.background-music-control{z-index:100;left:max(13px,50vw - 182px);bottom:calc(11px + env(safe-area-inset-bottom,0px));color:#ffe7a5;cursor:pointer;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f3431d6;border:1px solid #e0b966a8;border-radius:50%;place-items:center;width:33px;height:33px;padding:0;display:grid;position:fixed;box-shadow:0 2px #1f1610d9,0 0 12px #00000047}.background-music-control svg{width:18px;height:18px;overflow:visible}.background-music-control path{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.background-music-control path:first-child{fill:currentColor;stroke-width:1px}.background-music-control[data-state=blocked],.background-music-control[data-state=disabled]{color:#ffe7a59e;background:#152a29b8}:is(.background-music-control:hover,.background-music-control:focus-visible){filter:brightness(1.15);outline:0;box-shadow:0 2px #1f1610d9,0 0 0 2px #e0b96652,0 0 14px #00000059}.background-music-control:active{transform:translateY(1px);box-shadow:0 1px #1f1610d9}.back-button{width:40px;height:40px;color:var(--ink,#f7f4e8);font:inherit;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff2e;border-radius:12px;font-size:20px}.static-preview{position:relative;overflow:hidden}.version-label{margin:0 0 7px}.emax-brand{letter-spacing:-1.5px;font-size:29px;transform:none}.dedication{z-index:1;color:#687266;letter-spacing:.05em;margin:7px 0 32px;font-family:Georgia,Songti SC,serif;font-size:11px;position:relative}.creator-field{z-index:1;background:#f9f3e7c7;border:1px solid #aab09c;border-radius:13px;grid-template-columns:54px 1fr;align-items:center;gap:9px;margin:9px 0;padding:10px 12px;display:grid;position:relative}.creator-field>span,.section-label{color:#667060;letter-spacing:.1em;font-size:11px;font-weight:900}.creator-field input{width:100%;color:var(--ink);font:inherit;background:0 0;border:0;outline:0;font-size:14px}.creator-field input::placeholder{color:#9da397}.locked-field div{justify-content:space-between;align-items:baseline;display:flex}.locked-field b{font-size:14px}.locked-field small{color:#879083;font-size:9px}.attribute-note{z-index:1;color:#727a70;margin:-2px 2px 9px;padding:0 9px;font-size:10px;line-height:1.45;position:relative}.attribute-note b{color:var(--moss);margin-right:7px}.section-label{z-index:1;margin:18px 0 8px;position:relative}.gender-panel{background:#f9f3e7c7;border:0;border-radius:13px;margin:9px 0 0;padding:10px 12px}.class-card.warrior{--class-color:#c79c6e}.class-card.rogue{--class-color:#fff468}.class-card.priest{--class-color:#69ccf0}.class-card.active{border-color:var(--class-color);box-shadow:0 3px 0 color-mix(in srgb,var(--class-color) 65%,#5b604f)}.class-card small{color:color-mix(in srgb,var(--class-color) 70%,#26372d)}.class-glyph.warrior{clip-path:polygon(50% 0,88% 15%,82% 70%,50% 100%,18% 70%,12% 15%);filter:drop-shadow(0 3px #60482f);background:#c79c6e}.class-glyph.rogue{clip-path:none;filter:drop-shadow(2px 3px #42301459);background:linear-gradient(#5d4028,#342619) 50% 88%/8px 14px no-repeat,linear-gradient(#8a693a,#49351f) 50% 65%/32px 7px no-repeat;transform:rotate(42deg)}.class-glyph.rogue:before{content:"";clip-path:polygon(50% 0,100% 25%,68% 100%,32% 100%,0 25%);background:linear-gradient(90deg,#d9c72f,#fff8a1 55%,#b6a51f);width:18px;height:29px;position:absolute;top:1px;left:15px}.class-glyph.rogue:after{content:"";background:#3d2a1b;border-radius:50%;width:10px;height:8px;position:absolute;bottom:0;left:19px}.class-glyph.priest{clip-path:polygon(35% 0,65% 0,65% 35%,100% 35%,100% 65%,65% 65%,65% 100%,35% 100%,35% 65%,0 65%,0 35%,35% 35%);background:#69ccf0;border-radius:0;box-shadow:0 0 0 5px #69ccf029}.class-specs .unavailable{color:#8b8e88;filter:grayscale();cursor:not-allowed;opacity:.58;background:0 0;text-decoration:line-through}.warrior-specs .selected{color:#251c13;background:#c79c6e}.rogue-specs .selected{color:#2b2710;background:#d9c62c}.priest-specs .selected{color:#11333f;background:#69ccf0}.preview-note{z-index:8;color:#ffffffad;text-align:center;letter-spacing:.08em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0e12c2;border:1px solid #ffffff1f;border-radius:999px;flex-direction:column;gap:2px;min-width:220px;padding:8px 16px;font-size:10px;display:flex;position:absolute;bottom:3%;left:50%;transform:translate(-50%)}.preview-note b{color:#f8d65d;letter-spacing:.12em;font-size:11px}.trajectory{transform-origin:top;pointer-events:none;border-left:2px dashed #e8b45470;width:2px;height:34%;position:absolute;top:25%;left:31%;transform:rotate(-22deg)}.enemy-mark{animation:1.1s ease-in-out infinite alternate markerPulse}.placeholder-skills button{cursor:default}.primary:disabled{cursor:not-allowed;filter:grayscale(.65);opacity:.45;box-shadow:0 3px #7b8076}@keyframes floatMud{0%{transform:translate(-50%,-50%)rotate(-8deg)}to{transform:translate(-50%,calc(-50% - 9px))rotate(11deg)}}@keyframes markerPulse{0%{transform:translate(-50%,-2px)scale(.94)}to{transform:translate(-50%,-8px)scale(1.05)}}@media (max-width:680px){.preview-note{bottom:2%}.back-button{width:34px;height:34px}}.class-glyph.warrior,.class-glyph.rogue,.class-glyph.priest{width:56px;height:56px;box-shadow:none;clip-path:none;filter:drop-shadow(0 3px 2px #432d1757);background-color:#0000;background-position:50%;background-repeat:no-repeat;background-size:contain;border:0;border-radius:0;transform:none}.class-glyph.warrior{background-image:url(/ui/storybook-icons/class-tank.png?v=20260813-2)}.class-glyph.rogue{background-image:url(/ui/storybook-icons/class-rogue.png?v=20260813-2)}.class-glyph.priest{background-image:url(/ui/storybook-icons/class-priest.png?v=20260813-2)}.class-glyph.rogue:before,.class-glyph.rogue:after{display:none}.class-card.active .class-glyph{animation:1.35s ease-in-out infinite alternate classEmblemGlow}@keyframes classEmblemGlow{0%{filter:drop-shadow(0 3px 2px #432d1757)brightness()}to{filter:drop-shadow(0 3px 2px #432d1757) drop-shadow(0 0 4px color-mix(in srgb,var(--class-color) 62%,transparent)) brightness(1.08)}}@media (prefers-reduced-motion:reduce){.class-card.active .class-glyph{animation:none}}.class-grid .class-card.active{box-shadow:inset 0 0 0 1px var(--class-color),0 3px 0 color-mix(in srgb,var(--class-color) 65%,#5b604f);border-width:1px;transform:none}.hero{width:64px;height:72px}.hero-node{--unit-foot-offset:72px;width:64px;height:72px;transform:translate(-50%, calc(0px - var(--unit-foot-offset)));transform-origin:50% var(--unit-foot-offset);transition:left .72s cubic-bezier(.2,.72,.22,1),top .72s cubic-bezier(.2,.72,.22,1);overflow:visible}.hero-node>.hero{position:absolute;inset:0}.collision-body{z-index:-1;pointer-events:none;background:#101a122e;border:1px solid #ffffff47;border-radius:50%;width:54px;height:24px;position:absolute;bottom:4px;left:50%;transform:translate(-50%);box-shadow:inset 0 0 0 2px #121c1529}.selected-unit .collision-body{background:#ffffff14;border-color:#ffffffdb}.party-bars button{grid-template-columns:24px 1fr 58px;padding:6px 8px}.party-bars b{font-size:10px}.empty-party-slot{color:#69716b;background:#1b211d;border:1px solid #ffffff0a;border-radius:8px;grid-template-columns:24px 1fr 58px;align-items:center;gap:5px;padding:6px 8px;display:grid}.empty-party-slot strong{text-align:right;font-size:9px}.empty-role-dot{border:1px dashed #59615b;border-radius:50%;width:17px;height:17px;display:block}.empty-track{background:#2d332f}.role-dot{width:18px;height:18px;position:relative;clip-path:none!important;background:0 0!important;transform:none!important}.role-dot:before,.role-dot:after{content:"";display:block;position:absolute}.role-dot.tank:before{clip-path:polygon(50% 0,100% 18%,82% 78%,50% 100%,18% 78%,0 18%);background:#c79c6e;inset:1px 2px}.role-dot.healer:before{clip-path:polygon(35% 0,65% 0,65% 35%,100% 35%,100% 65%,65% 65%,65% 100%,35% 100%,35% 65%,0 65%,0 35%,35% 35%);background:#69ccf0;inset:1px}.role-dot.dps:before{clip-path:polygon(50% 0,100% 25%,68% 100%,32% 100%,0 25%);background:#fff468;width:7px;height:14px;top:0;left:6px;transform:rotate(42deg)}.role-dot.dps:after{background:#9b8741;border-radius:2px;width:14px;height:4px;top:12px;left:3px;transform:rotate(42deg)}.energy-track{background:#17263b;border-radius:3px;height:2px;margin-top:2px;overflow:hidden}.energy-track i{background:#399dea;height:100%;display:block;box-shadow:0 0 4px #399deabf}.skills .locked-skill{color:#7b847d;opacity:.58;background:#202722;border-color:#ffffff14}.skills .locked-skill small{color:#6e756f}.skill-lock{color:#9ba29c;border:1px solid #6b736d;border-radius:6px;grid-row:1/3;place-items:center;width:22px;height:22px;margin-right:4px;font-size:10px;display:grid}.timer-tools{align-items:center;gap:6px;display:flex}.story-replay{color:#dfe8c2;background:#26372d;border:1px solid #ffffff29;border-radius:50%;place-items:center;width:28px;height:28px;padding:0 0 0 2px;font-size:10px;display:grid}.story-replay:hover{border-color:var(--lime);color:var(--lime)}.battle-message{flex:1;min-width:0;padding:0 10px}.enemy{color:#fff;cursor:default;background:0 0;border:0;padding:0}.enemy em{font-size:10px;line-height:1.2}.attack-target em{color:#ff7368;text-shadow:0 1px 3px #000,0 0 6px #ed4e42bf}.attack-target:after{content:none}.enemy-cast-path{z-index:2;opacity:0;filter:drop-shadow(0 0 3px #e0b82fb8);pointer-events:none;width:100%;height:100%;animation:6s linear infinite pathDuringCast;position:absolute;inset:0}.enemy-cast-path line{stroke:#e0b82f;stroke-width:4px;stroke-dasharray:9 6;stroke-linecap:round;vector-effect:non-scaling-stroke}.enemy-cast-path.selected-path{animation:6s linear infinite pathWhenSelected}.command-line{z-index:20;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.command-line .command-beam-shadow{stroke:#0f0d0794;stroke-width:5.5px;stroke-linecap:round;vector-effect:non-scaling-stroke}.command-line .command-beam{stroke:url(#command-beam-gradient);stroke-width:3.2px;stroke-linecap:round;vector-effect:non-scaling-stroke;filter:url(#command-glow)}.command-line .command-flow{stroke:#ffffdae0;stroke-width:1.15px;stroke-linecap:round;stroke-dasharray:7 9;vector-effect:non-scaling-stroke;animation:.55s linear infinite commandFlow}.command-line .command-origin-halo,.command-line .command-origin,.command-line .command-end-ring,.command-line .command-end-halo,.command-line .command-move-landing{fill:none;stroke:#edf2e6;vector-effect:non-scaling-stroke}.command-line .command-origin-halo{stroke-width:4px;opacity:.2}.command-line .command-origin{stroke-width:2.3px;fill:none}.command-line .command-end-halo{stroke-width:1px;opacity:.28}.command-line .command-end-ring{stroke-width:2.4px;fill:none}.command-line .command-move-landing{stroke-width:2.5px;fill:#ffe1671f}.command-line .command-end-symbol{fill:none;stroke:#f7f9ed;stroke-width:2.2px;stroke-linecap:round;vector-effect:non-scaling-stroke}.command-line .command-arrow-shadow{fill:#161006c2;stroke:#ffe89152;stroke-width:.8px}.command-line .command-arrow-shape{fill:#ffe16a;stroke:#fff4bd;stroke-width:1.2px;filter:drop-shadow(0 0 4px #ffd346f2)}.command-line .command-stop-start{stop-color:#fff7bf}.command-line .command-stop-middle{stop-color:#f6ca45}.command-line .command-stop-end{stop-color:#ffdf62}.command-line.intent-attack .command-stop-middle,.command-line.intent-attack .command-stop-end{stop-color:#ef5549}.command-line.intent-heal .command-stop-middle,.command-line.intent-heal .command-stop-end{stop-color:#4be275}.command-line.intent-attack{color:#ef5a4d}.command-line.intent-heal{color:#55e379}.command-line.intent-move{color:#f0e3a5}.command-line.intent-attack .command-origin-halo,.command-line.intent-attack .command-origin,.command-line.intent-attack .command-end-ring,.command-line.intent-attack .command-end-halo,.command-line.intent-attack .command-end-symbol{stroke:#ef5a4d;filter:drop-shadow(0 0 2px #ef5a4db3)}.command-line.intent-heal .command-origin-halo,.command-line.intent-heal .command-origin,.command-line.intent-heal .command-end-ring,.command-line.intent-heal .command-end-halo,.command-line.intent-heal .command-end-symbol{stroke:#55e379;filter:drop-shadow(0 0 3px #55e379c7)}.command-line.intent-move .command-origin-halo,.command-line.intent-move .command-origin,.command-line.intent-move .command-end-ring,.command-line.intent-move .command-end-halo,.command-line.intent-move .command-move-landing{stroke:#f0cf5b;filter:drop-shadow(0 0 3px #ffd548c7)}.command-line.invalid-move .command-beam,.command-line.invalid-move .command-flow{stroke:#ef5149;filter:drop-shadow(0 0 3px #ef5149cc)}.command-invalid-landing circle{fill:#4c0f0db3;stroke:#ff665b;stroke-width:2.2px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px #ff483ee6)}.command-invalid-landing path{fill:none;stroke:#fff2dd;stroke-width:3px;stroke-linecap:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 1px #410907e6)}.skill-command-line .command-beam{stroke:url(#skill-command-beam-gradient);filter:url(#skill-command-glow)}.skill-command-line.intent-move .command-stop-middle,.skill-command-line.intent-move .command-stop-end{stop-color:#ffd84b}.skill-command-line.intent-move .command-origin-halo,.skill-command-line.intent-move .command-origin,.skill-command-line.intent-move .command-end-ring,.skill-command-line.intent-move .command-end-halo{stroke:#ffe05a;filter:drop-shadow(0 0 3px #ffd84bd1)}@keyframes commandFlow{to{stroke-dashoffset:-13px}}.healing-name-target{background:#32b85a;border:1px solid #dfffe6;border-radius:50%;flex:0 0 8px;width:8px;height:8px;display:inline-block;position:relative;box-shadow:0 0 3px #32b85aad}.healing-name-target:before,.healing-name-target:after{content:"";background:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.healing-name-target:before{width:5px;height:1px}.healing-name-target:after{width:1px;height:5px}.hero{touch-action:none}:is(.game-shell .hero:focus,.game-shell .hero:focus-visible){box-shadow:none;outline:none}@keyframes pathDuringCast{0%,24%,61%,to{opacity:0}27%,58%{opacity:.88}}@keyframes pathWhenSelected{0%,24%{opacity:.22}27%,58%{opacity:.95}61%,to{opacity:.28}}.battle-message b{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.hud-toggle{cursor:pointer;background:#26372d;border:1px solid #ffffff1f;border-radius:8px;justify-content:center;align-items:flex-end;gap:2px;width:30px;height:32px;padding:7px 6px;display:flex}.hud-toggle i{background:#91a18f;border-radius:2px;width:3px;display:block}.hud-toggle i:first-child{height:7px}.hud-toggle i:nth-child(2){height:13px}.hud-toggle i:nth-child(3){height:10px}.hud-toggle.active{border-color:var(--lime)}.hud-toggle.active i{background:var(--lime)}.overhead-health{background:#351d1b;border:1px solid #0a110ccc;border-radius:4px;width:48px;height:5px;position:absolute;top:-10px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 2px 4px #00000059}.overhead-health i{height:100%;display:block;position:absolute;left:0}.overhead-health .current{z-index:2;background:#77b552}.overhead-health .recoverable{z-index:1;background:#d75a44}.hp-track .recoverable-segment{background:#d75a44;animation:1.15s ease-in-out infinite alternate recoverablePulse;right:auto}@keyframes recoverablePulse{0%{filter:brightness(.88)}to{filter:brightness(1.18)}}.enemy-hp{position:relative}.enemy-hp i{position:absolute;top:0;left:0}.enemy-hp .current{z-index:2;background:#77a94f}.enemy-hp .recoverable{z-index:1;background:#d75a44}.enemy-castbar{opacity:0;background:#281e12e0;border:1px solid #26190ceb;border-radius:4px;width:62px;height:10px;margin:3px 0 -2px;animation:6s linear infinite castWindow;position:relative;overflow:hidden}.enemy-intent{z-index:8;color:#fff;text-shadow:0 1px 2px #00000094;opacity:0;border:2px solid #ffffffdb;border-radius:50%;place-items:center;width:22px;height:22px;font-size:15px;font-style:normal;font-weight:950;line-height:1;animation:1.25s ease-out forwards enemyAttentionBrief;display:grid;position:absolute;top:-29px;left:50%;transform:translate(-50%);box-shadow:0 3px 6px #00000059}.intent-skill{color:#4b3510;background:#e0b82f}.intent-danger{background:#d94c3d}.intent-buff{background:#398fdb}@keyframes enemyAttentionBrief{0%{opacity:0;transform:translate(-50%,3px)scale(.76)}14%,66%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-2px)scale(.92)}}.enemy-castbar i{transform-origin:0;background:#e69a31;animation:6s linear infinite castProgress;position:absolute;inset:0}.enemy-castbar b{z-index:2;color:#fff4d7;text-shadow:0 1px 2px #3b210c;font-size:7px;line-height:8px;display:block;position:relative}@keyframes castWindow{0%,24%,61%,to{opacity:0}27%,58%{opacity:1}}@keyframes castProgress{0%,25%{transform:scaleX(0)}58%{transform:scaleX(1)}59%,to{transform:scaleX(0)}}.dps-meter{color:#eef3df;background:#111b15;min-height:102px;padding:7px 10px}.dps-meter header,.dps-meter button,.empty-meter-row{grid-template-columns:24px 1fr 58px 58px;align-items:center;gap:5px;display:grid}.dps-meter header{color:#8fa08f;padding:0 8px 5px;font-size:8px}.dps-meter header b{color:var(--lime);grid-column:1/3;font-size:9px}.dps-meter button{background:linear-gradient(90deg, var(--meter-color) 0 72%, #1e2b23f5 72%);color:#eef3df;text-align:left;border:1px solid #0000;border-radius:7px;width:100%;margin-top:3px;padding:6px 8px;position:relative;overflow:hidden}.dps-meter button.active{border-color:var(--lime)}.dps-meter .meter-row.tank{--meter-color:#c79c6eb8}.dps-meter .meter-row.healer{--meter-color:#69ccf0b8}.dps-meter .meter-row.dps{--meter-color:#fff468b8;color:#151711}.dps-meter button b{font-size:9px}.dps-meter button span,.dps-meter button strong,.empty-meter-row span,.empty-meter-row strong{text-align:right;font-variant-numeric:tabular-nums;font-size:9px}.empty-meter-row{color:#69716b;background:#1b211d;border:1px solid #ffffff0a;border-radius:7px;width:100%;margin-top:3px;padding:6px 8px}.empty-meter-row b{font-size:9px}.battle-skill-tray{z-index:12;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0e12b8;border:1px solid #ffffff1f;border-radius:999px;grid-template-columns:repeat(3,48px);place-items:center;min-height:52px;padding:3px 8px;display:grid;position:absolute;bottom:2%;left:50%;transform:translate(-50%)}.story-center-enemy{transition:left .88s cubic-bezier(.16,.8,.2,1),top .88s cubic-bezier(.16,.8,.2,1),opacity .3s}.story-side-enemy{transition:opacity .45s}.story-party-unit{transition:left .82s cubic-bezier(.16,.78,.18,1),top .82s cubic-bezier(.16,.78,.18,1),opacity .25s}.story-ready .story-tank,.story-ready .story-dps,.story-ready .story-healer,.story-ready .story-center-enemy{transition:none}.story-party-arrival .story-tank{transition-delay:0s}.story-party-arrival .story-healer{transition-delay:.13s}.story-party-arrival .story-dps{transition-delay:.26s}.story-active .unit{pointer-events:none}.story-active .story-side-enemy,.story-goblin-card .story-center-enemy,.story-goblin-card .story-party-unit,.story-enemy-arrival .story-party-unit{opacity:0}.story-active .enemy-hp,.story-active .enemy-intent,.story-active .enemy-castbar,.story-active .enemy-cast-path,.story-active .overhead-health,.story-active .unit-status-strip,.story-active .mud,.story-active .character-basic-projectile,.story-active .player-skill-projectile,.story-active .battle-skill-spine-effect{opacity:0!important}.story-focus{z-index:9}.story-vignette{z-index:6;pointer-events:none;background:linear-gradient(#0b120c 0 5%,#0000 13% 87%,#0b120c 95% 100%),radial-gradient(circle,#0000 0 42%,#070c087a 100%);animation:.28s ease-out both storyVignetteIn;position:absolute;inset:0}.story-entry-card{z-index:45;color:#fff3d4;text-align:left;clip-path:polygon(8% 0,100% 0,100% 100%,2% 100%,0 82%,5% 66%,1% 49%,6% 30%,2% 13%);background:#1b2118;border:0;padding:0;animation:.66s cubic-bezier(.14,.82,.2,1.04) both storyCardSlide,.18s linear .68s 3 storyCardShake;position:absolute;inset:9% -2% 24% 3%;overflow:hidden;box-shadow:0 12px 28px #00000094}.story-entry-art{filter:saturate(.94)contrast(1.04);background-image:linear-gradient(90deg,#12130c1a,#0000 40%),url(/story/goblin-entrance.png);background-position:50% 49%;background-size:cover;display:block;position:absolute;inset:0}.story-entry-card:after{content:"";clip-path:inherit;pointer-events:none;border:3px solid #f4d68e8f;position:absolute;inset:0}.story-entry-copy{z-index:2;text-shadow:0 2px 3px #000;background:linear-gradient(90deg,#11140df0,#11140d94 76%,#0000);padding:9px 15px 10px 13px;display:grid;position:absolute;bottom:8%;left:8%}.story-entry-copy small{color:#f3cb5f;letter-spacing:3px;font-size:9px;font-weight:950}.story-entry-copy strong{color:#fff6dc;margin-top:2px;font-family:Georgia,serif;font-size:28px;line-height:1}.story-entry-copy em{color:#cdd5b6;margin-top:5px;font-size:9px;font-style:normal}.story-continue{z-index:3;color:#ffffffbf;letter-spacing:1px;font-size:8px;font-weight:800;animation:1s ease-in-out infinite alternate storyContinue;position:absolute;bottom:5%;right:6%}.story-bubble{z-index:24;color:#273022;text-align:left;background:#fff4d6;border:2px solid #2c2c22;border-radius:15px;min-width:178px;max-width:230px;padding:10px 14px 9px;animation:.32s cubic-bezier(.16,.85,.22,1.14) both storyBubbleIn;position:absolute;box-shadow:0 5px #1418108c,0 10px 20px #0000003d}.story-bubble:after{content:"";clip-path:polygon(0 0,100% 0,20% 100%);background:#fff4d6;width:18px;height:14px;position:absolute;bottom:-12px}.story-bubble b,.story-bubble span,.story-bubble small{display:block}.story-bubble b{color:#718e45;font-size:10px}.story-bubble span{margin-top:3px;font-size:13px;font-weight:850}.story-bubble small{color:#8b8e78;text-align:right;margin-top:5px;font-size:7px}.enemy-story-bubble{top:34%;left:12%}.enemy-story-bubble:after{right:23%;transform:scaleX(-1)}.party-story-bubble{top:53%;right:8%}.party-story-bubble:after{left:24%}.party-story-bubble b{color:#4778a4}.story-skip{z-index:60;color:#eef2df;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0b110cb3;border:1px solid #ffffff61;border-radius:999px;padding:6px 11px;font-size:9px;font-weight:850;position:absolute;top:12px;right:12px}.story-mode .party-bars,.story-mode .dps-meter,.story-mode .hud-top{filter:brightness(.68)}@keyframes storyCardSlide{0%{transform:translate(115%)rotate(2deg)}to{transform:translate(0)rotate(0)}}@keyframes storyCardShake{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(-3px,1px)rotate(-.35deg)}50%{transform:translate(2px,-1px)rotate(.3deg)}75%{transform:translate(-1px,-1px)rotate(-.18deg)}}@keyframes storyBubbleIn{0%{opacity:0;transform:translateY(10px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes storyVignetteIn{0%{opacity:0}to{opacity:1}}@keyframes storyContinue{0%{opacity:.45;transform:translate(-2px)}to{opacity:1;transform:translate(2px)}}.skill-slot{width:42px;height:42px}.active-skill-wrap{flex-direction:column;align-items:center;min-width:46px;display:flex;position:relative}.battle-skill{color:#dce7d9;background:#314238;border:2px solid #ffffffc7;border-radius:50%;place-items:center;width:46px;height:46px;padding:0;display:grid;position:relative;overflow:hidden;box-shadow:0 4px 9px #0000006b}.battle-skill .skill-icon{grid-row:auto;width:24px;height:24px;margin:0}.battle-skill.armed{border-color:#fff;transform:scale(1.07);box-shadow:0 0 0 4px #ffffff47,0 4px 9px #0000006b}.battle-skill.cooling{filter:grayscale();background:#282d29}.cooldown-ring{color:#fff;transform-origin:50%;transform-box:border-box;pointer-events:none;width:calc(100% - 4px);height:calc(100% - 4px);display:block;position:absolute;inset:50% auto auto 50%;overflow:visible;transform:translate(-50%,-50%)rotate(-90deg)}.cooldown-ring circle{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100px}.skill-cooldown-seconds{z-index:2;color:#fff;text-shadow:0 1px 3px #000,0 0 5px #000;pointer-events:none;font-size:19px;font-weight:900;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (max-width:390px){.battle-skill-tray{grid-template-columns:repeat(3,46px)}}.hero em{font-size:10px;line-height:1.2}.preview-mud{z-index:5;animation:6s linear infinite mudLaunch}@keyframes mudLaunch{0%,57%{opacity:0;top:22%;left:26%;transform:translate(-50%,-50%)scale(.65)rotate(-8deg)}60%{opacity:1;top:24%;left:27%;transform:translate(-50%,-50%)scale(1)rotate(-8deg)}86%{opacity:1;top:62%;left:50%;transform:translate(-50%,-50%)scale(1)rotate(180deg)}90%,to{opacity:0;top:62%;left:50%;transform:translate(-50%,-50%)scale(.8)rotate(210deg)}}.game-shell{--battle-actor-visual-scale:.75}.character-art{--sprite-translate-x:-50%;--sprite-render-filter:contrast(1.16) saturate(1.12) drop-shadow(0 1px 0 #070a06e0) drop-shadow(1px 0 0 #070a06ad) drop-shadow(-1px 0 0 #070a06ad) drop-shadow(0 3px 2px #080a0594);--battle-art-base-filter:var(--sprite-render-filter);z-index:2;transform:translateX(var(--sprite-translate-x));filter:var(--battle-art-base-filter);pointer-events:none;background-position:bottom;background-repeat:no-repeat;background-size:contain;display:block;position:absolute;left:50%}.hero-art{transform-origin:50% 90%;width:58px;height:56px;bottom:7px}.battle-foot-ring-layer{z-index:0;pointer-events:none;position:absolute;inset:0}.battle-foot-ring-anchor{pointer-events:none;width:0;height:0;position:absolute}.hero>em{left:50%;top:calc(var(--unit-foot-offset) + 3px);z-index:5;margin:0;font-size:10px;line-height:1.15;position:absolute;transform:translate(-50%)}.collision-body{z-index:1;opacity:0;background:conic-gradient(from 215deg,#805610,#ffe874 24%,#fff7b8 39%,#d89b21 62%,#fff09a 82%,#805610);border:0;border-radius:50%;width:50px;height:36px;transition:opacity .14s,border-color .14s,box-shadow .14s;bottom:-18px;left:50%;transform:translate(-50%)scaleY(.5);-webkit-mask:radial-gradient(#0000 0 51%,#000 55% 72%,#0000 76%);mask:radial-gradient(#0000 0 51%,#000 55% 72%,#0000 76%)}.battle-collider{left:50%;top:calc(var(--unit-foot-offset) - var(--body-hurtbox-height,60px));z-index:12;width:var(--body-hurtbox-width,30px);height:var(--body-hurtbox-height,60px);transform-origin:50% 100%;pointer-events:none;visibility:hidden;opacity:0;background:0 0;border:0;display:block;position:absolute;transform:translate(-50%)}.hero-node>.vision-range-debug{left:50%;top:var(--unit-foot-offset);z-index:0;width:var(--debug-vision-diameter,240px);height:var(--debug-vision-diameter,240px);box-sizing:border-box;filter:drop-shadow(0 0 3px #ffd0246b);pointer-events:none;visibility:hidden;opacity:0;background:#ffda3e13;border:2px solid #ffd63ad1;border-radius:50%;display:block;position:absolute;transform:translate(-50%,-50%)}.battlefield.vision-visible .hero-node.selected-unit:not(.death-removed)>.vision-range-debug{visibility:visible;opacity:1}.battlefield.vision-hidden .vision-range-debug{visibility:hidden;opacity:0!important}.selected-unit .collision-body{opacity:1;background:conic-gradient(from 215deg,#ffbd18,#fffbd3 22%,#ffe34f 42%,#fff5a0 64%,#ffb800 82%,#fffbe0);animation:.82s ease-in-out infinite alternate selectedUnitGlow;box-shadow:0 0 5px 2px #fff9c4f5,0 0 15px 5px #ffcf2ae0,0 0 27px 8px #ffae0066,inset 0 0 9px #fff8abdb}@keyframes selectedUnitGlow{0%{filter:brightness(1.08)saturate(1.08);box-shadow:0 0 4px 1px #fff9c4e6,0 0 12px 4px #ffcf2ac7,0 0 22px 7px #ffae004d,inset 0 0 8px #fff8abc2}to{filter:brightness(1.48)saturate(1.3);box-shadow:0 0 7px 3px #fffddd,0 0 19px 7px #ffd537fa,0 0 32px 10px #ffb1007a,inset 0 0 11px #fffbc1f5}}.game-shell,.game-shell *,.game-shell :before,.game-shell :after{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.game-shell{-webkit-touch-callout:none}.game-shell :is(img,canvas,svg){-webkit-user-drag:none}.game-shell button{-webkit-appearance:none;appearance:none}.game-shell button:focus{outline:none}.game-shell .battlefield button:focus-visible{box-shadow:none;outline:none}.game-shell :is(.hud-top,.party-bars,.combat-bottom) button:focus-visible{outline-offset:2px;outline:2px solid #e7d37ed1}.game-shell ::selection{color:inherit;background:0 0}.command-dragging .collision-body{opacity:1;animation:.56s ease-in-out infinite alternate commandFootPulse;box-shadow:0 0 5px #fff6c5,0 0 16px #ffd337f5,0 0 0 4px #ffdf5324,inset 0 0 9px #ffe86db8}.story-active .selected-unit .collision-body{opacity:0}.battlefield.armed-glow-tank.armed-target-tank .story-tank .collision-body{opacity:1;animation:.72s ease-in-out infinite alternate armedTargetRingPulse}.battlefield.skill-drag-glow-tank.skill-drag-target-tank .story-tank .collision-body{opacity:1;background:conic-gradient(from 215deg,#8e5f08,#ffe451 24%,#fff5a5 44%,#d79b0c 67%,#fff08a 84%,#8e5f08);animation:.58s ease-in-out infinite alternate armedTargetRingPulse;box-shadow:0 0 6px #fff4ad,0 0 18px #ffcf2d,0 0 0 4px #fd43,inset 0 0 10px #ffef7af0}.battlefield.skill-drag-glow-tank.skill-drag-target-tank .battle-foot-ring-anchor.story-tank:after{content:"";z-index:0;border:2px solid var(--skill-drag-wave-color);opacity:0;pointer-events:none;--skill-drag-wave-color:#ffe45c;border-radius:50%;width:50px;height:36px;animation:.92s ease-out infinite armedTargetWave;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)scaleY(.5)}.battlefield.armed-glow-tank.armed-target-tank .story-tank .collision-body{background:conic-gradient(from 215deg,#8e5f08,#ffe451 24%,#fff5a5 44%,#d79b0c 67%,#fff08a 84%,#8e5f08);box-shadow:0 0 5px #fff2a2,0 0 15px #ffcf2dfa,0 0 0 3px #ffdd442e,inset 0 0 9px #ffef7ae0}.skill-target-damage .enemy-selection-frame{opacity:1;background:radial-gradient(#ff3e3047,#87130f1f 55%,#0000 72%);border-color:#ff4a3e;animation:.72s ease-in-out infinite alternate armedTargetRingPulse;box-shadow:0 0 4px #ffb1a7,0 0 15px #ff372afa,0 0 0 3px #ff4a3829,inset 0 0 7px #ff846ac7}.battlefield.armed-glow-tank.armed-target-tank .battle-foot-ring-anchor.story-tank:after{content:"";z-index:0;border:2px solid var(--armed-wave-color);width:50px;height:36px;box-shadow:0 0 0 1px var(--armed-wave-inner), 0 0 5px var(--armed-wave-color);opacity:0;filter:blur(.15px);pointer-events:none;--armed-wave-color:#ffe45c;--armed-wave-inner:#fff6aab8;border-radius:50%;animation:1.12s ease-out infinite armedTargetWave;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)scaleY(.5)scale(1)}.skill-target-damage .enemy-selection-frame:after{content:"";opacity:0;filter:blur(.15px);border:2px solid #ff5649;border-radius:50%;animation:1.12s ease-out infinite armedEnemyTargetWave;position:absolute;inset:-2px;box-shadow:0 0 0 1px #ffb1a4ad,0 0 5px #ff5649c2}@keyframes armedTargetRingPulse{0%{filter:brightness()}to{filter:brightness(1.32)}}@keyframes armedTargetWave{0%{opacity:.84;border-width:2px;transform:translate(-50%)scaleY(.5)scale(1)}45%{opacity:.52}78%,to{opacity:0;border-width:1px;transform:translate(-50%)scaleY(.5)scale(1.62)}}@keyframes armedEnemyTargetWave{0%{opacity:.84;border-width:2px;transform:scale(1)}45%{opacity:.52}78%,to{opacity:0;border-width:1px;transform:scale(1.62)}}.armed-skill-controls{z-index:25;gap:8px;display:flex;position:absolute;bottom:60px;left:15px}.armed-skill-cancel,.armed-skill-cycle{color:#fff4d7;text-shadow:0 1px 2px #2f140ee6;cursor:pointer;background:radial-gradient(circle at 36% 28%,#ffffe13d,#0000 31%),linear-gradient(145deg,#794c39f5,#42231efa);border:2px solid #ffefc3e0;border-radius:50%;place-items:center;width:34px;height:34px;padding:0 0 2px;font-family:Georgia,serif;font-size:23px;font-weight:900;line-height:1;animation:.16s ease-out both armedCancelIn;display:grid;box-shadow:inset 0 0 0 2px #4a26196b,0 3px #301b14c2,0 5px 10px #00000057}.armed-skill-cycle{color:#f2ffe1;background:linear-gradient(145deg,#567746fa,#22412bfa);border-color:#daf5bee0;font-family:system-ui,sans-serif;font-size:19px}.armed-skill-cancel:active,.armed-skill-cycle:active{transform:translateY(2px);box-shadow:inset 0 0 0 2px #4a26196b,0 1px #301b14c2}.skill-target-marker{z-index:42;filter:drop-shadow(0 1px 1px #2f1908e6)drop-shadow(0 0 5px #ffdc49eb);pointer-events:none;width:19px;height:17px;animation:.72s ease-in-out infinite alternate skillTargetMarkerBob;display:block;position:absolute;left:50%;transform:translate(-50%)}.skill-target-marker:before{content:"";clip-path:polygon(0 0,50% 52%,100% 0,100% 38%,50% 100%,0 38%);background:linear-gradient(#fffbd1 0%,#ffe46a 34%,#e9a51c 72%,#9f5a0c 100%);animation:1.05s ease-in-out infinite alternate skillTargetMarkerShine;position:absolute;inset:1px 0 0}.skill-target-marker:after{content:"";background:#fffbd4;border-radius:50%;width:6px;height:6px;animation:1.05s ease-in-out infinite skillTargetMarkerSpark;position:absolute;top:-2px;left:50%;box-shadow:0 0 4px 2px #ffec70e6}.hero .skill-target-marker{top:calc(var(--unit-foot-offset) - var(--friendly-overhead-health-offset) - 20px)}.enemy .skill-target-marker{top:calc(var(--unit-foot-offset) - var(--body-hurtbox-height,60px) - 30px)}@keyframes skillTargetMarkerBob{0%{transform:translate(-50%)translateY(0)}to{transform:translate(-50%)translateY(-4px)}}@keyframes skillTargetMarkerShine{0%{filter:brightness(.92)}to{filter:brightness(1.25)}}@keyframes skillTargetMarkerSpark{0%,to{opacity:.35;transform:translate(-50%)scale(.55)}50%{opacity:1;transform:translate(-50%)scale(1)}}@keyframes armedCancelIn{0%{opacity:0;transform:scale(.76)}to{opacity:1;transform:scale(1)}}.hero .overhead-health{z-index:30;width:41px;top:1px;left:7px;transform:none}.enemy{--unit-foot-offset:92px;width:78px;height:92px;transform:translate(-50%, calc(0px - var(--unit-foot-offset)));transform-origin:50% var(--unit-foot-offset);pointer-events:none;overflow:visible}.enemy-art{--sprite-translate-x:-51.5%;transform-origin:50% 88%;width:51px;height:50px;top:20px}.enemy .enemy-hp{z-index:30;width:53px;position:absolute;top:11px;left:8px}.unit-status-strip{z-index:31;width:var(--enemy-status-icon-width,9px);height:var(--enemy-overhead-health-height,5px);pointer-events:none;align-items:center;gap:2px;display:flex;position:absolute;overflow:visible}.enemy .unit-status-strip{top:10px;left:63px}.hero .unit-status-strip{top:1px;left:50px}.status-effect{flex:0 0 var(--enemy-status-icon-width,9px);width:var(--enemy-status-icon-width,9px);height:var(--enemy-overhead-health-height,5px);background-position:50%;background-repeat:no-repeat;border:0;border-radius:2px;box-shadow:inset 0 0 0 1px #e5ffb8c2,0 1px 2px #000000b8,0 0 4px #61e7459e}.status-poison{background:radial-gradient(circle at 38% 34%,#e2ff87 0 .7px,#8fe247 1px 2px,#315624 2.25px 100%);border-radius:50%;animation:.82s ease-in-out infinite alternate poisonStatusPulse}.status-effect.status-guard{background:#6e4e31 url(/ui/storybook-icons/skill-defense.png?v=20260816-centered) 50%/11px 11px no-repeat}.status-effect.status-vengeance{background:#5f2725 url(/ui/storybook-icons/skill-vengeance.png) 50%/11px 11px no-repeat}.status-effect.status-divine-grace{background:#3c6638 url(/ui/storybook-icons/skill-divine-grace.png) 50%/11px 11px no-repeat}.status-vision-blur{background:radial-gradient(circle at 40% 35%,#d9b47a 0 18%,#74502b 22% 58%,#382414 62% 100%);border-radius:50%;animation:.72s ease-in-out infinite alternate visionBlurStatusPulse;position:relative;box-shadow:inset 0 0 0 1px #ffe0a6b8,0 1px 2px #000000b8,0 0 4px #8b5b2bb8}.status-vision-blur:after{content:"";background:#f4d294;border-radius:50%;height:1px;position:absolute;top:42%;left:20%;right:20%;box-shadow:0 0 2px #ffe6aad1}@keyframes visionBlurStatusPulse{0%{filter:saturate(.78);transform:scale(.92)}to{filter:saturate(1.18);transform:scale(1.08)}}.enemy .enemy-castbar{z-index:6;margin:0;position:absolute;top:17px;left:50%;transform:translate(-50%)}.inspected-enemy .enemy-art{filter:var(--battle-art-base-filter) brightness(1.06) saturate(1.06)}.attack-target .enemy-art{filter:var(--battle-art-base-filter) drop-shadow(0 0 5px #ed4e42)}.enemy-selection-frame{left:50%;bottom:var(--enemy-selection-bottom,-9px);z-index:1;width:var(--enemy-selection-width,50px);height:var(--enemy-selection-height,18px);opacity:0;pointer-events:none;background:radial-gradient(#e0322929,#75161214 55%,#0000 72%);border:2px solid #ef4439;border-radius:50%;position:absolute;transform:translate(-50%);box-shadow:0 0 0 1px #501411eb,inset 0 0 5px #ff634c52,0 0 7px #e7382b7a}.enemy-selection-frame:before{content:"";border:1px solid #ffb2719e;border-radius:50%;position:absolute;inset:2px 4px}.inspected-enemy .enemy-selection-frame{opacity:1;animation:1.25s ease-in-out infinite alternate inspectedEnemyPulse}.attack-target .enemy-selection-frame{opacity:1;border-color:#ed4e42e6;box-shadow:0 0 0 1px #501411eb,inset 0 0 5px #ff634c61,0 0 8px #ed4e4294}.command-attack-hover .enemy-selection-frame{opacity:1;background:radial-gradient(#ef5f5033,#75161214 55%,#0000 72%);border-color:#ef5f50;animation:.16s ease-out both commandTargetSettle;box-shadow:0 0 0 1px #5c1915e6,inset 0 0 5px #ff79657a,0 0 7px #ef4f3f9e}.skill-drag-hover-damage .enemy-selection-frame{opacity:1;background:radial-gradient(#ff3e3052,#87130f24 55%,#0000 72%);border-color:#ff4a3e;animation:.58s ease-in-out infinite alternate commandAttackLock;box-shadow:0 0 6px #ffd0c8,0 0 18px #ff372a,0 0 0 4px #ff4a3833,inset 0 0 9px #ff846ae0}.skill-drag-hover-damage .enemy-selection-frame:after{content:"";opacity:0;border:2px solid #ff5649;border-radius:50%;animation:.92s ease-out infinite armedEnemyTargetWave;position:absolute;inset:-2px}.skill-drag-hover-damage .enemy-art{filter:var(--battle-art-base-filter) drop-shadow(0 0 6px #ff4839) brightness(1.08)}.command-attack-hover .enemy-selection-frame:after{content:none}.command-attack-hover>em{color:#ff8b7f;text-shadow:0 1px 3px #000,0 0 7px #ff4131e6}@keyframes commandAttackLock{0%{filter:brightness()}to{filter:brightness(1.38)}}@keyframes commandTargetSettle{0%{opacity:0;transform:translate(-50%)scale(.76)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes inspectedEnemyPulse{0%{opacity:.72;filter:brightness(.9)}to{opacity:1;filter:brightness(1.18)}}.battlefield{isolation:isolate;background-color:#536332;background-image:linear-gradient(#080f080a,#121b0c00 42%,#0b12080d);background-position:top;background-repeat:no-repeat;background-size:100%}.battle-map-environment{z-index:0;aspect-ratio:914/1721;pointer-events:none;width:100%;min-height:100%;position:absolute;top:0;left:0;overflow:hidden}.battle-map-cloud-layer{z-index:0;position:absolute;inset:0;overflow:hidden}.battle-map-cloud-track{will-change:transform;width:200%;height:100%;animation:72s linear infinite battleMapCloudCross;display:flex;position:absolute;inset:0 auto 0 0}.battle-map-cloud-track img{object-fit:fill;flex:0 0 50%;width:50%;height:100%}.battle-map-cloud-layer-slow{opacity:.92}.battle-map-cloud-layer-slow .battle-map-cloud-track img{clip-path:inset(0 52% 87% 0)}.battle-map-cloud-layer-slow .battle-map-cloud-track{animation-duration:110s;animation-delay:-37s}.battle-map-sky,.battle-map-mountains,.battle-map-trees,.battle-map-battle-ground,.battle-map-interactive-scenery,.battle-map-layer-image{object-fit:fill;width:100%;height:100%;position:absolute;inset:0}.battle-map-sky{z-index:-1}.battle-map-mountains{z-index:1}.battle-map-battle-ground{z-index:4}.battle-map-trees{z-index:5}.battle-map-interactive-scenery{z-index:6}.battle-map-environment [hidden]{display:none}.battle-map-camp{pointer-events:none;position:absolute}.battle-map-camp>img{width:100%;height:100%;display:block}.battle-map-cloud-layer-fast{z-index:2;opacity:.42;filter:brightness(1.08)saturate(.72)}.battle-map-cloud-layer-fast .battle-map-cloud-track{animation-duration:30s;animation-delay:-9s}.battle-map-mountain-mist{z-index:3;filter:blur(8px);opacity:.34;will-change:transform, opacity;background:radial-gradient(#eef8ec33 0 20%,#def1e61a 44%,#0000 70%);border-radius:50%;width:31%;height:3.4%;animation:18s ease-in-out infinite alternate battleMapMistDrift;position:absolute}.battle-map-mist-a{top:23.5%;left:25%}.battle-map-mist-b{width:27%;animation-duration:23s;animation-delay:-9s;top:27.5%;right:13%}.battle-map-distant-pine{z-index:4;opacity:.5;clip-path:polygon(50% 0,64% 25%,58% 25%,73% 50%,65% 50%,84% 78%,56% 78%,56% 100%,44% 100%,44% 78%,16% 78%,35% 50%,27% 50%,42% 25%,36% 25%);transform-origin:50% 100%;will-change:transform;background:linear-gradient(90deg,#1f6e58,#4f9b59 52%,#246d55);width:4.4%;height:6.2%;animation:6.5s ease-in-out infinite alternate battleMapPineSway;position:absolute;top:29.4%}.battle-map-pine-a{animation-delay:-1.7s;left:7%}.battle-map-pine-b{width:3.8%;height:5.4%;animation-duration:7.4s;top:30.1%;left:20%}.battle-map-pine-c{animation-delay:-4.3s;left:35%}.battle-map-pine-d{width:3.9%;height:5.5%;animation-duration:7.1s;top:30%;right:31%}.battle-map-pine-e{animation-delay:-3.2s;right:17%}.battle-map-pine-f{width:4%;height:5.7%;animation-duration:7.8s;top:29.8%;right:5%}.battle-map-foreground{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:hidden}.battle-map-tree-crown{filter:drop-shadow(0 8px 5px #0f311847);width:36%;height:auto;position:absolute}.battle-map-crown-left-back{top:85%;left:-12%}.battle-map-crown-left-front{width:32%;top:93%;left:2%;transform:scaleX(-1)}.battle-map-crown-right-back{top:85%;right:-12%;transform:scaleX(-1)}.battle-map-crown-right-front{width:32%;top:93%;right:2%}@keyframes battleMapCloudCross{0%{transform:translate(0,0)}to{transform:translate(-50%)}}@keyframes battleMapMistDrift{0%{opacity:.2;transform:translate(-3%)scaleX(.96)}to{opacity:.36;transform:translate(9%,1px)scaleX(1.05)}}@keyframes battleMapPineSway{0%{transform:rotate(-.55deg)skew(-.25deg)}to{transform:rotate(.65deg)skew(.2deg)}}.battlefield:before{pointer-events:none;background:radial-gradient(at 50% 48%,#0000 0 46%,#080c0721 100%),linear-gradient(#0509051a,#0000 24% 78%,#0509051f)}.lane{display:none}.idle-unit,.idle-unit.idle-b,.idle-unit.idle-c{--idle-duration:1.9s;--idle-delay:0s;animation:none}.idle-unit.idle-b{--idle-duration:2.08s;--idle-delay:-.72s}.idle-unit.idle-c{--idle-duration:1.76s;--idle-delay:-1.06s}.unit-shadow{z-index:0;width:var(--unit-shadow-width,42px);height:var(--unit-shadow-height,11px);transform-origin:50%;filter:none;mix-blend-mode:multiply;opacity:.78;pointer-events:none;background:radial-gradient(at 50% 52%,#23180a6b 0 13%,#23180a42 31%,#0000 60%),radial-gradient(#2e200f38 0 43%,#2e200f17 62%,#0000 80%);border-radius:48% 52% 46% 54%;display:block;position:absolute;left:50%;transform:translate(-50%)}.unit-shadow:after{content:"";filter:blur(.35px);background:radial-gradient(#1810078f 0 24%,#18100747 52%,#0000 78%);border-radius:50%;width:22px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hero .unit-shadow,.enemy .unit-shadow{bottom:var(--unit-shadow-bottom,-5.5px);width:var(--unit-shadow-width,42px);height:var(--unit-shadow-height,11px)}.enemy .enemy-intent{top:-24px}.specialization-strengths{color:#53654f;margin-top:5px;font-size:10px;font-weight:800;display:block}.active-talent-panel{flex-direction:column;align-items:stretch;margin-top:10px}.warrior-talent-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.warrior-talent-options button{color:#26352c;text-align:left;background:#f9f3e7d1;border:1px solid #9c9a83;border-radius:11px;min-height:62px;padding:8px 9px;box-shadow:0 2px #61594438}.warrior-talent-options button.selected{background:#e8edcf;border-color:#4c684f;box-shadow:inset 0 0 0 1px #445c4147,0 2px #455b3e52}.warrior-talent-options b,.warrior-talent-options small{display:block}.warrior-talent-options b{font-size:11px}.warrior-talent-options small{color:#667063;margin-top:4px;font-size:9px;line-height:1.35}@keyframes commandFootPulse{0%{transform:translate(-50%)scaleY(.5)scale(.94)}to{transform:translate(-50%)scaleY(.5)scale(1.08)}}.enemy.dying{cursor:default;pointer-events:none}.enemy.dying .enemy-selection-frame,.battle-foot-ring-anchor.dying .enemy-selection-frame,.battle-foot-ring-anchor.dying .collision-body,.enemy.dying .target-mark,.enemy.dying .unit-status-strip{opacity:0}.hero-node.dying{pointer-events:none}.hero-node.receiving-hit:not(.dying) .overhead-health .current,.game-shell .party-bars .hp-track[data-health-transition=damage] .green{animation:.3s ease-out damageBarKick}.enemy.death-removed>:is(.monster-ability-actor,.enemy-art,.unit-shadow,.enemy-hp,.enemy-intent,.enemy-castbar,.unit-status-strip,em),.enemy.death-removed>:is(.battle-collider,.vision-range-debug),.hero-node.death-removed>:is(.battle-collider,.vision-range-debug,.collision-body),.battle-foot-ring-anchor.death-removed>:is(.collision-body,.enemy-selection-frame),.hero-node.death-removed :is(.hero-art,.unit-shadow,.overhead-health,.friendly-castbar,em){opacity:0!important;animation:none!important}.enemy.death-corpse :is(.enemy-hp,.enemy-intent,.enemy-castbar),.enemy.death-fading :is(.enemy-hp,.enemy-intent,.enemy-castbar),.enemy.death-corpse>em,.enemy.death-fading>em,.hero-node.death-corpse .overhead-health,.hero-node.death-fading .overhead-health{opacity:0;transition:opacity .18s}.battle-skill-tray{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#e2eed321;border:1px solid #eff7de38;border-radius:24px 24px 15px;min-height:0;padding:7px;display:flex;bottom:12px;left:auto;right:11px;transform:none;box-shadow:inset 0 1px #ffffff1f,0 5px 15px #080c072b}.battle-skill-tray .skill-slot{display:none}.battle-skill-tray .active-skill-wrap{min-width:0}.battle-skill-tray .battle-skill{background:linear-gradient(145deg,#f4fae46b,#2a4633ad);border:2px solid #ecf6d9b8;border-radius:50%;width:52px;height:52px;box-shadow:inset 2px 2px 5px #ffffff29,inset -3px -4px 7px #101d1457,0 4px 8px #080d0847}.battle-skill-tray .battle-skill .skill-icon{filter:drop-shadow(0 1px 1px #0a0e09bf);width:27px;height:27px}.story-dialogue{z-index:40;color:#f7f0dd;text-align:left;cursor:pointer;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:0;grid-template-columns:66px minmax(0,1fr) auto;align-items:center;min-height:76px;padding:7px 12px 7px 8px;animation:.28s ease-out both dialogueStripIn;display:grid;position:absolute;left:0;right:0}.enemy-story-dialogue{background:linear-gradient(90deg,#291812f0,#1a1c14c7 72%,#1a1c14ad);border-bottom:2px solid #d94c3db8;top:0}.party-story-dialogue{left:0;right:0;bottom:calc(var(--bottom-hud-height,199px) + env(safe-area-inset-bottom,0px) - 58px);z-index:80;background:linear-gradient(90deg,#142026f0,#161f18c7 72%,#161f18ad);border-top:2px solid #69ccf0a8;border-bottom:1px solid #69ccf03d;grid-template-columns:52px minmax(0,1fr) auto;height:58px;min-height:58px;padding:4px 10px 4px 6px;box-shadow:0 -8px 20px #080e0b47}.party-story-dialogue .dialogue-portrait{border-radius:7px;width:46px;height:48px}.party-story-dialogue .dialogue-copy{padding-inline:8px}.party-story-dialogue .dialogue-copy span{margin-top:2px;font-size:12px}.dialogue-portrait{background-color:#e8dfca;background-position:50%;background-repeat:no-repeat;background-size:cover;border:2px solid #f6e2adc2;border-radius:9px;width:56px;height:62px;display:block;box-shadow:0 3px 8px #00000057}.portrait-goblin{background-image:url(/portraits/goblin.png)}.dialogue-portrait.character-avatar{background-image:var(--dialogue-portrait)}.dialogue-portrait.character-avatar.is-pending,.party-portrait.is-pending{background-image:none}.dialogue-copy{min-width:0;padding:0 10px}.dialogue-copy b,.dialogue-copy span{display:block}.dialogue-copy b{color:#f0c65c;letter-spacing:1px;font-size:10px}.party-story-dialogue .dialogue-copy b{color:#85d7f4}.dialogue-copy span{margin-top:4px;font-size:13px;font-weight:850;line-height:1.35}.story-dialogue small{color:#f7f0dd9e;white-space:nowrap;align-self:end;padding-bottom:3px;font-size:7px}.story-enemy-arrival .story-skip{top:84px}@keyframes dialogueStripIn{0%{opacity:0;transform:translateY(var(--dialogue-enter-y,8px))}to{opacity:1;transform:translateY(0)}}.ultimate-cinematic{z-index:90;height:calc(var(--bottom-hud-height,199px) + env(safe-area-inset-bottom,0px));pointer-events:none;background:#161d18;border-top:3px solid #ffde72e0;animation:.28s cubic-bezier(.18,.78,.2,1) both ultimateComicIn;position:absolute;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 -10px 24px #0509067a}.ultimate-comic-art{filter:contrast(1.12)saturate(1.08);background-color:#2a392d;background-position:50% 26%;background-repeat:no-repeat;background-size:cover;display:block;position:absolute;inset:0;transform:scale(1.06)}.ultimate-art-warrior{background-image:linear-gradient(90deg,#0000 42%,#0e1410b8),url(/portraits/warrior.png)}.ultimate-art-priest{background-image:linear-gradient(90deg,#0000 42%,#0e1410b8),url(/portraits/priest.png)}.ultimate-art-robin-ranger{background-image:linear-gradient(90deg,#0000 42%,#0e1410b8),url(/portraits/robin-ranger.png)}.ultimate-art-robin-assassin{background-image:linear-gradient(90deg,#0000 42%,#0e1410b8),url(/portraits/robin-assassin.png)}.ultimate-comic-copy{right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:2;color:#fff7dc;text-align:right;text-shadow:0 2px 3px #101610,0 0 8px #0000009e;max-width:58%;position:absolute}.ultimate-comic-copy small,.ultimate-comic-copy strong{display:block}.ultimate-comic-copy small{color:#f2cf6d;letter-spacing:.12em;font-size:11px}.ultimate-comic-copy strong{margin-top:4px;font-family:STKaiti,KaiTi,serif;font-size:27px;line-height:1}@keyframes ultimateComicIn{0%{opacity:0;filter:brightness(.7);transform:translate(22px)}to{opacity:1;filter:brightness();transform:translate(0)}}.enemy-story-dialogue{--dialogue-enter-y:-8px}.game-shell{--bottom-hud-height:199px;background:#0d1711;height:100dvh;min-height:560px}.game-shell .hud-top{background:linear-gradient(#17261d,#101b15);flex:0 0 64px;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;height:64px;padding:8px 10px;display:grid;box-shadow:0 3px 12px #0000004d}.game-shell .hud-top .back-button{color:#d9e4d2;background:#ffffff0b;border-color:#e5efd629;border-radius:11px;width:36px;height:36px;font-size:18px}.game-shell .story-replay,.game-shell .hud-toggle{background:#ffffff0e;border-color:#e5efd624;width:30px;height:30px}.game-shell .timer{color:#e2e9ca;background:#bfd75917;border:1px solid #e5efd614;border-radius:8px;place-items:center;min-width:54px;height:30px;padding:0 8px;font-size:13px;display:grid}.game-shell .weather-status{color:#fff0a0;background:linear-gradient(145deg,#668e9b33,#cfb74921);border-color:#f6d2533d;grid-template-columns:1fr;place-items:center;width:30px;min-width:30px;padding:0;font-family:STKaiti,KaiTi,serif;font-size:14px;font-weight:800}.game-shell .battle-helper-toggle{cursor:pointer;transition:border-color .14s,background .14s,opacity .14s;position:relative}.game-shell .battle-helper-toggle.active{background:linear-gradient(145deg,#668e9b3d,#cfb74933);border-color:#ffe57bb8}.game-shell .battle-helper-toggle.inactive{background:#ffffff0b;border-color:#e5efd61f}.game-shell .battle-helper-toggle.inactive:after{content:"";background:#b7beb5;border-radius:2px;width:16px;height:2px;position:absolute;top:14px;left:7px;transform:rotate(-45deg);box-shadow:0 0 2px #000000b3}.game-shell .vision-icon{background:#f7c94c1f;border:2px solid #ffe887;border-radius:50%/62%;width:17px;height:11px;display:block;position:relative;box-shadow:0 0 5px #ffd24bb8}.game-shell .vision-icon:before{content:"";background:#ffe887;border-radius:50%;width:5px;height:5px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 4px #ffd24bcc}.game-shell .battle-helper-toggle.inactive .vision-icon{box-shadow:none;opacity:.45;background:#6068611f;border-color:#8e978d}.game-shell .battle-helper-toggle.inactive .vision-icon:before{box-shadow:none;background:#8e978d}.game-shell .critical-timer{color:#ffe4c5;background:linear-gradient(145deg,#72251db8,#321916e6);border-color:#ee523e94;grid-template-columns:auto 18px;gap:4px;min-width:64px;padding:0 6px;box-shadow:inset 0 1px #ffe6be1f,0 0 8px #e3433047}.game-shell .critical-timer small{white-space:nowrap;font-size:8px}.game-shell .critical-timer b{color:#fff1d5;font-variant-numeric:tabular-nums;text-align:right;font-size:14px}.game-shell .party-bars,.game-shell .dps-meter{padding:7px 8px calc(8px + env(safe-area-inset-bottom,0px));background:linear-gradient(#121f17,#0d1711);border-top:1px solid #cfe2be1f;flex:none;box-shadow:0 -5px 14px #0000003d}.game-shell .party-bars{gap:3px}.game-shell .party-bars button,.game-shell .empty-party-slot{border-radius:9px;grid-template-columns:26px minmax(0,1fr) 62px;gap:7px;min-height:38px;padding:5px 8px}.game-shell .party-bars button{background:linear-gradient(90deg,#28392ef0,#1b2921f0);border-color:#ffffff09;box-shadow:inset 0 1px #ffffff06}.game-shell .party-bars button.active{background:linear-gradient(90deg,#394c31fa,#1d2e24fa);border-color:#bedc5bc7;box-shadow:inset 3px 0 #b9d85a,0 0 0 1px #b9d85a14}.game-shell .party-bars button.party-member-dead,.game-shell .party-bars button.party-member-dead.active{filter:grayscale()brightness(.58);background:linear-gradient(90deg,#303330f0,#191c1af5);border-color:#70746c57;box-shadow:inset 3px 0 #898d8661,inset 0 1px #ffffff06}.game-shell .party-bars button.party-member-dead :is(.role-dot,.party-vitals,.energy-track){opacity:.72}.game-shell .party-bars b{color:#f2f5ed;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.05;overflow:hidden}.game-shell .party-bars strong{color:#edf2e8;font-size:9px}.game-shell .party-bars .role-dot,.game-shell .empty-role-dot{justify-self:center;width:20px;height:20px}.game-shell .hp-track{background:#402725;border:1px solid #050a078c;height:6px;margin-top:4px}.game-shell .energy-track{background:#17283b;height:3px;margin-top:2px}.game-shell .empty-party-slot{color:#647069;opacity:.72;background:#1a221dad;border-color:#ffffff06}.game-shell .empty-party-slot b{color:#78827c}.game-shell .dps-meter{min-height:0}.game-shell .dps-meter header,.game-shell .dps-meter button,.game-shell .empty-meter-row{grid-template-columns:26px minmax(0,1fr) 56px 62px;gap:7px}.game-shell .dps-meter header{padding:0 8px 4px}.game-shell .dps-meter button,.game-shell .empty-meter-row{border-radius:8px;min-height:32px;margin-top:3px;padding:5px 8px}.game-shell .battle-skill-tray{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;gap:7px;padding:0;bottom:13px;right:12px}.game-shell .battle-skill-tray .battle-skill{background:linear-gradient(145deg,#f5fae575,#233d2bd1);border-color:#f2f8e3d1;width:56px;height:56px;box-shadow:inset 2px 2px 5px #ffffff2b,inset -4px -5px 8px #08110b6b,0 5px 11px #0000005c}.game-shell .battle-skill-tray .battle-skill.unavailable:not(.cooling){filter:grayscale()brightness(.54)}.game-shell .battle-skill-tray .battle-skill.out-of-range:not(.cooling){border-color:#ff3f32;box-shadow:inset 0 0 0 2px #ff2a1fdb,0 0 9px #ff2f23a8,0 5px 11px #0000005c}@media (max-width:390px){.game-shell .story-replay{display:none}.game-shell .hud-top{grid-template-columns:36px minmax(0,1fr) auto;gap:6px;padding-inline:8px}.game-shell .timer{min-width:49px;padding-inline:6px;font-size:12px}.game-shell .weather-status{width:30px;min-width:30px;padding:0}.game-shell .party-bars button,.game-shell .empty-party-slot{grid-template-columns:24px minmax(0,1fr) 58px;gap:5px}}.game-shell .role-dot{filter:drop-shadow(0 1px 1px #080c08e6)drop-shadow(0 0 2px #ffe69a33);border:0;overflow:visible;background-color:#0000!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:contain!important}.game-shell .role-dot:before,.game-shell .role-dot:after{display:none}.game-shell .role-dot.tank{background-image:url(/ui/storybook-icons/class-tank.png?v=20260813-2)!important}.game-shell .role-dot.healer{background-image:url(/ui/storybook-icons/class-priest.png?v=20260813-2)!important}.game-shell .role-dot.dps{background-image:url(/ui/storybook-icons/class-rogue.png?v=20260813-2)!important}.game-shell .role-dot[data-specialization]{background-image:var(--specialization-icon)!important}.game-shell .party-bars button.active .role-dot{filter:drop-shadow(0 1px 1px #080c08e6)drop-shadow(0 0 4px #ffe999ad);animation:1.8s ease-in-out infinite alternate storybookIconBreathe}.game-shell .battle-skill .skill-icon{filter:drop-shadow(0 2px 2px #050906c7);border:0;width:45px;height:45px;margin:0;display:block;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);clip-path:none!important;background-color:#0000!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:contain!important}.game-shell .battle-skill-tray .battle-skill{background:radial-gradient(circle at 38% 28%,#fff9d840,#0000 32%),linear-gradient(145deg,#5c7654db,#193022f0);border:2px solid #ffefb9db;box-shadow:inset 0 0 0 2px #4d2e1875,inset 2px 2px 5px #ffffe029,0 4px #362417b3,0 7px 13px #0000005c}.game-shell .battle-skill.armed{border-color:#fff5c8;box-shadow:inset 0 0 0 2px #4d2e1875,0 0 0 3px #ffeea345,0 0 13px #7ae6ebb8,0 4px #362417b3}.game-shell .battle-skill.cooling .skill-icon{opacity:.66;filter:grayscale(.72)drop-shadow(0 2px 2px #050906c7)}.game-shell .cooldown-ring{color:#fff6da;filter:drop-shadow(0 0 3px #fff)}.game-shell :is(.party-bars,.dps-meter){position:relative}.game-shell .armed-skill-info{z-index:32;color:#fff7d8;pointer-events:none;background:linear-gradient(90deg,#2f3926f5,#18241bf0);border:1px solid #efda9770;border-radius:10px 10px 4px 4px;align-items:center;gap:7px;width:min(224px,100% - 92px);height:32px;min-height:32px;padding:2px 10px 2px 5px;animation:.16s ease-out both armedSkillInfoIn;display:block;position:absolute;top:-33px;left:50%;right:auto;transform:translate(-50%);box-shadow:inset 0 1px #ffffdc14,0 -2px 7px #080c0847}.game-shell .armed-skill-info .skill-icon{filter:drop-shadow(0 1px 2px #000000b8);background-position:50%;background-repeat:no-repeat;background-size:contain;width:27px;height:27px;margin:0;display:block;position:absolute;top:50%;left:5px;transform:translateY(-50%)}.game-shell .armed-skill-info div{text-align:center;white-space:nowrap;justify-content:center;align-items:baseline;gap:7px;width:100%;min-width:0;height:auto;display:flex;position:absolute;top:50%;left:0;transform:translateY(-50%)}.game-shell .armed-skill-info b,.game-shell .armed-skill-info small{text-overflow:ellipsis;white-space:nowrap;display:inline-block;overflow:hidden}.game-shell .armed-skill-info b{color:#ffe58a;letter-spacing:.04em;text-shadow:0 1px 2px #1a1007c2;flex:none;font-family:STKaiti,KaiTi,serif;font-size:14px;line-height:16px}.game-shell .armed-skill-info b:after{content:"";background:#ffecae47;width:1px;height:10px;margin-left:7px;display:inline-block;transform:translateY(1px)}.game-shell .armed-skill-info small{color:#f1efd5c2;letter-spacing:.01em;min-width:0;font-size:12px;line-height:16px}@keyframes armedSkillInfoIn{0%{opacity:0;transform:translate(-50%,5px)scale(.985)}to{opacity:1;transform:translate(-50%)scale(1)}}.game-shell .hp-track,.game-shell .enemy-hp,.game-shell .overhead-health{isolation:isolate;background:linear-gradient(#ffffff12,#0000 36%),#3f2823;border-color:#4e321ff0;overflow:hidden;box-shadow:inset 0 1px 2px #0f0a07d1,0 1px #f2dc9d2e}.game-shell .hp-track .green:after,.game-shell .enemy-hp .current:after,.game-shell .overhead-health .current:after{content:"";border-radius:inherit;mix-blend-mode:screen;opacity:.18;pointer-events:none;background:radial-gradient(circle at 17% 28%,#ffffdbb8 0 .55px,#0000 .9px),radial-gradient(circle at 48% 66%,#e8ffb573 0 .5px,#0000 .9px),radial-gradient(circle at 78% 34%,#ffffe28f 0 .6px,#0000 1px),linear-gradient(#ffffd921,#0000 45%);animation:4.8s ease-in-out infinite alternate healthSurfaceShimmer;position:absolute;inset:0}.game-shell .hp-track i,.game-shell .enemy-hp i,.game-shell .overhead-health i{transition:width .38s cubic-bezier(.2,.72,.25,1),left .38s cubic-bezier(.2,.72,.25,1)}.game-shell .hp-track .green,.game-shell .enemy-hp .current,.game-shell .overhead-health .current{background:repeating-linear-gradient(112deg,#ffffd214 0 5px,#0000 6px 11px),linear-gradient(#a7d96d 0 28%,#6bad48 45% 72%,#458136 100%);box-shadow:inset 0 1px #eeffc49e,inset 0 -1px #2a5b27b8,0 0 5px #6cbb4e66}.game-shell .hp-track .recoverable-segment,.game-shell .enemy-hp .recoverable,.game-shell .overhead-health .recoverable{background:repeating-linear-gradient(120deg,#ffe0b729 0 4px,#0000 5px 9px),linear-gradient(#ee856b,#c7544b 58%,#913a3d);animation:1.05s ease-in-out infinite alternate recoverableStoryPulse;box-shadow:inset 0 1px #ffddbc8c,0 0 5px #dc4e408c}.game-shell .energy-track{background:#1b2940;border-radius:999px;box-shadow:inset 0 1px 1px #050b14bf,0 1px #e3eeca1a}.game-shell .energy-track i{background:linear-gradient(#8ddafa,#438fc9 56%,#286294);animation:2.2s ease-in-out infinite alternate manaStoryPulse;box-shadow:inset 0 1px #e0faffad,0 0 5px #4aaae4ad}@keyframes storybookIconBreathe{0%{transform:scale(.96)rotate(-1deg)}to{transform:scale(1.04)rotate(1deg)}}@keyframes healthSurfaceShimmer{0%{opacity:.12;filter:brightness(.98)}52%{opacity:.25;filter:brightness(1.06)}to{opacity:.17;filter:brightness(1.01)}}@keyframes recoverableStoryPulse{0%{filter:brightness(.88)saturate(.92)}to{filter:brightness(1.18)saturate(1.12)}}@keyframes manaStoryPulse{0%{filter:brightness(.92)}to{filter:brightness(1.13)}}.game-shell .hp-track .green,.game-shell .enemy-hp .current,.game-shell .overhead-health .current{background:linear-gradient(#ffffd657 0 17%,#0000 19%),linear-gradient(#bde45c 0 33%,#8bc43a 35% 70%,#6aa32e 72% 100%);animation:4.4s ease-in-out infinite alternate grassHealthBreathe;box-shadow:inset 0 1px #f9ffd2e0,inset 0 -1px #33641d7a,0 0 5px #89c93b52}@keyframes poisonStatusPulse{0%{filter:brightness(.88)saturate(.94)}to{filter:brightness(1.16)saturate(1.18)}}.game-shell .party-bars .hp-track{background:#442a27;border:2px solid #26341d;border-radius:999px;height:10px;margin-top:4px;box-shadow:inset 0 1px 2px #0c0806e0,0 1px #f5e3a538,0 0 0 1px #78a13c1f}.game-shell .party-bars .hp-track i{border-radius:999px;top:0;bottom:0}.game-shell .party-bars .hp-track .green{z-index:2;background:linear-gradient(#ffffd657 0 17%,#0000 19%),linear-gradient(#bde45c 0 33%,#8bc43a 35% 70%,#6aa32e 72% 100%);box-shadow:inset 0 1px #f9ffd2e0,inset 0 -2px #33641d7a,0 0 5px #89c93b52}.game-shell .party-bars .hp-track .recoverable-segment{z-index:3;will-change:width, left}.game-shell .party-bars .hp-track[data-health-transition=damage] :is(.green,.recoverable-segment),.game-shell .party-bars .hp-track[data-health-transition=healing] :is(.green,.recoverable-segment),.game-shell .party-bars .hp-track[data-health-transition=red-growth] .recoverable-segment{transition:width .68s cubic-bezier(.16,.72,.22,1),left .68s cubic-bezier(.16,.72,.22,1)}.game-shell .party-bars .hp-track[data-health-transition=red-decay] .green,.game-shell .party-bars .hp-track[data-health-transition=red-decay] .recoverable-segment{transition:none}.game-shell .party-bars .energy-track{margin-left:2px}@keyframes grassHealthBreathe{0%{filter:brightness(.98)saturate(.98)}to{filter:brightness(1.05)saturate(1.03)}}.game-shell{overscroll-behavior-y:contain;scrollbar-width:none;background:#0d1711;width:min(100%,390px);height:min(100dvh,844px);min-height:min(100dvh,844px);overflow:hidden auto}.game-shell::-webkit-scrollbar{display:none}.game-shell .battlefield{flex:auto;height:auto;min-height:380px}.game-shell .party-bars button,.game-shell .party-bars .empty-party-slot{grid-template-columns:34px minmax(0,1fr);gap:6px;min-width:0;min-height:58px;padding:6px}.game-shell .party-bars{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:5px}.game-shell .party-command-panel{background:linear-gradient(#ffffff05,#0000 42%),linear-gradient(90deg,#1f2f25e6,#18261eeb);border:1px solid #ffffff09;border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:0;min-height:58px;padding:7px 6px 6px;display:grid;box-shadow:inset 0 1px #ffffff05}.game-shell .party-command{width:100%;height:45px;min-height:0;box-shadow:none;color:#d3dcc0b3;background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.game-shell .party-command+.party-command:before{content:"";background:linear-gradient(#0000,#d3e2c11f 22% 78%,#0000);width:1px;position:absolute;top:8px;bottom:7px;left:0}.game-shell .party-command small{color:#d8e1c88c;letter-spacing:.02em;text-align:center;font-size:7px;font-weight:900;line-height:1;position:absolute;bottom:1px;left:0;right:0}.game-shell .party-command.active{color:#e6f0ae;filter:drop-shadow(0 0 3px #add65057);background:radial-gradient(at 50% 42%,#abd14e24,#0000 66%)}.game-shell .party-command.active small{color:#dbee91e6}.game-shell .party-command.locked{filter:grayscale(.82)brightness(.76);opacity:.38}.game-shell .follow-emblem{width:25px;height:22px;position:relative;transform:translateY(-5px)scale(.84)}.game-shell .follow-emblem:before{content:"";background:#425745;border:1px solid #d8dfad;border-radius:50%;width:7px;height:7px;position:absolute;top:0;left:9px;box-shadow:0 10px 0 1px #d8dfad}.game-shell .follow-emblem i{border:1px solid #aeb99c;border-radius:50%;width:6px;height:6px;position:absolute;top:13px}.game-shell .follow-emblem i:first-child{left:0}.game-shell .follow-emblem i:nth-child(2){left:10px}.game-shell .follow-emblem i:nth-child(3){right:0}.game-shell .crest-emblem{clip-path:polygon(50% 0,89% 15%,82% 69%,50% 100%,18% 69%,11% 15%);background:linear-gradient(145deg,#a99b6c,#4e533f);width:23px;height:26px;display:block;position:relative;transform:translateY(-5px)scale(.9);box-shadow:inset 0 0 0 3px #fff4bc66}.game-shell .crest-emblem:after{content:"";width:7px;height:7px;box-shadow:none;background:#829a8d;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.game-shell .treasure-emblem{background:linear-gradient(#727866 0 34%,#485244 36% 100%);border:2px solid #a8ae91;border-radius:4px 4px 7px 7px;width:24px;height:18px;display:block;position:relative;transform:translateY(-5px)scale(.9);box-shadow:inset 0 1px #f0f0cb29}.game-shell .treasure-emblem:before{content:"";border-top:2px solid #a8ae91;position:absolute;top:5px;left:-2px;right:-2px}.game-shell .treasure-emblem:after{content:"";background:#c8b86f;border-radius:1px;width:5px;height:7px;position:absolute;top:6px;left:8px}.game-shell .command-lock{display:none}.game-shell .party-bars .party-vitals{min-width:0}.game-shell .party-bars .party-name-line{justify-content:space-between;align-items:baseline;gap:4px;min-width:0;display:flex}.game-shell .party-bars .party-name-line b{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.game-shell .party-name-with-status{align-items:center;gap:3px;min-width:0;padding-left:2px;display:flex}.game-shell .party-status-strip{flex:none;align-items:center;gap:2px;min-width:0;display:flex}.game-shell .party-status-effect{background-position:50%;background-repeat:no-repeat;background-size:16px 16px;border:1px solid #ffefbecc;border-radius:3px;width:12px;height:12px;display:block;box-shadow:0 1px 2px #000000b8}.game-shell .party-status-effect.status-guard{background-color:#6e4e31;background-image:url(/ui/storybook-icons/skill-defense.png?v=20260816-centered);animation:.82s ease-in-out infinite alternate partyGuardStatusPulse;box-shadow:0 1px 2px #000000b8,0 0 4px #dba35c94}.game-shell .party-status-effect.status-vengeance{background-color:#5f2725;background-image:url(/ui/storybook-icons/skill-vengeance.png);box-shadow:0 1px 2px #000000b8,0 0 4px #dd584694}.game-shell .party-status-effect.status-divine-grace{background-color:#3c6638;background-image:url(/ui/storybook-icons/skill-divine-grace.png);box-shadow:0 1px 2px #000000b8,0 0 4px #6ddd6994}.game-shell .party-status-effect[data-status-polarity=debuff]{border-color:#ffbd87e0}@keyframes partyGuardStatusPulse{0%{filter:brightness(.9)}to{filter:brightness(1.16)}}.game-shell .party-bars .party-name-line strong{flex:none;font-size:8px}.game-shell .party-bars .role-dot,.game-shell .dps-meter .role-dot,.game-shell .party-bars .empty-role-dot,.game-shell .dps-meter .empty-role-dot{place-self:center;width:34px;height:34px}.game-shell .party-bars .role-dot,.game-shell .dps-meter .role-dot{background-position:var(--icon-x,50%) var(--icon-y,50%)!important;background-size:var(--icon-size,100%) auto!important}.game-shell .role-dot.tank,.game-shell .role-dot.healer{--icon-size:100%;--icon-x:calc(50% - 1px);--icon-y:50%}.game-shell .role-dot.dps{--icon-size:88%;--icon-x:47%;--icon-y:50%}.game-shell .role-dot[data-specialization=shield-bearer],.game-shell .role-dot[data-specialization=holy-healer],.game-shell .role-dot[data-specialization=green-ranger]{--icon-size:100%;--icon-x:50%;--icon-y:50%}.game-shell .role-dot[data-specialization=poison-blade]{--icon-size:118%;--icon-x:50%;--icon-y:50%}.game-shell .party-bars b,.game-shell .dps-meter button b,.game-shell .empty-meter-row b{font-size:11px}.game-shell .dps-meter{min-height:276px;padding-top:9px}.game-shell .dps-meter header,.game-shell .dps-meter button,.game-shell .dps-meter .empty-meter-row{grid-template-columns:42px minmax(0,1fr) 62px 62px;gap:9px}.game-shell .dps-meter header{min-height:24px;padding:0 8px 4px}.game-shell .dps-meter button,.game-shell .dps-meter .empty-meter-row{border-radius:10px;min-height:44px;margin-top:4px;padding:5px 8px}.game-shell .dps-meter button{isolation:isolate;color:#eef3df;background:#18261ef5}.game-shell .dps-meter .meter-fill{z-index:-1;width:var(--meter-width,0%);background:linear-gradient(90deg, var(--meter-color), color-mix(in srgb, var(--meter-color) 72%, transparent));border-radius:9px;transition:width .35s;position:absolute;inset:0 auto 0 0;box-shadow:inset 0 1px #ffffff29}.game-shell .dps-meter .meter-row.tank{--meter-color:#c79c6ed1}.game-shell .dps-meter .meter-row.healer{--meter-color:#69ccf0c7}.game-shell .dps-meter .meter-row.dps{--meter-color:#fff468d1;color:#171911}.game-shell .dps-meter button>:not(.meter-fill):not(.threat-fill){z-index:1;position:relative}.game-shell .dps-meter button span,.game-shell .dps-meter button strong{font-size:10px}@media (max-width:390px){.game-shell .party-bars button,.game-shell .party-bars .empty-party-slot{grid-template-columns:34px minmax(0,1fr);gap:6px}.game-shell .dps-meter header,.game-shell .dps-meter button,.game-shell .dps-meter .empty-meter-row{grid-template-columns:42px minmax(0,1fr) 58px 58px;gap:8px}}.game-shell .party-command-panel{display:none}.game-shell .party-bars,.game-shell .dps-meter{--bottom-hud-height:97px;box-sizing:border-box;height:calc(var(--bottom-hud-height) + env(safe-area-inset-bottom,0px));min-height:calc(var(--bottom-hud-height) + env(safe-area-inset-bottom,0px))}.game-shell .dps-meter{padding:5px 8px calc(5px + env(safe-area-inset-bottom,0px));grid-template-rows:20px repeat(5,minmax(0,1fr));grid-template-columns:minmax(0,1fr);align-content:start;gap:3px;display:grid}.game-shell .dps-meter header,.game-shell .dps-meter .meter-row,.game-shell .dps-meter .idle-meter-row{grid-column:1;grid-template-columns:36px minmax(0,1fr) 66px 66px;gap:8px;width:100%;margin:0}.game-shell .dps-meter header{border-bottom:1px solid #d6e6c21a;grid-row:1;height:20px;min-height:0;padding:0 7px 2px}.game-shell .dps-meter header b{color:#dfe89e;letter-spacing:.02em;grid-column:1/3;font-family:STKaiti,KaiTi,Georgia,serif;font-size:12px}.game-shell .dps-meter header span{color:#cbd5b9;letter-spacing:.03em;text-align:right;justify-self:end;width:100%;font-family:STKaiti,KaiTi,Georgia,serif;font-size:9px;font-weight:700}.game-shell .dps-meter .meter-row,.game-shell .dps-meter .idle-meter-row{will-change:transform;background:linear-gradient(#263226,#18231b);border:2px solid #26341d;border-radius:11px;grid-row:2;align-items:center;height:100%;min-height:0;padding:0 6px;transition:transform .46s cubic-bezier(.2,.78,.22,1),border-color .25s,box-shadow .25s;display:grid;position:relative;overflow:hidden;transform:translateY(0);box-shadow:inset 0 2px 3px #070c08b8,0 1px #f5e3a52e,0 3px 8px #00000038}.game-shell .dps-meter :is(.meter-row,.idle-meter-row)[data-meter-rank="1"]{transform:translateY(calc(100% + 1px))}.game-shell .dps-meter :is(.meter-row,.idle-meter-row)[data-meter-rank="2"]{transform:translateY(calc(200% + 2px))}.game-shell .dps-meter :is(.meter-row,.idle-meter-row)[data-meter-rank="3"]{transform:translateY(calc(300% + 3px))}.game-shell .dps-meter :is(.meter-row,.idle-meter-row)[data-meter-rank="4"]{transform:translateY(calc(400% + 4px))}.game-shell .dps-meter .meter-row.active{border-color:#d9d66f;box-shadow:inset 0 1px #ffffff29,0 0 0 1px #ffe44c29,0 3px 9px #0000003d}.game-shell .dps-meter .meter-fill{width:auto;max-width:none;transform:scaleX(var(--meter-ratio,0));transform-origin:0;background:linear-gradient(180deg, #ffffda5c 0 17%, transparent 19%), linear-gradient(180deg, var(--class-meter-light) 0 33%, var(--class-meter-mid) 35% 70%, var(--class-meter-dark) 72% 100%);box-shadow:inset 0 1px #ffffdccc, inset 0 -2px #44320c6b, 0 0 5px var(--class-meter-glow);border-radius:7px;transition:transform .35s;inset:3px 3px 3px 56px}.game-shell .dps-meter .threat-fill{z-index:3;border:1px solid #0a110ce6;border-radius:5px;width:7px;height:15px;transition:background-color .25s,box-shadow .25s,opacity .25s;position:absolute;top:50%;left:48px;transform:translateY(-50%)}.game-shell .dps-meter .meter-row[data-threat-tone=highest-threat] .threat-fill{opacity:1;background:#e33d3d;box-shadow:inset 0 1px #ffe0cdad,0 0 5px #e22d2d94}.game-shell .dps-meter .meter-row[data-threat-tone=close-behind-leader] .threat-fill{opacity:.88;background:#ee8d32;box-shadow:inset 0 1px #ffebc2b8,0 0 5px #ee8d327a}.game-shell .dps-meter .meter-row[data-threat-tone=moderate-behind-leader] .threat-fill{opacity:.68;background:#e7c844;box-shadow:inset 0 1px #fff9c2b8,0 0 4px #e7c8446b}.game-shell .dps-meter .meter-row[data-threat-tone=far-behind-leader] .threat-fill{opacity:.44;background:#52b965;box-shadow:inset 0 1px #daffdca3,0 0 4px #52b96557}.game-shell .dps-meter .meter-row[data-threat-tone=inactive-no-threat] .threat-fill{box-shadow:none;opacity:0;background:#34453a}.game-shell .dps-meter .meter-row.class-rogue{--class-meter-light:#fff78e;--class-meter-mid:#fff468;--class-meter-dark:#c7ae28;--class-meter-glow:#fff4685c}.game-shell .dps-meter .meter-row.class-warrior{--class-meter-light:#e3bd8c;--class-meter-mid:#c79c6e;--class-meter-dark:#8f6845;--class-meter-glow:#c79c6e57}.game-shell .dps-meter .meter-row.class-priest{--class-meter-light:#fffef0;--class-meter-mid:#e8e7d6;--class-meter-dark:#aaa99b;--class-meter-glow:#eeeede4d}.game-shell .dps-meter .meter-row b{color:#fffbea;letter-spacing:.02em;text-overflow:ellipsis;text-shadow:-1px 0 #263019,0 1px #263019,1px 0 #263019,0 -1px #263019,0 2px 2px #00000080;white-space:nowrap;place-self:center start;height:14px;padding-left:11px;font-family:STKaiti,KaiTi,Georgia,serif;font-size:14px;font-weight:950;line-height:14px;display:block;overflow:hidden}.game-shell .dps-meter .meter-row,.game-shell .dps-meter .meter-row.dps{color:#fffbea}.game-shell .dps-meter .meter-row span,.game-shell .dps-meter .meter-row strong{color:#fffbea;text-shadow:-1px 0 #263019,0 1px #263019,1px 0 #263019,0 -1px #263019,0 2px 2px #00000080;font-weight:900}.game-shell .dps-meter .meter-row span,.game-shell .dps-meter .meter-row strong,.game-shell .dps-meter .idle-meter-row span,.game-shell .dps-meter .idle-meter-row strong{font-variant-numeric:tabular-nums;text-align:right;place-self:center end;width:100%;font-size:11px}.game-shell .dps-meter .idle-meter-row{color:#68746a;opacity:.72}.game-shell .dps-meter .idle-meter-row b{color:#829086;place-self:center start;height:12px;font-family:STKaiti,KaiTi,Georgia,serif;font-size:11px;line-height:12px;display:block}.game-shell .dps-meter .idle-meter-row .empty-role-dot{width:24px;height:24px}.game-shell .dps-meter .meter-row .role-dot{place-self:center;width:24px;height:24px;margin:0;padding:0;display:block;background-position:50%!important;background-size:contain!important}.game-shell .dps-meter .idle-meter-row .empty-role-dot{place-self:center;width:24px;height:24px;margin:0;padding:0;display:block}.game-shell .dps-meter .idle-meter-row b{padding-left:6px}.game-shell :is(.party-bars,.dps-meter) .armed-skill-info div{align-items:center;transform:translate(3px,-50%)}.game-shell :is(.party-bars,.dps-meter) .armed-skill-info b,.game-shell :is(.party-bars,.dps-meter) .armed-skill-info small{vertical-align:middle;align-items:center;height:18px;margin:0;padding:0;line-height:18px;display:inline-flex}.game-shell :is(.party-bars,.dps-meter) .armed-skill-info b{font-size:15px}.game-shell :is(.party-bars,.dps-meter) .armed-skill-info small{font-size:11px}.game-shell{--friendly-overhead-health-width:27px;--enemy-overhead-health-height:5px;--enemy-status-icon-width:5px}.game-shell .hero .overhead-health{left:50%;top:calc(var(--unit-foot-offset) - var(--friendly-overhead-health-offset));width:var(--friendly-overhead-health-width);transform:translate(-50%)}.game-shell .enemy .enemy-hp{left:50%;top:calc(var(--unit-foot-offset) - var(--enemy-overhead-health-offset,70px));width:var(--enemy-overhead-health-width,38px);transform:translate(-50%)}.game-shell .enemy .enemy-castbar{left:50%;top:calc(var(--unit-foot-offset) - var(--enemy-castbar-offset,50px));width:var(--enemy-castbar-width,34px);height:6px;transform:translate(-50%)}.game-shell .enemy .enemy-castbar b{font-size:5px;line-height:6px}.game-shell .enemy .unit-status-strip{left:calc(50% + var(--enemy-overhead-health-width,38px) / 2 + 2px);top:calc(var(--unit-foot-offset) - var(--enemy-overhead-health-offset,70px));max-width:20px}.game-shell .enemy .enemy-intent{top:calc(var(--unit-foot-offset) - var(--body-hurtbox-height,60px) - 34px)}.game-shell .hero .overhead-health .current{background:linear-gradient(#ffffd661 0 18%,#0000 20%),linear-gradient(#bde45c 0 33%,#8bc43a 35% 70%,#6aa32e 72% 100%)!important;box-shadow:inset 0 1px #f9ffd2e6,inset 0 -1px #33641d8a,0 0 4px #89c93b61!important}.battle-stun-marker{left:50%;top:calc(var(--unit-foot-offset) - var(--enemy-overhead-health-offset,var(--monster-test-health-offset,var(--friendly-overhead-health-offset,50px))) - 13px);z-index:35;pointer-events:none;width:20px;height:9px;position:absolute;transform:translate(-50%)}.battle-stun-marker i{color:#ffe56a;text-shadow:0 1px 1px #704411;font:700 10px/10px sans-serif;animation:1s linear infinite battleStunOrbit;position:absolute;top:0;left:7px}.battle-stun-marker i:nth-child(2){animation-delay:-.333s}.battle-stun-marker i:nth-child(3){animation-delay:-.666s}@keyframes battleStunOrbit{0%,to{transform:translate(7px)scale(.9)}25%{transform:translateY(3px)scale(1)}50%{transform:translate(-7px)scale(.9)}75%{transform:translateY(-3px)scale(.7)}}.game-shell .friendly-castbar{z-index:30;left:50%;top:calc(var(--unit-foot-offset) + 17px);pointer-events:none;background:#352b16eb;border:1px solid #ffe45c;border-radius:4px;width:48px;height:8px;position:absolute;overflow:hidden;transform:translate(-50%);box-shadow:inset 0 1px #fff5a56b,0 1px 2px #23180c94,0 0 7px #ffe45cb8}.game-shell .friendly-castbar i{transform-origin:0;animation:friendlyCastProgress var(--friendly-cast-duration,2s) linear forwards;background:linear-gradient(#ffffe0b3 0 20%,#0000 23%),linear-gradient(#fff08a 0%,#efd04b 58%,#c69a23 100%);display:block;position:absolute;inset:0;transform:scaleX(0);box-shadow:inset 0 -1px #64430f73}.game-shell .cast-tone-confirmed i{background:linear-gradient(#ffffebf0 0 22%,#0000 25%),linear-gradient(#fff5a5 0%,#ffe45c 52%,#d79b0c 100%);box-shadow:inset 0 -1px #7a4c006b,0 0 8px #ffe45ceb}.game-shell .cast-tone-pending i{background:linear-gradient(#c7c5bb 0%,#85857e 58%,#565954 100%);box-shadow:inset 0 -1px #2d302c85,0 0 3px #b5b5a952}.game-shell .scene-entry-pending{z-index:6;color:#d7dae1;text-align:center;pointer-events:none;background:#161920c7;border:1px solid #bbc2cf52;border-radius:8px;gap:3px;min-width:210px;padding:9px 13px;display:grid;position:absolute;top:26%;left:50%;transform:translate(-50%)}.game-shell .scene-entry-pending b{color:#f2f4f8;font-size:12px}.game-shell .scene-entry-pending span{opacity:.78;font-size:10px}.game-shell :is(.friendly-castbar,.enemy-castbar) b{display:none}.game-shell .friendly-castbar b{z-index:2;color:#fffce3;text-align:center;text-overflow:clip;white-space:nowrap;text-shadow:0 1px 1px #422a0cf2;width:100%;font-size:5px;font-weight:900;line-height:6px;display:block;position:relative;overflow:hidden}@keyframes friendlyCastProgress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.game-shell .story-active .friendly-castbar{display:none}.game-shell .story-active .enemy-intent{animation-play-state:paused}@media (max-width:370px){.game-shell .dps-meter header,.game-shell .dps-meter .meter-row,.game-shell .dps-meter .idle-meter-row{grid-template-columns:34px minmax(0,1fr) 55px 59px;gap:6px}.game-shell .dps-meter .meter-fill{left:52px}.game-shell .dps-meter .threat-fill{left:46px}}.game-shell{--bottom-hud-height:97px}.game-shell .hud-top{flex-basis:0;grid-template-columns:30px minmax(0,1fr) auto;gap:6px;height:0;padding:0;display:none}.game-shell .hud-top .back-button,.game-shell .story-replay,.game-shell .hud-toggle,.game-shell .weather-status{width:28px;min-width:28px;height:28px}.game-shell .timer{height:28px}.game-shell .timer-tools{gap:3px}.game-shell .party-bars,.game-shell .dps-meter{--bottom-hud-height:97px;padding:4px 6px calc(4px + env(safe-area-inset-bottom,0px))}.game-shell .party-bars{grid-template-rows:repeat(2,43px);grid-template-columns:repeat(6,minmax(0,1fr));align-content:start;gap:3px}.game-shell .party-bars [data-party-slot=tank]{grid-area:1/1/auto/4}.game-shell .party-bars [data-party-slot=healer]{grid-area:1/4/auto/7}.game-shell .party-bars [data-party-slot=dps-a]{grid-area:2/1/auto/3}.game-shell .party-bars [data-party-slot=dps-b]{grid-area:2/3/auto/5}.game-shell .party-bars [data-party-slot=dps-c]{grid-area:2/5/auto/7}.game-shell .party-bars button,.game-shell .party-bars .empty-party-slot{grid-template-columns:40px minmax(0,1fr);gap:5px;min-height:43px;padding:2px 4px 2px 2px}.game-shell .party-bars .empty-role-dot{width:26px;height:26px}.game-shell .party-bars .party-portrait{background-image:var(--party-portrait);background-position:50% 54%;background-repeat:no-repeat;background-size:160%;border:1px solid #ecd896db;border-radius:6px 4px 4px 6px;place-self:stretch stretch;width:40px;height:100%;min-height:37px;display:block;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #352312b8,0 1px 2px #000000b8}.game-shell .party-bars b{font-size:10px}.game-shell .party-bars .party-name-line strong{font-size:8px}.game-shell .party-bars .party-vitals{flex-direction:column;justify-content:center;min-width:0;display:flex}.game-shell .party-bars .party-name-line{flex:none;width:100%}.game-shell .party-bars .hp-track{flex:0 0 12px;width:100%;height:12px;margin-top:2px;position:relative}.game-shell .party-bars .hp-track-value{z-index:5;color:#fffbea;letter-spacing:-.1px;text-align:center;text-overflow:clip;white-space:nowrap;text-shadow:0 1px 1px #140c06f2;pointer-events:none;max-width:calc(100% - 5px);font-size:8px;font-weight:900;line-height:1;display:block;position:absolute;top:50%;left:60%;right:auto;overflow:hidden;transform:translate(-50%,-50%)}.game-shell .party-bars .energy-track{height:2px;margin-top:1px}.game-shell .party-status-effect{background-size:13px 13px;width:10px;height:10px}.game-shell .dps-meter{padding:3px 6px calc(3px + env(safe-area-inset-bottom,0px));grid-template-rows:11px repeat(5,15px);align-content:start;gap:1px}.game-shell .dps-meter header,.game-shell .dps-meter .meter-row,.game-shell .dps-meter .idle-meter-row{grid-template-columns:20px minmax(0,1fr) 48px 48px;gap:3px}.game-shell .dps-meter header{height:11px;padding:0 3px}.game-shell .dps-meter header b{font-size:9px}.game-shell .dps-meter header span{font-size:7px}.game-shell .dps-meter .meter-row,.game-shell .dps-meter .idle-meter-row{border-width:1px;border-radius:7px;height:15px;min-height:15px;padding:0 3px}.game-shell .dps-meter .meter-row .role-dot,.game-shell .dps-meter .idle-meter-row .empty-role-dot{width:12px;height:12px}.game-shell .dps-meter .meter-row b,.game-shell .dps-meter .idle-meter-row b{height:9px;padding-left:2px;font-size:9px;line-height:9px}.game-shell .dps-meter .meter-row span,.game-shell .dps-meter .meter-row strong,.game-shell .dps-meter .idle-meter-row span,.game-shell .dps-meter .idle-meter-row strong{font-size:8px}.game-shell .dps-meter .meter-fill{inset:1px 1px 1px 27px}.game-shell .dps-meter .threat-fill{border-radius:3px;width:4px;height:9px;left:22px}.game-shell .damage-feedback-trail{z-index:1;width:var(--damage-trail-from);pointer-events:none;background:linear-gradient(#fff4cdeb,#ff6f4ff0 42%,#b52b31f5);animation:.68s cubic-bezier(.18,.72,.22,1) forwards damageFeedbackTrail;display:block;position:absolute;inset:0 auto 0 0;box-shadow:inset 0 1px #fff9dee6,0 0 6px #ff533ac2}.game-shell .enemy-hp .current{z-index:2;position:absolute}.game-shell .enemy.hit-flash .enemy-hp .current{animation:.3s ease-out damageBarKick}.battle-hit-anchor{z-index:26;width:0;height:0;transform:translateY(calc(0px - var(--body-hurtbox-center-offset,30px)));pointer-events:none;position:absolute}.game-shell .battlefield:not(.story-active)>:is(.command-line,.character-basic-projectile,.player-skill-projectile,.battle-skill-spine-effect,.battle-hit-anchor,.armed-skill-cancel,.battle-skill-tray,.scene-entry-pending){z-index:var(--battle-overlay-depth)}.battle-damage-popup{--combat-number-width-scale:1;left:var(--damage-number-lane-x,0px);top:calc(-18px + var(--damage-number-lane-y,0px));min-width:0;height:22px;padding-right:calc(var(--combat-number-right-balance) * var(--combat-number-width-scale));padding-left:calc(var(--combat-number-left-balance) * var(--combat-number-width-scale));filter:drop-shadow(0 2px #3f1d14e6)drop-shadow(0 0 5px #ffc2439e);opacity:0;animation:battleDamagePopup .62s cubic-bezier(.16,.76,.22,1) var(--damage-number-delay,0s) both;pointer-events:none;justify-content:center;align-items:flex-end;display:flex;position:absolute;transform:translate(-50%)}.combat-number-glyph{z-index:2;width:calc(var(--combat-glyph-width) * 1px);height:20px;transform:rotate(var(--combat-glyph-tilt));animation:combatGlyphSettle .34s cubic-bezier(.18,.78,.26,1) var(--combat-glyph-delay) both;margin-left:-1px;position:relative;overflow:visible}.combat-number-glyph:first-child{margin-left:0}.combat-number-glyph path{fill:none;stroke-linecap:round;stroke-linejoin:round}.combat-number-shadow{stroke:#994529;stroke-width:5.8px;opacity:.96;transform:translateY(1.2px)}.combat-number-outline{stroke:#3d211b;stroke-width:5.2px}.combat-number-face{stroke-width:3.25px}.combat-number-highlight{stroke:#ffffecdb;stroke-width:.78px;transform:translate(-.35px,-.45px)}.combat-number-damage .combat-number-stop-top{stop-color:#fffbd4}.combat-number-damage .combat-number-stop-middle{stop-color:#ffd84f}.combat-number-damage .combat-number-stop-bottom{stop-color:#f08b38}.combat-number-damage:not(.combat-number-emphasized){--combat-number-width-scale:.86;filter:drop-shadow(0 1px #3f1d14db)drop-shadow(0 0 3px #ffc2437a);height:19px}.combat-number-damage:not(.combat-number-emphasized) .combat-number-glyph{width:calc(var(--combat-glyph-width) * .86px);height:17px}.combat-number-critical .combat-number-stop-top{stop-color:#fffde2}.combat-number-critical .combat-number-stop-middle{stop-color:#ffc928}.combat-number-critical .combat-number-stop-bottom{stop-color:#f0442d}.combat-number-critical{--combat-number-width-scale:1.3;transform-origin:50% 85%;filter:drop-shadow(0 3px #671d1b)drop-shadow(0 0 9px #ff691be0);height:30px;animation:battleCriticalDamagePopup .78s cubic-bezier(.14,.79,.2,1) var(--damage-number-delay,0s) both}.combat-number-critical:before{content:"";z-index:1;clip-path:polygon(50% 0,58% 37%,85% 15%,65% 42%,100% 50%,65% 58%,85% 85%,58% 63%,50% 100%,42% 63%,15% 85%,35% 58%,0 50%,35% 42%,15% 15%,42% 37%);width:48px;height:48px;animation:criticalNumberBurst .58s cubic-bezier(.13,.75,.22,1) var(--damage-number-delay,0s) both;background:radial-gradient(circle,#ffffd7fa,#ffc42de0 34%,#ff4f2373 58%,#0000 72%);position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)scale(.2)rotate(-9deg)}.combat-number-critical .combat-number-glyph{width:calc(var(--combat-glyph-width) * 1.3px);height:27px}.combat-number-healing .combat-number-stop-top{stop-color:#efffb0}.combat-number-healing .combat-number-stop-middle{stop-color:#8fd252}.combat-number-healing .combat-number-stop-bottom{stop-color:#3e8e4f}.combat-number-healing.battle-healing-popup{--combat-number-width-scale:1.1;filter:drop-shadow(0 2px #143817fa)drop-shadow(0 0 3px #efffd6f5)drop-shadow(0 0 9px #5def5ceb);height:25px}.combat-number-healing.battle-healing-popup .combat-number-glyph{width:calc(var(--combat-glyph-width) * 1.1px);height:23px}.battle-hit-anchor.defeating-hit .battle-damage-popup,.combat-number-emphasized{--combat-number-width-scale:1.18;filter:drop-shadow(0 2px #5e2116)drop-shadow(0 0 7px #ff912abd);height:26px}.battle-hit-anchor.defeating-hit .combat-number-glyph,.combat-number-emphasized .combat-number-glyph{width:calc(var(--combat-glyph-width) * 1.18px);height:24px}@keyframes damageFeedbackTrail{0%,24%{width:var(--damage-trail-from);opacity:1}to{width:var(--damage-trail-to);opacity:.18}}@keyframes damageBarKick{0%{filter:brightness();transform:translate(0)}22%{filter:brightness(1.55);transform:translate(.75px)}46%{transform:translate(-.65px)}72%{transform:translate(.25px)}to{filter:brightness();transform:translate(0)}}@keyframes battleDamagePopup{0%{opacity:0;transform:translate(-50%,5px)scale(.72,.82)rotate(-2deg)}17%{opacity:1;transform:translate(-50%,-2px)scale(1.13,.91)rotate(.7deg)}34%{opacity:1;transform:translate(-50%,-5px)scale(.97,1.07)rotate(-.3deg)}58%{opacity:1;transform:translate(calc(-50% + var(--hit-drift-x) * .45), calc(-9px + var(--hit-drift-y) * .45)) scale(1)}to{opacity:0;transform:translate(calc(-50% + var(--hit-drift-x)), calc(-18px + var(--hit-drift-y))) scale(.96)}}@keyframes battleCriticalDamagePopup{0%{opacity:0;transform:translate(-50%,7px)scale(.48,.62)rotate(-5deg)}14%{opacity:1;transform:translate(-50%,-5px)scale(1.42,.86)rotate(2deg)}29%{opacity:1;transform:translate(-50%,-9px)scale(.92,1.28)rotate(-1deg)}47%{opacity:1;transform:translate(-50%,-11px)scale(1.12,.98)rotate(.4deg)}72%{opacity:1;transform:translate(calc(-50% + var(--hit-drift-x)), calc(-16px + var(--hit-drift-y))) scale(1.04)}to{opacity:0;transform:translate(calc(-50% + var(--hit-drift-x)), calc(-28px + var(--hit-drift-y))) scale(.98)}}@keyframes criticalNumberBurst{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(-9deg)}20%{opacity:1;transform:translate(-50%,-50%)scale(1.12)rotate(3deg)}55%{opacity:.72;transform:translate(-50%,-50%)scale(.92)rotate(8deg)}to{opacity:0;transform:translate(-50%,-50%)scale(1.28)rotate(13deg)}}@keyframes combatGlyphSettle{0%{transform:rotate(var(--combat-glyph-tilt)) translateY(2px) scale(.84)}56%{transform:rotate(calc(var(--combat-glyph-tilt) * -.35)) translateY(-.8px) scale(1.05)}to{transform:rotate(var(--combat-glyph-tilt)) translateY(0) scale(1)}}.battle-runtime-fault{z-index:10000;color:#fff;background:#30080cf5;border:1px solid #ff6d6de6;border-radius:8px;gap:4px;width:min(340px,100% - 24px);padding:10px 12px;display:grid;position:absolute;top:76px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000073}.battle-runtime-fault b{font-size:13px}.battle-runtime-fault span{overflow-wrap:anywhere;color:#ffd4d4;font-size:11px}.game-shell .battle-utility-controls,.game-shell .armed-skill-controls,.game-shell .battle-session-menu{z-index:var(--battle-overlay-depth);position:absolute}.game-shell .battle-utility-controls{gap:6px;display:flex;bottom:10px;left:3px}.game-shell .battle-utility-controls>button{cursor:pointer;background:linear-gradient(145deg,#2c4333f5,#132219f5);border:2px solid #eeebc4b8;border-radius:50%;place-items:center;width:36px;min-width:36px;height:36px;padding:0;display:grid;box-shadow:inset 0 1px 2px #ffffe62e,0 3px 8px #00000061}.game-shell .battle-utility-controls .battle-helper-toggle.active,.game-shell .battle-utility-controls .hud-toggle.active{border-color:#ffe36e;box-shadow:inset 0 1px 2px #ffffe63d,0 0 9px #ffda4ab3,0 3px 8px #00000061}.game-shell .battle-utility-controls .hud-toggle{place-items:center}.game-shell .battle-utility-controls .dps-toggle-label{color:#edf1d9;letter-spacing:-.35px;text-shadow:0 1px 2px #000000d1;font-family:Georgia,Times New Roman,serif;font-size:10px;font-weight:900;line-height:1;display:block}.game-shell .battle-utility-controls .hud-toggle.active .dps-toggle-label{color:#ffe36e;text-shadow:0 0 5px #ffda4aad,0 1px 2px #000000d1}.game-shell .armed-skill-controls{gap:10px;bottom:66px;left:12px}.game-shell .armed-skill-cancel,.game-shell .armed-skill-cycle{width:46px;height:46px}.game-shell .armed-skill-cancel{font-size:29px}.game-shell .armed-skill-cycle{font-size:24px}.game-shell :is(.party-bars,.dps-meter) .armed-skill-controls{z-index:auto;grid-template-columns:repeat(2,minmax(0,1fr));align-self:stretch;gap:3px;min-width:0;display:grid;position:static;inset:auto}.game-shell .party-bars .armed-skill-controls{grid-area:2/3/auto/7}.game-shell .dps-meter .armed-skill-controls{grid-area:5/1/7/-1}.game-shell :is(.party-bars,.dps-meter) .armed-skill-controls>button{color:#fff0c8;border-radius:8px;justify-content:center;align-items:center;gap:5px;width:100%;height:100%;min-height:0;padding:0 4px;font-size:12px;line-height:1;display:flex;position:static}.game-shell .armed-skill-controls>button>span{font-size:24px}.game-shell .battle-session-menu{top:calc(10px + env(safe-area-inset-top,0px));right:10px}.game-shell .battle-session-menu-trigger{color:#fff5c9;background:#18261de6;border:2px solid #efe8c0bf;border-radius:50%;place-items:center;width:40px;height:40px;padding:0 0 3px;font-size:27px;font-weight:850;line-height:1;display:grid;box-shadow:inset 0 1px 2px #ffffe629,0 3px 9px #00000061}.game-shell .battle-session-menu.open .battle-session-menu-trigger{color:#ffe36e;border-color:#ffe36e}.game-shell .battle-session-menu-panel{background:#121e16f5;border:1px solid #ede0b194;border-radius:10px;gap:6px;width:150px;padding:8px;display:grid;position:absolute;top:47px;right:0;box-shadow:0 7px 20px #00000080}.game-shell .battle-session-menu-panel button{color:#fff6d2;text-align:center;background:linear-gradient(#435b45fa,#25382afa);border:1px solid #e7deb857;border-radius:7px;min-height:42px;padding:0 10px;font-size:13px;font-weight:850}.game-shell .battle-session-menu-panel button:last-child{background:linear-gradient(#70372dfa,#42241ffa);border-color:#e4755e85}.first-level-interactive-environment{pointer-events:none;display:contents}.level-grass-patch,.level-camp-foreground{pointer-events:none;display:block;position:absolute}.level-grass-patch,.environment-test-grass{background-position:0 0;background-repeat:no-repeat}.level-grass-patch.is-normal,.environment-test-grass.is-normal{background-size:400% 100%;animation:1.2s steps(4,end) infinite levelGrassNormalSheet}.level-grass-patch.is-burning,.environment-test-grass.is-burning{background-image:none;animation:none}.level-grass-patch.is-scorched,.environment-test-grass.is-scorched{background-size:100% 100%;animation:none}.level-camp-foreground{outline-offset:-2px;background:#7a482114;outline:2px dashed #ffcd6a57}.level-camp-foreground.is-destroying{outline-color:#0000}.battle-map-camp.is-collapsing{transform-origin:50% 90%;animation-name:levelCampCollapse;animation-timing-function:linear;animation-fill-mode:both}.battle-map-camp-remains{pointer-events:none;display:block;position:absolute}.battle-map-camp-remains.is-revealing{animation-name:levelCampRemainsReveal;animation-timing-function:linear;animation-fill-mode:both}@keyframes levelCampRemainsReveal{0%,25%{opacity:0}52%,to{opacity:1}}@keyframes levelCampCollapse{0%{opacity:1;transform:translate(0)}3%{transform:translate(-1.5%,.5%)rotate(-1deg)}6%{transform:translate(1%,1%)rotate(1deg)}10%{transform:translate(-.7%,2%)rotate(-.6deg)}16%{opacity:1;transform:translateY(3%)scaleY(.96)}30%{opacity:.95;transform:translateY(8%)scale(.98,.86)}48%,to{opacity:0;transform:translateY(15%)scale(.94,.7)}}.level-camp-dust{filter:blur(4px);background:radial-gradient(at 40% 30%,#d5ccb4 12%,#b6aa8c 68%,#9b9177b3 100%);border-radius:50%;width:48%;height:75%;display:block;position:absolute}.level-camp-smoke{transform-origin:50% 85%;animation-name:levelCampDustCloud;animation-timing-function:linear;animation-fill-mode:both;display:block;position:absolute;inset:-8% -8% -5%}.level-camp-dust.puff-0{top:24%;left:0}.level-camp-dust.puff-1{top:0;left:15%}.level-camp-dust.puff-2{top:8%;left:38%}.level-camp-dust.puff-3{top:24%;left:56%}.level-camp-dust.puff-4{top:35%;left:30%}.level-camp-dust.puff-5{height:45%;top:48%;left:8%}.level-camp-dust.puff-6{height:42%;top:50%;left:52%}@keyframes levelCampDustCloud{0%{opacity:0;transform:translateY(12%)scale(.5,.25)}10%{opacity:.8}22%{opacity:1;transform:translateY(0)scale(1)}52%{opacity:1;transform:translateY(-3%)scale(1.06)}72%{opacity:.65}to{opacity:0;transform:translateY(-24%)scale(1.2,1.08)}}@keyframes levelGrassNormalSheet{0%{background-position-x:0}to{background-position-x:133.333%}}.level-grass-patch.is-normal{transform-origin:50% 80%;filter:drop-shadow(0 2px 1.5px #1e2b0f52);background-size:100% 100%;animation:3.4s ease-in-out infinite alternate levelGrassWindSway}@keyframes levelGrassWindSway{0%{transform:scale(var(--grass-artwork-scale,1.3)) skewX(-2deg) scaleY(.985)}to{transform:scale(var(--grass-artwork-scale,1.3)) skewX(2deg) scaleY(1.015)}}.level-grass-patch.is-scorched{transform:scale(var(--grass-artwork-scale,1.3));transform-origin:50% 80%;mix-blend-mode:multiply}.environment-test-shell{color:#f7edcb;background:linear-gradient(#182c21,#0b1711);width:min(100vw,390px);min-height:100svh;margin:0 auto;padding:18px 14px 28px}.environment-test-shell header small{color:#d8b667;letter-spacing:.12em}.environment-test-shell header h1{margin:6px 0;font-size:25px}.environment-test-shell header p{color:#bdd0bd;margin:0 0 14px;font-size:13px;line-height:1.5}.environment-test-shell header .environment-test-review-note{color:#edce7d;font-size:11px}.environment-test-stage{aspect-ratio:914/1721;border:1px solid #e6ce8b7a;border-radius:16px;width:100%;height:auto;min-height:0;position:relative;overflow:hidden}.environment-test-grass{z-index:4;pointer-events:none;display:block;position:absolute}.environment-test-grass.is-normal-review-v5{z-index:4;transform-origin:50% 80%;background-size:100% 100%;animation:3.4s ease-in-out infinite alternate environmentReviewGrassSway;transform:scale(1.3)}@keyframes environmentReviewGrassSway{0%{transform:scale(1.3)skew(-.45deg)}to{transform:scale(1.3)skew(.45deg)}}.environment-test-grass.is-scorched-review-v5{transform-origin:50% 80%;background-size:100% 100%;animation:none;transform:scale(1.3)}.environment-test-character-review{width:0;height:0;position:absolute}.environment-test-character-review .character-art.model-spine-battle-host{left:0;bottom:calc(0px - var(--model-foot-offset,9px));transform-origin:50% calc(100% - var(--model-foot-offset,9px));transform:translate(-50%)scale(.75)}.environment-test-ogre-unit{z-index:11;width:0;height:0;display:block;position:absolute;top:44%;left:31%}.environment-test-ogre-unit .character-art.model-spine-battle-host{left:0;bottom:calc(0px - var(--model-foot-offset,9px));transform-origin:50% calc(100% - var(--model-foot-offset,9px));transform:translate(-50%)scale(.72)}.environment-test-ogre-unit>em{z-index:13;color:#fff1c1;text-shadow:0 1px 3px #1a0d06;font-size:10px;font-style:normal;font-weight:900;position:absolute;top:5px;left:0;transform:translate(-50%)}.environment-test-tank-marker{z-index:9;color:#e9f8ff;background:#1d638fc7;border:1px solid #a3deffe6;border-radius:50%;place-items:center;width:34px;height:18px;font-size:8px;font-weight:900;display:grid;position:absolute;top:53%;left:31%;transform:translate(-50%,-50%)}.environment-test-phase-banner{z-index:20;color:#fff4ce;text-align:center;background:#141f14d1;border:1px solid #ffe09b8f;border-radius:999px;min-width:62%;padding:7px 12px;font-size:12px;font-weight:900;position:absolute;bottom:3%;left:50%;transform:translate(-50%);box-shadow:0 3px 12px #00000061}.environment-test-phase-banner.phase-burning{color:#ffe0a0;border-color:#ff7936b8}.environment-test-phase-banner.phase-scorched{color:#f3d2b0;border-color:#744931e6}.environment-test-stage .monster-skill-ground{z-index:8}.environment-test-stage .monster-skill-impact{z-index:14}.environment-test-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.environment-test-controls button{color:#fff1c8;background:#39533d;border:1px solid #e2c57780;border-radius:9px;min-height:42px}.environment-test-controls button:disabled{opacity:.52;cursor:wait}.environment-test-readout{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:12px 0;display:grid}.environment-test-readout div{background:#ffffff12;border-radius:8px;padding:8px}.environment-test-readout dt{color:#a9c2aa;font-size:11px}.environment-test-readout dd{margin:2px 0 0;font-weight:800}.environment-test-log{color:#cfe0ce;background:#0000002e;min-height:40px;margin:0;padding:10px 10px 10px 28px;font:12px/1.5 monospace}.character-art.model-spine-battle-host{--sprite-translate-x:-50%;--battle-art-base-filter:brightness(1);left:50%;bottom:calc(0px - var(--model-foot-offset,9px));translate:0 var(--model-presentation-offset-y,0px);width:var(--model-canvas-width,160px);height:var(--model-canvas-height,112px);filter:none;overflow:visible;background:0 0!important;animation:none!important}.game-shell .character-art.model-spine-battle-host{transform:translateX(var(--sprite-translate-x)) scale(var(--battle-actor-visual-scale,1));transform-origin:50% calc(100% - var(--model-foot-offset,9px))}.shared-spine-battle-layer{pointer-events:none;background:0 0;width:100%;height:100%;display:block;position:absolute;inset:0}.shared-spine-actor-layer{z-index:1}.shared-spine-effect-layer{z-index:2}.enemy-art.monster-spine-battle-host{--sprite-translate-x:-50%;width:var(--model-canvas-width,160px);height:var(--model-canvas-height,112px);top:auto}.model-spine-battle-canvas{width:var(--model-canvas-width,160px);height:var(--model-canvas-height,112px);pointer-events:none;background:0 0;display:block;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.model-spine-battle-canvas .spine-player{background-color:#0000!important}.model-spine-battle-canvas canvas{image-rendering:auto;filter:none;display:block;width:var(--model-canvas-width,160px)!important;height:var(--model-canvas-height,112px)!important;background:0 0!important}.model-spine-orientation-mirror-x .model-spine-battle-canvas{transform:translate(-50%)scaleX(-1)}.healer-staff-tip-glow{--staff-tip-ray-faint:#73e85814;--staff-tip-ray-mid:#d5ffbcd1;--staff-tip-ray-core:#f6ffe9;--staff-tip-shadow:#7ef666c7;top:var(--staff-tip-anchor-y,50%);left:var(--staff-tip-anchor-x,50%);z-index:12;width:30px;height:30px;filter:drop-shadow(0 0 2px var(--staff-tip-shadow));opacity:0;pointer-events:none;background:0 0;display:block;position:absolute;transform:translate(-50%,-50%)scale(.45)}.healer-staff-tip-glow:before,.healer-staff-tip-glow:after{content:"";background:linear-gradient(90deg, transparent 0 4%, var(--staff-tip-ray-faint) 22%, var(--staff-tip-ray-mid) 45%, var(--staff-tip-ray-core) 49% 51%, var(--staff-tip-ray-mid) 55%, var(--staff-tip-ray-faint) 78%, transparent 96%) center / 100% 2px no-repeat, linear-gradient(0deg, transparent 0 4%, var(--staff-tip-ray-faint) 22%, var(--staff-tip-ray-mid) 45%, var(--staff-tip-ray-core) 49% 51%, var(--staff-tip-ray-mid) 55%, var(--staff-tip-ray-faint) 78%, transparent 96%) center / 2px 100% no-repeat;position:absolute;inset:0}.healer-staff-tip-glow:after{opacity:.72;inset:5px;transform:rotate(45deg)}.model-spine-orientation-mirror-x .healer-staff-tip-glow{left:calc(100% - var(--staff-tip-anchor-x,50%))}.weapon-head-charge-glow{top:var(--weapon-head-anchor-y,50%);left:var(--weapon-head-anchor-x,50%);z-index:12;filter:drop-shadow(0 0 5px #e12918ad);opacity:0;pointer-events:none;background:radial-gradient(#ffe8b7e6 0 9%,#ff5c30b8 28%,#c4190f3d 55%,#0000 73%);border-radius:50%;width:34px;height:24px;display:block;position:absolute;transform:translate(-50%,-50%)scale(.72)}.model-spine-orientation-mirror-x .weapon-head-charge-glow{left:calc(100% - var(--weapon-head-anchor-x,50%))}.model-spine-battle-host[data-active-model-effect=burning-slam-weapon-glow] .weapon-head-charge-glow{animation:.52s ease-in-out infinite alternate weaponHeadChargeGlowPulse}.model-spine-battle-host[data-staff-tip-glow-tone=arcane-blue] .healer-staff-tip-glow{--staff-tip-ray-faint:#50b9ec1a;--staff-tip-ray-mid:#abe6ffdb;--staff-tip-ray-core:#f3fcff;--staff-tip-shadow:#52c4f5db}.model-spine-battle-host[data-staff-tip-glow-tone=healing-green] .healer-staff-tip-glow{--staff-tip-ray-faint:#73e85814;--staff-tip-ray-mid:#d5ffbcd1;--staff-tip-ray-core:#f6ffe9;--staff-tip-shadow:#7ef666c7}.model-spine-battle-host[data-staff-tip-glow-emphasis=restrained] .healer-staff-tip-glow{animation:restrainedStaffTipGlow var(--priest-heal-cast-duration,.72s) ease-out}.model-spine-battle-host[data-staff-tip-glow-emphasis=active] .healer-staff-tip-glow{filter:drop-shadow(0 0 3px #e8ffcdf5)drop-shadow(0 0 8px #5cef69e6);width:42px;height:42px;animation:.64s ease-in-out infinite activeHealerCastGlow}.model-spine-battle-host[data-staff-tip-glow-emphasis=active] .healer-staff-tip-glow:before,.model-spine-battle-host[data-staff-tip-glow-emphasis=active] .healer-staff-tip-glow:after{background:radial-gradient(circle,#f8ffe0fa 0 7%,#6ff6676b 8% 20%,#0000 42%),linear-gradient(90deg,#0000 2%,#8af46c29 22%,#f7ffe7 48% 52%,#8af46c29 78%,#0000 98%) 50%/100% 3px no-repeat,linear-gradient(#0000 2%,#8af46c29 22%,#f7ffe7 48% 52%,#8af46c29 78%,#0000 98%) 50%/3px 100% no-repeat}@keyframes restrainedStaffTipGlow{0%,to{opacity:0;transform:translate(-50%,-50%)scale(.35)rotate(-7deg)}18%{opacity:.72;transform:translate(-50%,-50%)scale(.76)rotate(0)}34%,74%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(5deg)}}@keyframes activeHealerCastGlow{0%,to{opacity:.72;transform:translate(-50%,-50%)scale(.82)rotate(-5deg)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.12)rotate(5deg)}}@keyframes weaponHeadChargeGlowPulse{0%{opacity:.52;transform:translate(-50%,-50%)scale(.72)}to{opacity:.96;transform:translate(-50%,-50%)scale(1.02)}}.character-basic-projectile{left:var(--character-projectile-start-x);top:var(--character-projectile-start-y);z-index:var(--battle-overlay-depth,30);pointer-events:none;position:absolute}.melee-impact{z-index:9;filter:drop-shadow(0 0 5px #ffcd5ce6);pointer-events:none;border-top:3px solid #fff4bef5;border-right:2px solid #fffc;border-radius:50%;width:46px;height:29px;animation:.26s ease-out forwards meleeImpactSlash;display:block;position:absolute}.battle-hit-anchor .melee-impact{top:0;left:0}.impact-stab{width:28px;height:18px}.friendly-slash-impact{filter:drop-shadow(0 0 3px #fffff5b8);border-top-color:#fffff7fa;border-right-color:#f4faeedb;width:42px;height:27px;animation:.24s ease-out forwards friendlyMeleeImpactSlash;top:0;left:0}.priest-projectile{filter:drop-shadow(-5px 0 3px #59c8f26b);width:7px;height:7px;animation:priestBolt var(--character-projectile-duration) ease-in forwards;background:radial-gradient(circle at 38% 34%,#fff 0 16%,#bdeeff 18% 38%,#55bfe9 64%,#2185b5 100%);border:1px solid #e7fafff5;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 4px 2px #c9f2ffe0,0 0 10px 4px #48b9e785}.robin-arrow{width:22px;height:3px;transform:translate(-50%, -50%) rotate(var(--character-projectile-angle));transform-origin:50%;animation:robinArrowFlight var(--character-projectile-duration) linear forwards;background:linear-gradient(90deg,#704923 0 72%,#eef1de 73% 100%);border-radius:2px;box-shadow:0 0 3px #ffffff8c}@keyframes priestBolt{0%{left:var(--character-projectile-start-x);top:var(--character-projectile-start-y);opacity:0;transform:translate(-50%,-50%)scale(.55)}14%{opacity:1}72%{opacity:1;transform:translate(-50%,-50%)scale(.94)}to{left:var(--character-projectile-x);top:var(--character-projectile-y);opacity:1;transform:translate(-50%,-50%)scale(.72)}}@keyframes robinArrowFlight{0%{left:var(--character-projectile-start-x);top:var(--character-projectile-start-y);opacity:0}14%{opacity:1}to{left:var(--character-projectile-x);top:var(--character-projectile-y);opacity:1}}@keyframes meleeImpactSlash{0%{opacity:0;transform:translate(-50%,-50%)rotate(-48deg)scale(.38)}30%{opacity:1}70%{opacity:.88;transform:translate(-50%,-50%)rotate(34deg)scale(1.08)}to{opacity:0;transform:translate(-50%,-50%)rotate(48deg)scale(1.2)}}@keyframes friendlyMeleeImpactSlash{0%{opacity:0;transform:translate(-50%, -50%) rotate(calc(var(--friendly-hit-angle,0deg) - 48deg)) scale(.38)}28%{opacity:1}68%{opacity:.9;transform:translate(-50%, -50%) rotate(calc(var(--friendly-hit-angle,0deg) + 34deg)) scale(1.05)}to{opacity:0;transform:translate(-50%, -50%) rotate(calc(var(--friendly-hit-angle,0deg) + 48deg)) scale(1.16)}}.battle-heal-impact{touch-action:none;-webkit-user-select:none;user-select:none;contain:layout paint style;isolation:isolate;background:0 0;border:0;width:54px;height:64px;display:block;position:absolute;overflow:visible;transform:translate(-50%,-100%);pointer-events:none!important}.battle-heal-impact *,.battle-heal-impact:before,.battle-heal-impact:after{pointer-events:none!important}.battle-heal-impact.basic-heal-css:before,.battle-heal-impact.basic-heal-css:after,.battle-heal-impact.basic-heal-css>i,.battle-heal-impact.basic-heal-css>b{content:"";display:block;position:absolute;pointer-events:none!important}.battle-heal-impact.basic-heal-css:before{background:radial-gradient(#bfffa633 0 30%,#60f4781a 52%,#0000 76%);border:1px solid #beffa9b8;border-radius:50%;height:10px;animation:.92s cubic-bezier(.2,.72,.25,1) both basicHealGroundRing;bottom:0;left:8px;right:8px;box-shadow:0 0 6px #66ff7d6b,inset 0 0 4px #efffe285}.battle-heal-impact.basic-heal-css:after{background:radial-gradient(circle at 35% 30%,#f0ffdb 0 18%,#91ef83 42%,#4bd26547 72%,#0000 76%);border-radius:50%;width:10px;height:10px;animation:.82s ease-out both basicHealOrbRise;bottom:9px;left:23px;box-shadow:0 0 7px #75f277d1}.battle-heal-impact.basic-heal-css>i{background:radial-gradient(circle at 35% 30%,#f0ffdb 0 18%,#83e979 46%,#4bd2653d 74%,#0000 78%);border-radius:50%;width:7px;height:7px;animation:.78s ease-out 70ms both basicHealOrbRiseLeft;bottom:7px;left:11px;box-shadow:0 0 5px #75f277ad}.battle-heal-impact.basic-heal-css>b{background:radial-gradient(circle at 35% 30%,#efffda 0 18%,#86e77b 45%,#4bd2653d 74%,#0000 78%);border-radius:50%;width:8px;height:8px;animation:.84s ease-out 30ms both basicHealOrbRiseRight;bottom:11px;left:39px;box-shadow:0 0 6px #75f277b8}.battle-heal-impact.basic-heal-css>b:after{content:"";background:radial-gradient(circle at 35% 30%,#f4ffe4 0 18%,#9bea8c 48%,#0000 80%);border-radius:50%;width:5px;height:5px;animation:.72s ease-out .12s both basicHealOrbRiseInner;position:absolute;top:4px;left:-18px;box-shadow:0 0 3px #75f27785}.impact-spell{width:34px;height:34px;box-shadow:none;filter:drop-shadow(0 0 4px #7cdbffe6);background:linear-gradient(90deg,#0000 0 42%,#ebfbffeb 48% 52%,#0000 58% 100%) 50%/100% 3px no-repeat,linear-gradient(0deg,#0000 0 42%,#ebfbffeb 48% 52%,#0000 58% 100%) 50%/3px 100% no-repeat,radial-gradient(circle,#fff 0 7%,#aee9ff 8% 18%,#45b8e8ad 19% 32%,#288ec52e 44%,#0000 68%);border:0;border-radius:50%;animation:.32s ease-out forwards priestSpellImpactBurst}.impact-spell:before{content:"";border:2px solid #bcedffe6;border-radius:50%;animation:.32s ease-out forwards priestSpellImpactRing;position:absolute;inset:5px}.impact-spell:after{content:"";background:linear-gradient(45deg,#0000 0 46%,#96e2ffad 49% 51%,#0000 54% 100%) 50%/100% 2px no-repeat,linear-gradient(-45deg,#0000 0 46%,#96e2ffad 49% 51%,#0000 54% 100%) 50%/2px 100% no-repeat;animation:.32s ease-out forwards priestSpellImpactRays;position:absolute;inset:-3px}.impact-arrow.effect-robin-green-ranger-arrow{filter:drop-shadow(0 0 4px #ffe797eb);background:radial-gradient(circle,#ffffeffa 0 8%,#fbe289d1 10% 22%,#deb34833 38%,#0000 66%);border:0;border-radius:0;width:34px;height:26px;animation:.3s ease-out forwards robinArrowImpact}.impact-arrow.effect-robin-green-ranger-arrow:before,.impact-arrow.effect-robin-green-ranger-arrow:after{content:"";background:linear-gradient(90deg,#0000 0 10%,#fff7d2f5 42% 58%,#0000 90% 100%) 50%/100% 2px no-repeat,linear-gradient(0deg,#0000 0 12%,#ffe285e0 42% 58%,#0000 88% 100%) 50%/2px 100% no-repeat;position:absolute;inset:4px -2px}.impact-arrow.effect-robin-green-ranger-arrow:after{opacity:.76;transform:rotate(45deg)scale(.72)}@keyframes basicHealGroundRing{0%{opacity:0;transform:scale(.48)}20%{opacity:1}68%{opacity:.78}to{opacity:0;transform:scale(1.12)}}@keyframes basicHealOrbRise{0%{opacity:0;transform:translateY(4px)scale(.6)}24%{opacity:.9;transform:translateY(0)scale(1)}to{opacity:0;transform:translate(2px,-40px)scale(.72)}}@keyframes basicHealOrbRiseLeft{0%{opacity:0;transform:translateY(3px)scale(.55)}25%{opacity:.72;transform:translateY(0)scale(1)}to{opacity:0;transform:translate(6px,-31px)scale(.68)}}@keyframes basicHealOrbRiseRight{0%{opacity:0;transform:translateY(4px)scale(.58)}22%{opacity:.78;transform:translateY(0)scale(1)}to{opacity:0;transform:translate(-7px,-35px)scale(.7)}}@keyframes basicHealOrbRiseInner{0%{opacity:0;transform:translateY(2px)scale(.5)}28%{opacity:.62;transform:translateY(0)scale(1)}to{opacity:0;transform:translate(-3px,-25px)scale(.65)}}@keyframes priestSpellImpactBurst{0%{opacity:0;transform:translate(-50%,-50%)scale(.18)}20%{opacity:1;transform:translate(-50%,-50%)scale(.72)}48%{opacity:1;transform:translate(-50%,-50%)scale(1.05)}to{opacity:0;transform:translate(-50%,-50%)scale(1.46)}}@keyframes priestSpellImpactRing{0%{opacity:0;transform:scale(.25)}28%{opacity:.95}to{opacity:0;transform:scale(2.1)}}@keyframes priestSpellImpactRays{0%{opacity:0;transform:scale(.4)rotate(-8deg)}25%{opacity:.9}to{opacity:0;transform:scale(1.32)rotate(8deg)}}@keyframes robinArrowImpact{0%{opacity:0;transform:translate(-50%,-50%)scale(.22)rotate(-8deg)}24%{opacity:1;transform:translate(-50%,-50%)scale(.82)rotate(0)}58%{opacity:.94;transform:translate(-50%,-50%)scale(1.08)rotate(4deg)}to{opacity:0;transform:translate(-50%,-50%)scale(1.42)rotate(8deg)}}.battle-friendly-unit.receiving-hit:not(.dying) .hero-art{animation:.24s ease-out friendlyDamageFlash!important}.battle-friendly-unit.receiving-hit:not(.dying) .model-spine-battle-canvas canvas{animation:.24s ease-out friendlySpineDamageFlash!important}.enemy.death-fading .enemy-art,.hero-node.death-fading .hero-art{animation:.36s ease-in forwards battleCorpseFade!important}.enemy.death-fading .unit-shadow,.hero-node.death-fading .unit-shadow{animation:.36s ease-in forwards battleCorpseShadowFade!important}@keyframes friendlyDamageFlash{0%,to{filter:var(--battle-art-base-filter) brightness(1) saturate(1)}18%{filter:var(--battle-art-base-filter) brightness(1.38) saturate(.72)}52%{filter:var(--battle-art-base-filter) brightness(1.1) saturate(.92)}}@keyframes friendlySpineDamageFlash{0%,to{filter:none}18%{filter:brightness(1.38)saturate(.72)}52%{filter:brightness(1.1)saturate(.92)}78%{filter:brightness(1.025)saturate(.98)}}@keyframes battleCorpseFade{0%{opacity:1;filter:var(--battle-art-base-filter) grayscale(.2) brightness(.84)}to{opacity:0;filter:var(--battle-art-base-filter) grayscale(1) brightness(.45)}}@keyframes battleCorpseShadowFade{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.battle-friendly-unit.receiving-hit:not(.dying) .hero-art,.battle-friendly-unit.receiving-hit:not(.dying) .model-spine-battle-canvas canvas,.enemy.death-fading .enemy-art,.hero-node.death-fading .hero-art,.enemy.death-fading .unit-shadow,.hero-node.death-fading .unit-shadow{animation-duration:.01ms!important}}.battle-skill-spine-effect{width:var(--effect-canvas-width,76px);height:var(--effect-canvas-height,82px);pointer-events:none;visibility:hidden;opacity:0;background:0 0;border:0;display:block;position:absolute}.battle-skill-spine-effect[data-active=true]{visibility:visible;opacity:1}.battle-spine-effect-canvas{width:var(--effect-canvas-width,68px);height:var(--effect-canvas-height,52px);pointer-events:none;background:0 0;display:block;position:absolute;inset:0;overflow:visible}.battle-spine-effect-canvas .spine-player,.battle-spine-effect-canvas canvas{pointer-events:none;display:block;width:var(--effect-canvas-width,68px)!important;height:var(--effect-canvas-height,52px)!important;background:0 0!important}.battle-spine-effect-canvas .spine-player-controls{display:none!important}.battle-skill-spine-effect.skill-spine-target-feet{transform:translate(-50%,-78%)}.battle-skill-spine-effect.skill-spine-rapid-heal{transform:translate(-50%,-61.5%)}.battle-skill-spine-effect.skill-spine-divine-release{transform:translate(-50%,-58%)}.battle-skill-spine-effect.skill-spine-divine-status{transform:translate(-50%,-50%)}.battle-skill-spine-effect:is(.skill-spine-unyielding,.skill-spine-vengeance){transform:translate(-50%,-83.3%)}.battle-skill-spine-effect.skill-spine-target-head{transform:translate(-50%,-168%)}.battle-skill-spine-effect.skill-spine-aimed-marker{transform:translate(-50%,calc(4px - 168%))}.player-skill-projectile{z-index:calc(var(--battle-overlay-depth,50) - 20);width:var(--skill-projectile-width,26px);height:var(--skill-projectile-height,12px);transform-origin:50%;-webkit-user-select:none;user-select:none;will-change:transform, opacity;animation:playerSkillProjectileTravel var(--skill-projectile-duration,.46s) linear both;display:block;position:absolute;transform:translate(-50%,-50%);pointer-events:none!important}.player-skill-projectile>img{width:100%;height:100%;transform:rotate(var(--skill-projectile-rotation));object-fit:contain;filter:brightness(1.3)contrast(1.16)saturate(1.24)drop-shadow(0 0 2px #f5ffe1fa)drop-shadow(0 0 5px #6fff53b8);pointer-events:none;display:block}.player-skill-projectile[data-skill-id=aimed-shot]>img{filter:brightness(1.46)contrast(1.2)saturate(1.32)drop-shadow(0 0 3px #faffe8)drop-shadow(0 0 8px #6fff53e0)}.player-skill-projectile[data-skill-id=aimed-shot]:before{background:linear-gradient(90deg,#0000,#70ff5557 34%,#f4ffe6fa);width:58px;height:4px;box-shadow:0 0 7px #69ff50db}.skill-png-arrow-projectile:before{content:"";width:42px;height:3px;transform:translate(-92%, -50%) rotate(var(--skill-projectile-rotation));transform-origin:100%;pointer-events:none;background:linear-gradient(90deg,#0000,#70ff5538 38%,#ebffdae6);border-radius:999px;position:absolute;top:50%;left:50%;box-shadow:0 0 5px #69ff50ad}@keyframes playerSkillProjectileTravel{0%{opacity:0;transform:translate(-50%,-50%)translate(0)scale(.84)}8%{opacity:1}90%{opacity:1}to{opacity:0;transform:translate(-50%, -50%) translate(var(--skill-projectile-x), var(--skill-projectile-y)) scale(1)}}.skill-poison-dart-projectile{z-index:calc(var(--battle-overlay-depth,50) - 20);width:30px;height:18px;overflow:visible}.skill-poison-dart-projectile>i,.skill-poison-dart-projectile>b,.skill-poison-dart-projectile:before,.skill-poison-dart-projectile:after{pointer-events:none;display:block;position:absolute;top:50%;left:50%}.skill-poison-dart-projectile>i{width:20px;height:6px;transform:translate(-50%, -50%) rotate(var(--skill-projectile-rotation));clip-path:polygon(0 18%,68% 18%,100% 50%,68% 82%,0 82%,18% 50%);filter:drop-shadow(0 0 2px #7cff61)drop-shadow(0 0 4px #42e553b8);background:linear-gradient(90deg,#57285f 0 18%,#b6ff6e 19% 57%,#3acb51 58% 78%,#f1ffe5 79% 100%)}.skill-poison-dart-projectile>i:before,.skill-poison-dart-projectile>i:after{content:"";pointer-events:none;display:block;position:absolute}.skill-poison-dart-projectile>i:before{clip-path:polygon(0 0,100% 50%,0 100%,24% 50%);background:#9d49b4;width:6px;height:6px;top:0;left:0}.skill-poison-dart-projectile>i:after{background:#baff55;border-radius:50%;width:4px;height:4px;top:1px;right:3px;box-shadow:0 0 3px #75ff4d}.skill-poison-dart-projectile>b{width:23px;height:3px;transform:translate(-112%, -50%) rotate(var(--skill-projectile-rotation));transform-origin:100%;filter:blur(.6px);background:linear-gradient(90deg,#0000,#65ff4b2e 25%,#99ff5ac2);border-radius:999px}.skill-poison-dart-projectile:before,.skill-poison-dart-projectile:after{content:"";opacity:0;border-radius:50%;transform:translate(-50%,-50%)scale(.2)}.skill-poison-dart-projectile:before{width:16px;height:16px;animation:poisonDartReleaseSpark var(--skill-projectile-duration) linear both;background:radial-gradient(circle,#e2ffa6eb,#5ce74194 36%,#0000 70%)}.skill-poison-dart-projectile:after{width:30px;height:30px;animation:poisonDartImpactBurst var(--skill-projectile-duration) linear both;background:radial-gradient(circle,#f0ffcaf5 0 7%,#76f449cc 9% 22%,#61277094 25% 34%,#0000 62%)}@keyframes poisonDartReleaseSpark{0%{opacity:.95;transform:translate(-50%,-50%)scale(.25)}13%{opacity:0;transform:translate(-50%,-50%)scale(1)}to{opacity:0}}@keyframes poisonDartImpactBurst{0%,82%{opacity:0;transform:translate(-50%,-50%)scale(.22)}91%{opacity:.96;transform:translate(-50%,-50%)scale(.62)}to{opacity:0;transform:translate(-50%,-50%)scale(1.18)}}.monster-skill-telegraph,.monster-skill-projectile,.monster-skill-impact{z-index:var(--battle-overlay-depth,30);pointer-events:none;position:absolute}.monster-skill-ground{z-index:0;pointer-events:none;position:absolute}.monster-skill-burning-slam-telegraph{width:var(--burning-slam-diameter);height:calc(var(--burning-slam-diameter) * var(--burning-slam-vertical-radius-scale));transform:translate(-50%,-50%)}.burning-slam-telegraph-pulse,.burning-slam-telegraph-ring{border-radius:50%;display:block;position:absolute;inset:0}.burning-slam-telegraph-pulse{background:#7e231814;animation:.78s ease-in-out infinite alternate burningSlamTelegraphPulse}.burning-slam-telegraph-ring{width:100%;height:100%;overflow:visible}.burning-slam-telegraph-track,.burning-slam-telegraph-dashes{fill:none;vector-effect:non-scaling-stroke}.burning-slam-telegraph-track{stroke:#5b1b1285;stroke-width:5px}.burning-slam-telegraph-dashes{stroke:#e76843;stroke-width:3px;stroke-linecap:round;stroke-dasharray:7 5;filter:drop-shadow(0 1.5px #5b1b12b8);animation:1.15s linear infinite burningSlamTelegraphDashFlow}@keyframes burningSlamTelegraphPulse{0%{background-color:#7e23180e}to{background-color:#7e23181f}}@keyframes burningSlamTelegraphDashFlow{to{stroke-dashoffset:-24px}}.monster-skill-burning-slam-impact{width:1px;height:1px}.burning-slam-impact-core,.burning-slam-impact-wave,.burning-slam-impact-particle{pointer-events:none;display:block;position:absolute;top:0;left:0}.burning-slam-impact-core{background:#ffbd55;border:3px solid #8d2518;border-radius:52% 48% 55% 45%;width:38px;height:25px;animation:.48s cubic-bezier(.1,.78,.2,1) both burningSlamImpactCore;box-shadow:inset 0 -7px #ef592c}.burning-slam-impact-wave{border:5px solid #ed5a2e;border-radius:50%;width:66px;height:30px;animation:.48s ease-out both burningSlamImpactWave}.burning-slam-impact-particle{clip-path:polygon(50% 0,100% 72%,66% 100%,0 68%);background:#ff7a35;border:2px solid #8d2518;border-radius:60% 40% 58% 42%;width:9px;height:13px;animation:.48s cubic-bezier(.08,.72,.2,1) both burningSlamImpactParticle}.monster-skill-burning-slam-zone{width:var(--burning-slam-diameter);height:calc(var(--burning-slam-diameter) * var(--burning-slam-vertical-radius-scale));transform-origin:50%;will-change:transform}.monster-skill-burning-slam-zone,.ground-fire-vegetation-cover.is-covering{animation:burningSlamFireZoneGrow 1.38s cubic-bezier(.18, .7, .22, 1) var(--burning-slam-fire-zone-delay) both}.ground-fire-vegetation-cover.is-grounded{z-index:0;mix-blend-mode:multiply}@property --ground-fire-covered-radius{syntax:"<length>";inherits:false;initial-value:0}.ground-fire-vegetation-cover{z-index:0;pointer-events:none;position:absolute;inset:0}.ground-fire-vegetation-cover.is-covering{-webkit-mask-image:radial-gradient(ellipse var(--ground-fire-covered-radius) calc(var(--ground-fire-covered-radius) * var(--ground-fire-cover-vertical-scale)) at var(--ground-fire-cover-x) var(--ground-fire-cover-y), transparent calc(100% - 2px), #000 100%);mask-image:radial-gradient(ellipse var(--ground-fire-covered-radius) calc(var(--ground-fire-covered-radius) * var(--ground-fire-cover-vertical-scale)) at var(--ground-fire-cover-x) var(--ground-fire-cover-y), transparent calc(100% - 2px), #000 100%);animation-name:groundFireVegetationCover}@keyframes groundFireVegetationCover{0%{--ground-fire-covered-radius:calc(var(--ground-fire-cover-radius) * .045)}to{--ground-fire-covered-radius:var(--ground-fire-cover-radius)}}.burning-slam-fire-zone-core,.burning-slam-fire-zone-edge{border-radius:50%;display:block;position:absolute;inset:0}.burning-slam-fire-zone-core{background:#a92d1b;border:4px solid #8e2117;overflow:hidden;box-shadow:inset 0 0 0 7px #d44722,inset 0 0 18px #721812}.burning-slam-fire-zone-core:before,.burning-slam-fire-zone-core:after{content:"";border-radius:50%;display:block;position:absolute}.burning-slam-fire-zone-core:before{transform-origin:50%;background:radial-gradient(#f47a32 0 14%,#d84a24 30%,#b4311c 48%,#0000 62%);animation:1.12s ease-in-out infinite alternate burningSlamFireCoreSpread;inset:-8%}.burning-slam-fire-zone-core:after{background:#f06a2d;animation:.64s ease-in-out -.22s infinite alternate-reverse burningSlamFireCoreDrift;inset:34% 31% 22% 36%}.burning-slam-fire-zone-edge{border:5px solid #f06431}.burning-slam-fire-zone-edge i{width:13px;height:20px;transform:translate(-50%, -72%) scale(var(--fire-scale));transform-origin:50% 100%;clip-path:polygon(50% 0,72% 34%,92% 19%,84% 67%,100% 100%,0 100%,16% 65%,28% 31%);animation:burningSlamFireEdgeFlicker .46s ease-in-out var(--fire-delay) infinite alternate;background:linear-gradient(0deg,#c52b1a 0 45%,#f1652f 46% 75%,#ffd06a 76% 100%);border-radius:58% 42% 47% 53%;display:block;position:absolute}@keyframes burningSlamImpactCore{0%{opacity:0;transform:translate(-50%,-50%)scale(.16)rotate(-7deg)}32%{opacity:1;transform:translate(-50%,-50%)scale(1.18)rotate(3deg)}to{opacity:0;transform:translate(-50%,-50%)scale(.82)rotate(7deg)}}@keyframes burningSlamImpactWave{0%{opacity:.95;transform:translate(-50%,-50%)scale(.18)}to{opacity:0;transform:translate(-50%,-50%)scale(1.35)}}@keyframes burningSlamImpactParticle{0%{opacity:1;transform:translate(-50%,-50%)scale(.45)rotate(-12deg)}to{opacity:0;transform:translate(calc(-50% + var(--impact-x)), calc(-50% + var(--impact-y))) scale(.9) rotate(74deg)}}@keyframes burningSlamFireZoneGrow{0%{transform:translate(-50%,-50%)scale(.045)}to{transform:translate(-50%,-50%)scale(1)}}@keyframes burningSlamFireCoreSpread{0%{transform:translate(-4%,2%)scale(.72,.68)}to{transform:translate(5%,-3%)scale(1.12,1.06)}}@keyframes burningSlamFireCoreDrift{0%{transform:translate(-5%,3%)scale(.9,.88)rotate(-4deg)}to{transform:translate(7%,-4%)scale(1.12,1.08)rotate(5deg)}}@keyframes burningSlamFireEdgeFlicker{0%{transform:translate(-50%, -68%) scale(var(--fire-scale)) scaleY(.76) rotate(-6deg)}to{transform:translate(-50%, -88%) scale(var(--fire-scale)) scaleY(1.2) rotate(6deg)}}.monster-skill-impact{position:absolute}.monster-skill-telegraph{inset:0}.mud-toss-target-path{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.mud-toss-target-path path{fill:none;stroke:#ff5246e6;stroke-width:1px;stroke-linecap:round;stroke-dasharray:.7 4.8;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 1.2px #ff4b3e57);animation:.72s linear infinite mudTossDashMarch}.mud-toss-target-path .mud-toss-target-path-shadow{stroke:#4a08052e;stroke-width:3px;stroke-dasharray:.7 4.8}.mud-toss-held-mud,.monster-skill-projectile.monster-skill-mud-toss{width:var(--mud-width,28px);aspect-ratio:1.08;background:radial-gradient(circle at 34% 30%,#b48a4c 0 7%,#0000 8%),radial-gradient(circle at 68% 62%,#5c361a 0 10%,#0000 11%),radial-gradient(circle at 57% 35%,#8d5b2d 0 18%,#70431f 42%,#45250f 72%);border:2px solid #3f220cd1;border-radius:48% 56% 44% 59%;display:block;transform:translate(-50%,-50%)rotate(-8deg);box-shadow:inset 4px 4px 7px #ebbe6938,inset -5px -5px 8px #2611056b,0 3px 5px #190c036b}.mud-toss-held-mud{animation:.36s ease-in-out infinite alternate mudTossHeldBob;position:absolute}.mud-toss-target-x{filter:drop-shadow(0 2px #440502e0);width:28px;height:28px;animation:.18s cubic-bezier(.2,1.5,.5,1) both mudTossTargetPop;position:absolute;transform:translate(-50%,-50%)rotate(8deg)}.mud-toss-target-x:before,.mud-toss-target-x:after{content:"";background:linear-gradient(90deg,#a20c08,#ff4b42 45%,#c51610);border-radius:4px;width:6px;height:28px;position:absolute;top:0;left:12px}.mud-toss-target-x:before{transform:rotate(45deg)}.mud-toss-target-x:after{transform:rotate(-45deg)}.formation-charge-target-x{filter:drop-shadow(0 2px #694009)}.formation-charge-target-x:before,.formation-charge-target-x:after{background:linear-gradient(90deg,#bd780c,#ffda55 45%,#e8a51b)}.monster-skill-projectile.monster-skill-mud-toss{animation:mudTossProjectileFlight var(--mud-flight-duration,1s) linear forwards}.monster-skill-mud-toss-impact{width:1px;height:1px}.mud-toss-impact-core{filter:drop-shadow(0 3px 3px #1c0d048c);background:radial-gradient(at 42% 44%,#bd8b49eb 0 18%,#0000 20%),radial-gradient(at 58% 55%,#845125 0 39%,#4f2b12 62%,#0000 65%);border-radius:48% 54% 46% 58%;width:34px;height:28px;animation:.42s cubic-bezier(.12,.72,.2,1) both mudTossImpactBurst;display:block;position:absolute;top:0;left:0}.mud-toss-impact-particle{background:#75451f;border-radius:54% 42% 58% 46%;width:6px;height:5px;animation:.46s cubic-bezier(.08,.68,.28,1) both mudTossImpactParticle;display:block;position:absolute;top:0;left:0;box-shadow:inset 2px 1px 2px #dcaa5c52,0 2px 2px #200f0473}@keyframes mudTossDashMarch{to{stroke-dashoffset:-5.5px}}@keyframes mudTossHeldBob{0%{transform:translate(-50%,-50%)rotate(-9deg)scale(.94)}to{transform:translate(-50%,calc(-50% - 3px))rotate(5deg)scale(1.03)}}@keyframes mudTossTargetPop{0%{opacity:0;transform:translate(-50%,-50%)rotate(8deg)scale(.45)}to{opacity:1;transform:translate(-50%,-50%)rotate(8deg)scale(1)}}@keyframes mudTossProjectileFlight{0%{left:var(--mud-source-left);top:var(--mud-source-top);transform:translate(-50%,-50%)rotate(-8deg)scale(.94)}to{left:var(--mud-target-left);top:var(--mud-target-top);transform:translate(-50%,-50%)rotate(352deg)scale(.96)}}@keyframes mudTossImpactBurst{0%{opacity:.95;transform:translate(-50%,-50%)scale(.2)}42%{opacity:1;transform:translate(-50%,-50%)scale(1.14)}to{opacity:0;transform:translate(-50%,-50%)scale(.86)}}@keyframes mudTossImpactParticle{0%{opacity:1;transform:translate(-50%,-50%)scale(.65)rotate(0)}78%{opacity:.95}to{opacity:0;transform:translate(calc(-50% + var(--mud-particle-x)), calc(-50% + var(--mud-particle-y))) scale(.92) rotate(165deg)}}.formation-charge-target-marker{filter:drop-shadow(0 2px #53110dc7);width:38px;height:27px;animation:.2s cubic-bezier(.2,1.55,.42,1) both formationChargeTargetPop,.5s ease-in-out .2s infinite alternate formationChargeTargetBob;display:block;position:absolute;transform:translate(-50%,-50%)}.formation-charge-target-ring{border:4px solid #ef4c3e;border-radius:52% 48% 54% 46%;display:block;position:absolute;inset:2px 1px 3px;transform:rotate(-4deg);box-shadow:inset 0 0 0 2px #ffc789c2,0 0 0 2px #8b231b}.formation-charge-target-ring:after{content:"";border-radius:inherit;border:2px dashed #ffe7b8eb;animation:.48s ease-in-out infinite alternate formationChargeTargetDashPulse;position:absolute;inset:3px}.formation-charge-target-notch{background:#ef4c3e;border:3px solid #8b231b;width:8px;height:7px;display:block;position:absolute;top:10px;transform:rotate(45deg)}.formation-charge-target-notch-left{left:-3px}.formation-charge-target-notch-right{right:-3px}.monster-skill-formation-charge-trail{z-index:0;pointer-events:none;transform-origin:0 0;width:1px;height:1px;display:block;position:absolute;bottom:3px;left:0}.monster-skill-formation-charge-trail[data-charge-facing=east]{transform:scaleX(-1)}.monster-skill-formation-charge-trail[data-charge-facing=west]{transform:scaleX(1)}.formation-charge-dust-puff,.formation-charge-speed-streak,.formation-charge-afterimage{pointer-events:none;display:block;position:absolute}.formation-charge-afterimage{left:var(--charge-afterimage-x);z-index:0;width:0;height:0;bottom:0}.formation-charge-dust-puff{left:var(--charge-dust-x);top:var(--charge-dust-y);filter:blur(.8px);width:28px;height:19px;animation:formationChargeDustRoll var(--charge-dust-duration,.9s) ease-out var(--charge-dust-delay) infinite;background:radial-gradient(at 36% 38%,#e8d2a9cc,#d1b38373 38%,#0000 72%),radial-gradient(at 66% 62%,#bea07299,#0000 68%);border-radius:55% 45% 58% 42%}.formation-charge-speed-streak{left:var(--charge-streak-x);top:var(--charge-streak-y);width:var(--charge-streak-width);opacity:0;height:5px;animation:formationChargeStreak .54s ease-out var(--charge-streak-delay) infinite;border:2px solid #87523785;border-width:2px 0;border-radius:50%}.monster-skill-formation-charge-actor{isolation:isolate}.monster-skill-formation-charge-actor>.monster-spine-battle-host{z-index:2}@keyframes formationChargeTargetPop{0%{opacity:0;transform:translate(-50%,-42%)scale(.42)rotate(-8deg)}to{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}}@keyframes formationChargeTargetBob{0%{margin-top:0}to{margin-top:-4px}}@keyframes formationChargeTargetDashPulse{0%{opacity:.55}to{opacity:1}}@keyframes formationChargeDustRoll{0%{opacity:0;transform:translateY(3px)scale(.45)rotate(0)}18%{opacity:.34}55%{opacity:.2}to{opacity:0;transform:translate(30px, -11px) scale(var(--charge-dust-scale)) rotate(22deg)}}@keyframes formationChargeStreak{0%{opacity:0;transform:translate(-5px)scaleX(.35)}32%{opacity:.72}to{opacity:0;transform:translate(24px)scaleX(1)}}
