:root{--bg:#0a0c0d;--panel:#111518;--panel-soft:#171d20;--line:#283137;--text:#d7d0c4;--text-strong:#fff4df;--muted:#8f9a9e;--ember:#f0743e;--gold:#f2c94c;--teal:#51b4a6;--shadow:0 18px 44px #00000047;--ui-iron:#070809;--ui-iron-2:#101215;--ui-brass:#9b6b27;--ui-brass-hi:#f0c36a;--ui-blood:#b33a2d;--ui-ward:#2c78a6;--ui-curse:#7754a6;--ui-disabled:#4e5658;--font-sans:"Avenir Next", "Gill Sans", "Segoe UI", "Noto Sans SC", sans-serif;--font-title:"Optima", "Avenir Next Condensed", "Noto Serif SC", "Songti SC", serif;--font-number:"DIN Alternate", "Avenir Next Condensed", "SFMono-Regular", monospace;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;color:var(--text);font:16px/1.45 var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(90deg,#ffffff09 1px,#0000 1px) 0 0/46px 46px,linear-gradient(#0d1113 0%,#070808 100%)}*{box-sizing:border-box}html{width:100%;min-width:320px;height:100%;overflow:hidden}body{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}#root{width:100%;height:100%;overflow:hidden}button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}::selection{background:#f0743e57}.app-shell{grid-template-rows:auto minmax(0,1fr) auto;gap:10px;width:100%;height:100svh;margin:0 auto;padding:12px;display:grid;overflow:hidden}.hero-select-shell{background:linear-gradient(90deg,#ffffff09 1px,#0000 1px) 0 0/46px 46px,linear-gradient(#101316 0%,#050606 100%);width:100%;height:100svh;padding:12px;overflow:hidden}.hero-select-stage{--hero-accent:var(--ember);width:100%;height:100%;box-shadow:var(--shadow);isolation:isolate;background:#070808;border:1px solid #c8860a47;border-radius:8px;grid-template-rows:auto minmax(0,1fr);gap:12px;display:grid;position:relative;overflow:hidden}.hero-select-bg{z-index:-2;filter:saturate(.9)contrast(1.08);background:linear-gradient(90deg,#050606cc,#05060647 44%,#050606d1),linear-gradient(#0a0c0e1a,#05050594),url(/assets/game/bg-black-forge-mines-loop.webp) 50%/cover no-repeat;position:absolute;inset:0}.hero-select-stage:after{content:"";z-index:-1;opacity:.7;pointer-events:none;background:linear-gradient(#0000,#000000c2),url(/assets/game/lane-ground-black-forge.png) bottom/100% repeat-x;height:38%;position:absolute;inset:auto 0 0}.hero-select-header{justify-content:space-between;align-items:center;gap:14px;min-height:64px;padding:14px 18px 0;display:flex}.hero-select-status{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#090b0cc2;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;align-items:flex-end;gap:2px;min-width:180px;padding:10px 14px;display:flex}.hero-select-status span{color:var(--muted);font-size:.74rem}.hero-select-status strong{color:var(--text-strong);font-size:.9rem}.hero-select-main{grid-template-columns:minmax(230px,300px) minmax(0,1fr) minmax(220px,280px);gap:14px;min-height:0;padding:0 18px 18px;display:grid}.hero-roster,.hero-loadout-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#080a0bd6,#080a0b94);border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;min-height:0;display:flex;box-shadow:0 18px 44px #00000047}.hero-roster{gap:8px;padding:10px;overflow:hidden}.hero-choice-card{--hero-accent:var(--ember);width:100%;min-height:86px;color:var(--text);text-align:left;cursor:pointer;background:#101416b8;border:1px solid #ffffff1a;border-radius:8px;grid-template-rows:auto auto;grid-template-columns:58px 1fr;align-items:center;gap:8px 10px;padding:9px;display:grid}.hero-choice-card.active{border-color:color-mix(in srgb, var(--hero-accent) 78%, white 6%);background:linear-gradient(90deg, color-mix(in srgb, var(--hero-accent) 18%, transparent), #101416cc);box-shadow:inset 3px 0 0 var(--hero-accent), 0 10px 24px #0000003d}.hero-choice-card.pending-runtime:not(.active){background:linear-gradient(90deg, color-mix(in srgb, var(--hero-accent) 8%, transparent), #101416b8)}.hero-choice-thumb{border:1px solid color-mix(in srgb, var(--hero-accent) 42%, transparent);background:radial-gradient(circle at 50% 58%, #ffeecd29, transparent 42%), radial-gradient(circle at 50% 70%, color-mix(in srgb, var(--hero-accent) 30%, transparent), #00000094);border-radius:7px;grid-row:1/3;width:58px;height:68px;position:relative;overflow:hidden}.hero-choice-thumb-art,.hero-preview-art{object-fit:contain;object-position:center bottom;filter:brightness(1.45)contrast(1.08)saturate(1.08)drop-shadow(0 12px 22px #0000007a);width:100%;height:100%;display:block}.hero-choice-thumb-art.sheet{object-fit:fill;width:520%;max-width:none;transform:translate(-2%)}.hero-choice-thumb-art.image{object-fit:cover;object-position:center 38%}.hero-choice-thumb-art.atlas{object-fit:cover;object-position:left top}.hero-choice-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.hero-choice-copy strong{color:var(--text-strong);font-size:1rem;line-height:1.1}.hero-choice-copy span,.hero-choice-state{color:var(--muted);font-size:.78rem;line-height:1.2}.hero-choice-state{border:1px solid color-mix(in srgb, var(--hero-accent) 34%, transparent);color:color-mix(in srgb, var(--hero-accent) 72%, #fff 28%);background:#00000038;border-radius:999px;justify-self:start;padding:2px 8px}.hero-preview-panel{background:linear-gradient(#0708092e,#0708098a);border:1px solid #ffffff1a;border-radius:8px;min-height:0;position:relative;overflow:hidden}.hero-preview-panel:before{content:"";background:radial-gradient(ellipse, color-mix(in srgb, var(--hero-accent) 46%, transparent), transparent 66%);filter:blur(6px);border-radius:50%;height:16%;position:absolute;inset:auto 8% 7%}.hero-preview-panel:after{content:"";z-index:0;filter:blur(18px);pointer-events:none;background:radial-gradient(#ffe6be21,#0000 62%);border-radius:50%;position:absolute;inset:10% 18% 25% 30%}.hero-preview-art-wrap{z-index:1;justify-content:center;align-items:flex-end;display:flex;position:absolute;inset:3% 7% 5% 22%}.hero-preview-art{z-index:1;width:min(58vh,44vw);max-width:560px;height:min(58vh,44vw);max-height:560px;position:relative}.hero-preview-art.sheet{object-fit:fill;align-self:flex-end;width:min(82vh,52vw);max-width:none;height:min(48vh,31vw);min-height:320px;transform:translate(-2%)}.hero-preview-art.image{object-fit:contain;object-position:center bottom}.hero-preview-art.atlas{object-fit:cover;object-position:left top}.hero-preview-copy{z-index:2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#080a0bd6,#080a0b94);border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;gap:8px;width:min(360px,42%);padding:14px;display:flex;position:absolute;bottom:22px;left:22px}.hero-preview-kicker{border:1px solid color-mix(in srgb, var(--hero-accent) 45%, transparent);width:fit-content;color:color-mix(in srgb, var(--hero-accent) 72%, #fff 28%);border-radius:999px;padding:3px 8px;font-size:.74rem;font-weight:800}.hero-preview-copy h1{color:var(--text-strong);letter-spacing:0;font-size:clamp(2rem,4vw,4.2rem);line-height:.96}.hero-preview-copy strong{color:#ffd18a;font-size:clamp(1rem,1.4vw,1.3rem)}.hero-preview-copy p{max-width:28em;color:var(--text);font-size:.92rem}.hero-traits{flex-wrap:wrap;gap:6px;display:flex}.hero-traits span{color:var(--text-strong);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:999px;padding:4px 8px;font-size:.76rem}.hero-loadout-panel{justify-content:space-between;gap:12px;padding:12px}.hero-stat-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.hero-stat-chip{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;align-items:center;gap:3px;padding:10px 6px;display:flex}.hero-stat-chip span{color:var(--muted);font-size:.74rem}.hero-stat-chip strong{color:color-mix(in srgb, var(--hero-accent) 68%, #fff 32%);font-size:1.5rem;line-height:1}.hero-start-copy{background:#00000038;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;gap:6px;padding:12px;display:flex}.hero-start-copy span{color:var(--muted);font-size:.78rem}.hero-start-copy strong{color:var(--text-strong);font-size:1rem;line-height:1.25}.hero-start-button{border:1px solid color-mix(in srgb, var(--hero-accent) 68%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--hero-accent) 42%, #171d20), color-mix(in srgb, var(--hero-accent) 22%, #0d1113));width:100%;min-height:48px;color:var(--text-strong);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;font-weight:900;display:inline-flex}.hero-start-button:disabled{cursor:not-allowed;color:var(--muted);background:#ffffff0f;border-color:#ffffff1a}.topbar,.game-grid,.stage-panel{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow)}.topbar{min-height:52px;box-shadow:0 2px 0 #c8860a1f, var(--shadow);background:linear-gradient(#140e08fa,#0c0a08fa);border:1px solid #c8860a40;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:6px 14px;display:grid}.game-badge{align-items:center;gap:10px;display:flex}.game-badge-button{color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.game-badge-button:hover .game-badge-icon{filter:drop-shadow(0 0 12px #ffd18a80)}.game-badge-icon{object-fit:contain;filter:drop-shadow(0 0 8px #f0743e6b);width:30px;height:30px;display:block}.game-badge-sub{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.62rem;font-weight:800;display:block}.game-badge-title{color:var(--text-strong);letter-spacing:.04em;font-size:1rem;font-weight:900;line-height:1.1;display:block}.topbar-resources{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.res-pill{color:var(--text-strong);white-space:nowrap;background:#ffffff0a;border:1px solid #ffffff14;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:.82rem;font-weight:700;display:flex}.res-icon{object-fit:contain;filter:drop-shadow(0 0 5px #f0743e38);width:18px;height:18px;display:block}.res-val{font-variant-numeric:tabular-nums;color:#ffd18a}.res-pill-kills .res-val{color:#ff7070}h1,h2,h3,p{margin:0}.topbar-actions,.loot-actions,.panel-title,.footer-strip{align-items:center;display:flex}.topbar-actions{gap:10px}button{color:inherit;font:inherit}.icon-button,.primary-skill,.loot-actions button{border:1px solid color-mix(in srgb, var(--ember) 45%, transparent);background:color-mix(in srgb, var(--ember) 18%, var(--panel));min-height:38px;color:var(--text-strong);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:8px;transition:transform .18s,border-color .18s,background .18s;display:inline-flex}.icon-button{padding:0 14px}.icon-button:hover,.primary-skill:hover,.loot-actions button:hover{border-color:var(--ember);transform:translateY(-1px)}.icon-button.subtle{border-color:var(--line);background:var(--panel-soft);color:var(--muted)}.game-grid{background:color-mix(in srgb, var(--panel) 74%, #080a0c);border:1px solid var(--line);min-height:0;box-shadow:var(--shadow);border-radius:8px;grid-template-rows:1fr;grid-template-columns:minmax(0,1fr);gap:0;padding:8px;display:grid;overflow:hidden}.stage-panel{isolation:isolate;background:#070808;border:none;border-radius:8px;grid-area:1/1;width:100%;height:100%;min-height:0;position:relative;overflow:hidden}.stage-panel:before{content:"";z-index:0;background-image:linear-gradient(180deg, #0a0c0e2e, #0707085c), var(--stage-bg-image,url(/assets/game/bg-black-forge-mines-loop.webp));background-repeat:no-repeat,repeat-x;background-size:100% 100%, var(--stage-bg-size,4096px 100%);will-change:background-position;background-position:0 0,0;width:100%;animation:24s linear infinite paused stageBgLoop;position:absolute;inset:0}.game-right-panel{display:none}.stage-travel:before{animation-play-state:running}.stage-panel:after{content:"";z-index:1;pointer-events:none;background:radial-gradient(at 24% 74%,#00000047,#0000 28%),radial-gradient(at 72% 74%,#00000057,#0000 24%),linear-gradient(90deg,#00000057,#0000 18% 76%,#0000006b);position:absolute;inset:0}.combat-hud{z-index:8;pointer-events:none;grid-template-columns:minmax(170px,230px) 1fr minmax(160px,230px);align-items:start;gap:12px;display:grid;position:absolute;inset:14px 14px auto}.hero-hud,.stage-objective,.loot-toast{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#090b0cd6,#090b0c8f);border:1px solid #ffffff1f;border-radius:8px;box-shadow:0 10px 28px #00000061}.hero-hud{grid-template-columns:46px 1fr;gap:10px;padding:9px;display:grid}.hero-hud-portrait{background:radial-gradient(circle at 50% 22%, #fff4df42, transparent 18%), var(--hero-portrait-image,url(/assets/game/hero-portrait.png)) center / cover no-repeat, #141719;border:1px solid #f0743e6b;border-radius:50%;width:46px;height:46px}.hero-hud strong,.stage-objective strong,.loot-toast strong{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;line-height:1.1;display:block;overflow:hidden}.hero-hud span,.stage-objective span,.loot-toast span{color:var(--muted);font-size:.72rem}.hero-hud-bar-wrap{align-items:center;gap:6px;margin-top:5px;display:flex}.hero-hud-bar{background:#ffffff1a;border-radius:999px;flex:1;height:8px;overflow:hidden}.hero-life-num{color:#ffd18a;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.62rem;font-weight:700}.hero-hud-bar b{border-radius:inherit;background:linear-gradient(90deg,#7f1d1d,#df4b3f,#f0b65f);height:100%;display:block}.stage-objective{text-align:center;opacity:.82;transform-origin:50% 0;justify-self:center;min-width:174px;max-width:min(34vw,340px);padding:6px 12px;transform:translateY(-4px)scale(.92)}.stage-objective:hover{opacity:1;transform:translateY(0)scale(1)}.stage-objective strong{font-size:clamp(.92rem,1.5vw,1.12rem)}.stage-objective .zone-debuff-badge{display:none}.skill-wheel{pointer-events:auto;z-index:9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#080a0cb8,#080a0c6b);border:1px solid #ffd28224;border-radius:8px;grid-template-columns:repeat(2,58px);gap:8px;padding:7px;display:grid;position:absolute;bottom:86px;right:18px;box-shadow:0 10px 28px #00000061}.skill-orb{border:1px solid color-mix(in srgb, var(--skill-color,#e05a3a) 42%, #ffffff1f);background:conic-gradient(var(--skill-color,#e05a3a) calc(var(--skill-progress,0) * 1turn), #ffffff14 0), linear-gradient(180deg, #181411f2, #08090af5);width:58px;height:64px;box-shadow:inset 0 0 0 2px #000000b8, inset 0 0 18px color-mix(in srgb, var(--skill-color,#e05a3a) 14%, transparent), 0 8px 22px #0000006b;color:var(--text-strong);cursor:default;border-radius:8px;place-items:center;padding:4px 4px 17px;display:grid;position:relative;overflow:hidden}.skill-orb:before{content:"";z-index:0;background:#07090b;border-radius:6px;position:absolute;inset:3px}.skill-orb-ready{border-color:color-mix(in srgb, var(--skill-color,#e05a3a) 70%, white);box-shadow:inset 0 0 0 2px #000000ad, 0 0 18px color-mix(in srgb, var(--skill-color,#e05a3a) 38%, transparent), 0 8px 22px #0000006b}.skill-orb-status{z-index:2;color:color-mix(in srgb, var(--skill-color,#e05a3a) 72%, #fff);text-align:center;font-variant-numeric:tabular-nums;background:#000000a3;border-radius:4px;padding:2px 0;font-size:.56rem;font-weight:900;line-height:1;display:block;position:absolute;bottom:4px;left:4px;right:4px}.loot-toast{justify-self:end;width:100%;padding:9px 12px}.lane-sky{pointer-events:none;z-index:2;will-change:background-position;background-repeat:repeat-x;background-size:auto 100%;animation:24s linear infinite paused skyMarch;position:absolute;inset:0 0 30%;overflow:hidden}.stage-travel .lane-sky{animation-play-state:running}.moon,.cloud{display:none}.cloud-a{top:82px;left:8%}.cloud-b{animation-duration:24s;top:150px;left:38%}.lane{z-index:2;background-color:#0000;background-image:radial-gradient(at 32% 68%,#00000061,#0000 24%),radial-gradient(at 73% 68%,#00000075,#0000 22%),linear-gradient(#0000 0%,#05050542 48%,#03030380 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;height:66%;animation:none;position:absolute;inset:auto 0 0}.stage-travel .lane{animation:none}.lane:before,.lane:after{content:"";pointer-events:none;z-index:0;position:absolute;left:-20%;right:-20%}.lane:before{background:var(--stage-ground-image,url(/assets/game/lane-ground-black-forge.png)) 0 50% / auto 100% repeat-x;height:64px;opacity:var(--stage-ground-opacity,.68);animation:none;bottom:12px}.stage-travel .lane:before{animation:none}.lane:after{opacity:.7;background:radial-gradient(at 20% 88%,#00000075,#0000 18%),radial-gradient(at 72% 86%,#00000085,#0000 18%);height:58px;bottom:18px}.road-dust{filter:blur(6px);opacity:.55;z-index:1;background:linear-gradient(90deg,#0000,#b87e4838,#0000);border-radius:999px;width:38%;height:22px;animation:2.6s linear infinite paused dustTrail;position:absolute;right:-18%}.stage-travel .road-dust{animation-play-state:paused}.stage-combat .road-dust{opacity:0}.stage-foreground{z-index:1;pointer-events:none;background:var(--stage-foreground-image) 0 100% / auto 100% repeat-x;height:20%;opacity:min(var(--stage-foreground-opacity,.62), .46);mix-blend-mode:normal;animation:18s linear infinite paused foregroundMarch;position:absolute;bottom:0;left:-10%;right:-10%}.stage-travel .stage-foreground{animation-play-state:running}.stage-combat .stage-foreground{animation-play-state:paused}.road-dust-a{bottom:116px}.road-dust-b{opacity:.32;animation-delay:1.2s;bottom:74px}.rail{display:none}.rail-a{bottom:110px}.rail-b{bottom:78px}.hero-sprite{z-index:4;transform-origin:0 0;width:0;height:0;transition:opacity .18s;animation:1.8s ease-in-out infinite heroPointIdle;position:absolute;bottom:78px;left:18%}.stage-travel .hero-sprite{animation:.64s steps(4,end) infinite heroPointRun}@keyframes sweepLunge{0%{transform:translate(0)scaleX(1)}35%{transform:translate(28px)scaleX(1.08)}70%{transform:translate(14px)scaleX(1.03)}to{transform:translate(0)scaleX(1)}}@keyframes executeLeap{0%{transform:translate(0)scaleX(1)}30%{transform:translate(55px,-10px)scaleX(1.12)}60%{transform:translate(40px)scaleX(1.05)}to{transform:translate(0)scaleX(1)}}@keyframes oathRetreat{0%{filter:none;transform:translate(0)}25%{filter:brightness(1.8)drop-shadow(0 0 10px #4fa3ff);transform:translate(-18px)}60%{filter:brightness(1.3)drop-shadow(0 0 5px #4fa3ff);transform:translate(-8px)}to{filter:none;transform:translate(0)}}@keyframes cleaveLunge{0%{transform:translate(0)}30%{transform:translate(12px)scaleX(1.04)}to{transform:translate(0)scaleX(1)}}.hero-sprite.skill-cleave{animation:.35s cleaveLunge}.hero-sprite.skill-lacerating_sweep{animation:.45s sweepLunge}.hero-sprite.skill-execute{animation:.5s executeLeap}.hero-sprite.skill-iron_oath{animation:.55s oathRetreat}.stage-combat .hero-sprite{animation:1.8s ease-in-out infinite heroPointIdle}.hero-frame-viewport img,.enemy-frame-viewport img,.slash,.loot-beam{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.hero-frame-viewport{--hero-frame-height:clamp(200px, 27vh, 248px);width:var(--hero-frame-height);height:var(--hero-frame-height);filter:drop-shadow(0 22px 18px #0000009e)drop-shadow(0 0 16px #b1271b29);transform:translateX(-50%) scale(var(--hero-scale,1));transform-origin:50% 100%;animation:1.8s ease-in-out infinite heroBodyReady;position:absolute;bottom:0;left:0;overflow:visible}.hero-frame-viewport:before,.enemy-frame-viewport:before{content:"";z-index:0;filter:blur(3px);pointer-events:none;background:radial-gradient(#00000094 0 22%,#00000057 48%,#0000 72%);border-radius:999px;width:58%;height:9%;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.hero-frame-viewport img,.hero-action-sheet,.hero-frame-viewport .hero-attack-frame,.enemy-frame-viewport img,.enemy-frame-viewport .enemy-static-sprite,.enemy-frame-viewport .enemy-walk-sheet,.enemy-frame-viewport .enemy-attack-sheet{z-index:1;position:relative}.stage-combat .hero-frame-viewport{animation:none;overflow:visible}.stage-travel .hero-frame-viewport{overflow:visible}.hero-action-sheet{background-image:var(--hero-sheet-image);pointer-events:none;-webkit-user-select:none;user-select:none;background-position:0;background-repeat:no-repeat;background-size:400% 100%;width:100%;height:100%;animation:.72s step-end infinite walkSheet}.hero-sheet-attack{animation-duration:.9s}.hero-frame-viewport .hero-attack-frame{object-fit:contain;object-position:50% 100%;opacity:1;transform-origin:50% 100%;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;max-width:none;height:100%;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.hero-frame-viewport .hero-attack-frame-0,.hero-frame-viewport .hero-attack-frame-1,.hero-frame-viewport .hero-attack-frame-2,.hero-frame-viewport .hero-attack-frame-3{left:50%}.enemy-sprite{z-index:3;transform-origin:0 0;width:0;height:0;animation:3.1s ease-in-out infinite enemyPointPress;position:absolute;bottom:78px;left:68%}.stage-travel .enemy-sprite{animation:.72s ease-in-out infinite enemyTravelStep}.stage-combat .enemy-sprite{animation:.9s ease-in-out infinite enemyThreat}.stage-combat .enemy-sprite.enemy-sheet-beast{animation:.65s ease-in-out infinite enemyThreatFast}.stage-combat .enemy-sprite.enemy-sheet-brute{animation:1.2s ease-in-out infinite enemyThreatSlow}.stage-combat .enemy-sprite.enemy-rank-boss{animation:1.8s ease-in-out infinite bossThreat}.stage-combat .enemy-sprite.is-attacking{animation-name:enemyAttackLunge;animation-duration:.62s;animation-timing-function:cubic-bezier(.22,.74,.28,1);animation-iteration-count:infinite}.stage-combat .enemy-sprite.is-attacking:before,.stage-combat .enemy-sprite.is-attacking:after{content:"";pointer-events:none;z-index:6;position:absolute}.stage-combat .enemy-sprite.is-attacking:before{filter:blur(.2px)drop-shadow(0 0 8px #ff6b2ebd);opacity:0;transform-origin:100%;background:radial-gradient(circle at 18% 52%,#ffe78ef2 0 5%,#0000 18%),linear-gradient(105deg,#0000 0 8%,#ffd266eb 12%,#eb4922bd 43%,#0000 78%);border-radius:999px;width:clamp(92px,8.6vw,132px);height:clamp(38px,4.6vw,68px);animation:.62s steps(2,end) infinite enemyAttackSlashFx;bottom:clamp(132px,17vw,236px);left:clamp(-116px,-8.6vw,-72px);transform:rotate(-10deg)scaleX(.72)}.stage-combat .enemy-sprite.is-attacking:after{background:radial-gradient(circle, #ffeba4eb 0 12%, #ff7b2ba8 20%, transparent 58%), conic-gradient(from 24deg, transparent 0 12%, #ffbf5ae0 14% 18%, transparent 20% 36%, #e73e23cc 39% 43%, transparent 46%);clip-path:polygon(50% 0,64% 34%,100% 42%,68% 58%,76% 100%,50% 70%,20% 100%,30% 58%,0 42%,36% 34%);opacity:0;width:clamp(38px,3.8vw,62px);height:clamp(34px,3.8vw,58px);animation:.62s steps(2,end) infinite enemyImpactSparkFx;bottom:clamp(112px,14vw,198px);left:clamp(-54px,-3.7vw,-34px);transform:scale(.62)}.stage-combat .enemy-sprite.enemy-sheet-beast.is-attacking:before{bottom:clamp(86px,11vw,154px);transform:rotate(3deg)scaleX(.78)}.stage-combat .enemy-sprite.enemy-sheet-beast.is-attacking:after{bottom:clamp(78px,9.8vw,136px)}.stage-combat .enemy-sprite.is-entering{z-index:2;animation:2.4s linear both enemyEnterFromRight}@keyframes enemyThreat{0%,to{transform:translate(0)scaleX(1)scaleY(1)}55%{transform:translate(-7px)scaleX(1.04)scaleY(.97)}75%{transform:translate(-4px)}}@keyframes enemyThreatFast{0%,to{transform:translate(0)scaleX(1)}45%{transform:translate(-10px)scaleX(1.06)scaleY(.95)}}@keyframes enemyThreatSlow{0%,to{transform:translate(0)scaleX(1)scaleY(1)}60%{transform:translate(-5px)scaleX(1.03)scaleY(.98)}}@keyframes bossThreat{0%,to{filter:none;transform:translate(0)scale(1)}50%{filter:drop-shadow(0 0 8px #c8000080);transform:translate(-12px)scaleX(1.05)scaleY(.96)}}@keyframes enemyEnterFromRight{0%{opacity:0;transform:translate(46vw)translateY(0)}8%{opacity:1}50%{transform:translate(23vw)translateY(-3px)}to{opacity:1;transform:translate(0)translateY(0)}}@keyframes enemyAttackLunge{0%,to{transform:translate(0)scaleX(1)scaleY(1)}42%{transform:translate(-18px)scaleX(1.08)scaleY(.96)}64%{transform:translate(-8px)scaleX(1.03)scaleY(.98)}}@keyframes enemyAttackSlashFx{0%,32%{opacity:0;transform:translate(18px)rotate(-10deg)scaleX(.42)}42%{opacity:.95;transform:translate(-4px)rotate(-10deg)scaleX(1)}68%{opacity:.42;transform:translate(-14px)rotate(-10deg)scaleX(1.08)}to{opacity:0;transform:translate(-22px)rotate(-10deg)scaleX(1.12)}}@keyframes enemyImpactSparkFx{0%,40%{opacity:0;transform:scale(.42)rotate(0)}48%{opacity:.95;transform:scale(1.05)rotate(12deg)}72%{opacity:.35;transform:scale(.88)rotate(28deg)}to{opacity:0;transform:scale(.64)rotate(40deg)}}.enemy-frame-viewport{filter:drop-shadow(0 20px 18px #000000ad)drop-shadow(0 0 12px #f0743e1f);width:clamp(168px,17vw,248px);height:clamp(168px,17vw,248px);transform:translateX(-50%) scale(var(--enemy-scale,1.18));transform-origin:50% 100%;position:absolute;bottom:0;left:0;overflow:hidden}.enemy-slot-1 .enemy-frame-viewport{transform:translateX(-50%) translateY(4px) scale(calc(var(--enemy-scale,1) * .97))}.enemy-slot-2 .enemy-frame-viewport{transform:translateX(-50%) translateY(9px) scale(calc(var(--enemy-scale,1) * .93))}.enemy-slot-3 .enemy-frame-viewport{transform:translateX(-50%) translateY(14px) scale(calc(var(--enemy-scale,1) * .89))}.enemy-slot-2,.enemy-slot-3{opacity:.96}.enemy-frame-viewport .enemy-static-sprite{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;max-width:none;height:100%;display:block}.enemy-frame-viewport .enemy-walk-sheet,.enemy-frame-viewport .enemy-attack-sheet{object-fit:fill;pointer-events:none;-webkit-user-select:none;user-select:none;width:400%;max-width:none;height:100%;display:block}.enemy-frame-viewport .enemy-attack-sheet-2{width:200%}.stage-travel .enemy-frame-viewport{overflow:hidden}.enemy-healthbar{z-index:5;background:#140808db;border:1px solid #000000b3;border-radius:3px;width:clamp(120px,15vw,200px);height:6px;position:absolute;bottom:clamp(178px,22vw,314px);left:0;overflow:hidden;transform:translate(-50%);box-shadow:0 0 6px #000000a6}.enemy-healthbar span{background:linear-gradient(90deg,#f33 0%,#f80 40%,#4c4 80%) 0 0/200% 100%;background-position-x:var(--hp-pos,100%);border-radius:999px;height:100%;transition:width .3s,background-color .5s;display:block}.enemy-boss .enemy-healthbar{width:clamp(180px,22vw,300px);height:8px;bottom:clamp(258px,31vw,446px)}.enemy-crown{color:#ffd18a;letter-spacing:.08em;background:#080a0cd6;border:1px solid #ff8a3db8;border-radius:4px;padding:3px 7px;font-size:.62rem;font-weight:900;position:absolute;bottom:clamp(158px,19vw,276px);right:-58px}.enemy-boss .enemy-sprite{bottom:62px}.enemy-boss .enemy-frame-viewport{width:clamp(190px,23vw,330px);height:clamp(210px,26vw,370px)}.enemy-boss .enemy-crown{bottom:clamp(238px,29vw,410px);right:-72px}.enemy-trait-badge{color:#d9a6ff;letter-spacing:.06em;white-space:nowrap;background:#140818c7;border:1px solid #b450dc8c;border-radius:3px;padding:2px 6px;font-size:.56rem;font-weight:800;position:absolute;bottom:clamp(140px,16.5vw,240px);right:-58px}.enemy-boss .enemy-trait-badge{bottom:clamp(212px,26vw,370px);right:-72px}.loot-beam{filter:drop-shadow(0 0 22px #f2c94c7a);opacity:.86;z-index:2;width:92px;height:220px;animation:.9s ease-out infinite beamPulse;position:absolute;bottom:82px;right:27%}.loot-beam-wrap{pointer-events:none;position:absolute;inset:0}.loot-beam-wrap .loot-beam{filter:drop-shadow(0 0 22px var(--rarity)) hue-rotate(0deg);mix-blend-mode:screen}.loot-beam-wrap.rarity-normal .loot-beam{opacity:.4}.loot-beam-wrap.rarity-magic .loot-beam{filter:drop-shadow(0 0 24px #58a6ff)drop-shadow(0 0 8px #58a6ff)}.loot-beam-wrap.rarity-rare .loot-beam{filter:drop-shadow(0 0 28px #f2c94c)drop-shadow(0 0 12px #f2c94c)}.loot-beam-wrap.rarity-epic .loot-beam{filter:drop-shadow(0 0 36px #b980ff)drop-shadow(0 0 14px #b980ff);animation:.7s ease-out infinite beamPulse}.loot-beam-wrap.rarity-legendary .loot-beam{filter:drop-shadow(0 0 44px #ff8a3d)drop-shadow(0 0 18px #ffb347);animation:.5s ease-out infinite beamPulse}.loot-pop-ring{border:3px solid var(--rarity);opacity:0;z-index:2;border-radius:50%;width:100px;height:100px;animation:.8s ease-out forwards lootPopRing;position:absolute;bottom:70px;right:calc(27% - 4px)}@keyframes lootPopRing{0%{opacity:1;border-width:6px;transform:scale(.2)}60%{opacity:.8;border-width:3px;transform:scale(1.3)}to{opacity:0;border-width:1px;transform:scale(2)}}.loot-pop-name{color:var(--rarity);letter-spacing:.6px;text-shadow:0 0 12px var(--rarity), 0 2px 4px #000;white-space:nowrap;z-index:3;font-size:.92rem;font-weight:800;animation:1.4s cubic-bezier(.18,.9,.34,1.1) forwards lootPopName;position:absolute;bottom:312px;right:27%;transform:translate(50%)}@keyframes lootPopName{0%{opacity:0;transform:translate(50%)translateY(8px)scale(.6)}18%{opacity:1;transform:translate(50%)translateY(-2px)scale(1.18)}35%{transform:translate(50%)translateY(-6px)scale(.96)}60%{transform:translate(50%)translateY(-12px)scale(1.04)}to{opacity:0;transform:translate(50%)translateY(-30px)scale(1)}}.vfx-levelup{pointer-events:none;z-index:4;width:120px;height:120px;animation:1.2s forwards levelupAura;position:absolute;bottom:20%;transform:translate(-50%)}@keyframes levelupAura{0%{opacity:0;transform:translate(-50%)scale(.5)}30%{opacity:1;transform:translate(-50%)scale(1.2)}70%{opacity:.7;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%)scale(1.3)}}.boss-healthbar-track{z-index:8;background:linear-gradient(#000000d9 0%,#0000 100%);padding:6px 14px 4px;position:absolute;top:0;left:0;right:0}.boss-healthbar-label{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.boss-name-text{color:#ff6060;letter-spacing:.06em;text-shadow:0 0 8px #ff3c3c80;align-items:center;gap:5px;font-size:.82rem;font-weight:800;display:inline-flex}.boss-name-text img{object-fit:contain;width:18px;height:18px}.boss-hp-num{color:#ffa0a0;font-variant-numeric:tabular-nums;font-size:.72rem}.boss-healthbar-bar{background:#ffffff1a;border:1px solid #c800004d;border-radius:4px;height:8px;overflow:hidden}.boss-healthbar-fill{background:linear-gradient(90deg,#8b0000,#c20,#f44);border-radius:4px;height:100%;transition:width .4s;box-shadow:inset 0 0 8px #ff3c3c66}.floating-text{right:calc(31% + var(--float-index) * 24px + var(--float-x,0px));bottom:calc(210px + var(--float-index) * 18px);color:#f7f1dc;text-shadow:0 2px 8px #000;font-weight:900;animation:.9s ease-out both floatUp;position:absolute}.floating-text.bleed{color:#ff5a54}.floating-text.execute{color:#ffd18a;font-size:1.35rem}.floating-text.levelup{color:gold;text-shadow:0 0 20px gold,0 0 40px #fa0;font-size:1.6rem;font-weight:900;animation:1.8s forwards floatUp}.floating-text.loot{color:#f2c94c}.floating-text.miss{color:#aaa;font-size:.8rem;font-style:italic;font-weight:500}.floating-text.crit{color:#ffe566;text-shadow:0 0 16px gold,0 2px 4px #000;font-size:1.4rem;font-weight:900}.slash{opacity:0;filter:drop-shadow(0 0 18px #ff2f2f61);z-index:5;width:clamp(104px,13vw,166px);height:clamp(104px,13vw,166px);animation:.225s ease-out forwards slash;position:absolute;bottom:160px;right:40%;transform:rotate(-9deg)}.slash-b{animation-delay:40ms;bottom:126px}.stage-hud{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:6;opacity:.72;background:linear-gradient(135deg,#0a070485,#08050361);border:1px solid #c8860a24;border-radius:8px;grid-template-columns:minmax(150px,.32fr) minmax(180px,1fr) auto minmax(116px,.22fr) auto;align-items:center;gap:7px;min-height:36px;padding:5px 9px;transition:opacity .16s,background .16s;display:grid;position:absolute;bottom:7px;left:16px;right:16px;box-shadow:inset 0 -1px #c8860a14,0 8px 18px #00000057}.stage-hud:hover{opacity:1;background:linear-gradient(135deg,#0a0704d6,#080503b8)}.bleed-meter{grid-template-columns:auto minmax(64px,1fr);align-items:center;gap:6px;min-width:0;display:grid}.bleed-label{align-items:center;gap:5px;display:inline-flex}.bleed-label img{object-fit:contain;filter:drop-shadow(0 0 6px #ff444473);width:18px;height:18px}.bleed-meter div{background:#ffffff1a;border-radius:999px;height:5px;overflow:hidden}.bleed-meter b{border-radius:inherit;background:linear-gradient(90deg,#8f1d1d,#ff5a54);height:100%;display:block}.stage-hud span,.stat span,.equipment-slot span,.loot-card span,.loot-card p,.equipment-slot small{color:var(--muted);font-size:.8rem}.stat span{align-items:center;gap:5px;display:inline-flex}.stat-icon{object-fit:contain;filter:drop-shadow(0 0 5px #f0743e59);width:17px;height:17px}.stage-hud strong{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;line-height:1.15;display:block;overflow:hidden}.healthbar,.xpbar{background:#ffffff1a;border-radius:999px;height:8px;overflow:hidden}.healthbar span,.xpbar span{border-radius:inherit;background:linear-gradient(90deg,#c73c3c,#f0b65f);height:100%;transition:width .24s;display:block}.stats-panel,.loot-panel,.side-stack>section{border-radius:8px;padding:16px;display:none}.stats-panel{flex-direction:column;gap:16px;display:flex}.panel-title{color:var(--ember);gap:8px}.panel-title:after{content:"";opacity:.34;background:url(/assets/game/ui-divider-ornament.png) 50%/100% 100% no-repeat;flex:1;min-width:54px;height:12px;margin-left:6px}.panel-section .panel-title{border-bottom:1px solid var(--line);margin-bottom:5px;padding-bottom:4px}.panel-section{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;flex-shrink:0;padding:7px 8px;position:relative}.panel-section:before,.panel-section:after{content:"";pointer-events:none;opacity:.52;background:url(/assets/game/ui-panel-corner.png) 50%/contain no-repeat;width:32px;height:32px;position:absolute}.panel-section:before{top:4px;left:4px}.panel-section:after{bottom:4px;right:4px;transform:rotate(180deg)}.combat-log-list{color:var(--muted);scrollbar-width:thin;max-height:72px;margin:0;padding:0 0 0 16px;font-size:.75rem;overflow-y:auto}.combat-log-list li{margin-bottom:3px;line-height:1.32}.panel-title h2{color:var(--text-strong);font-size:1rem}.stat-list,.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.stat,.equipment-slot{border:1px solid var(--line);background:var(--panel-soft);border-radius:6px;min-width:0;padding:12px}.stat strong{color:#ffd18a;font-variant-numeric:tabular-nums;text-shadow:0 0 12px #ffc16440;margin-top:4px;font-size:1.5rem;font-weight:900;line-height:1;display:block}.stat span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}.xp-row{color:var(--muted);grid-template-columns:42px 1fr;align-items:center;gap:10px;display:grid}.xpbar span{background:linear-gradient(90deg,#51b4a6,#f2c94c)}.primary-skill{width:100%;padding:0 12px}.primary-skill:disabled{cursor:not-allowed;opacity:.42;transform:none}kbd{border:1px solid var(--line);color:var(--muted);font:.76rem/1.2 var(--font-mono);background:#ffffff0f;border-radius:4px;margin-left:auto;padding:2px 6px}.loot-wrap{grid-column:1/2}.loot-panel{grid-template-columns:1fr minmax(280px,.9fr);gap:12px;margin-top:12px;display:grid}.item-grid{grid-template-columns:repeat(var(--grid-cols,8), 1fr);background:radial-gradient(at 50% 0,#c8963c14,#0000 60%),linear-gradient(#0e1012,#0a0c0d);border:2px solid #b4823c59;border-radius:4px;gap:3px;padding:6px;display:grid;box-shadow:inset 0 0 0 1px #ffc8640f,inset 0 2px 6px #0009}.item-cell{aspect-ratio:1;background:radial-gradient(circle at 50% 34%, rgba(var(--rarity-rgb,80 80 80) / .12), transparent 65%), linear-gradient(180deg, #ffffff09, #00000047);cursor:pointer;border:1px solid #785a2880;border-radius:2px;place-items:center;min-width:0;transition:border-color .12s,box-shadow .12s;display:grid;position:relative;overflow:hidden}.item-cell img{object-fit:contain;filter:drop-shadow(0 2px 5px #000000b3);pointer-events:none;width:80%;height:80%;display:block}.item-cell-empty{cursor:default;background:repeating-linear-gradient(45deg,#0000,#0000 4px,#ffffff04 4px 5px),#090b0c;border-color:#503c1e4d}.item-cell:not(.item-cell-empty):hover{border-color:color-mix(in srgb, var(--rarity) 80%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--rarity) 40%, transparent), inset 0 0 10px color-mix(in srgb, var(--rarity) 18%, transparent);z-index:2}.item-cell-selected{border-color:var(--rarity)!important;box-shadow:0 0 0 1px var(--rarity), inset 0 0 14px color-mix(in srgb, var(--rarity) 28%, transparent)!important}.item-cell-pending img{animation:1.6s ease-in-out infinite pendingShimmer}@keyframes pendingShimmer{0%,to{filter:drop-shadow(0 2px 5px #000000b3)brightness()}50%{filter:drop-shadow(0 2px 5px #000000b3)brightness(1.5)sepia(.5)saturate(2)}}.item-cell-score{color:#ffdca0cc;text-shadow:0 1px 3px #000;pointer-events:none;font-size:.54rem;font-weight:900;line-height:1;position:absolute;bottom:1px;right:1px}.equip-summary{background:linear-gradient(#281c0c73,#0a0c0ea6);border:1px solid #b4823c52;border-radius:4px;flex:none;align-items:center;gap:10px;padding:8px 10px;display:flex}.equip-summary-stat{border-right:1px solid #b4823c2e;flex-direction:column;align-items:flex-start;padding-right:10px;line-height:1.1;display:flex}.equip-summary-stat:last-of-type{border-right:none}.equip-summary-stat span{color:#bea56eb3;letter-spacing:.08em;text-transform:uppercase;font-size:.62rem}.equip-summary-stat strong{color:#f3d98a;font-size:1.05rem;font-weight:700}.equip-summary-stat strong small{color:#bea56e99;margin-left:2px;font-size:.7rem;font-weight:500}.equip-summary-sets{flex-wrap:wrap;align-items:center;gap:4px;margin-left:auto;display:flex}.equip-summary-empty{color:#b4a07873;font-size:.7rem;font-style:italic}.equip-summary-set-tag{color:#b8e3a4;letter-spacing:.04em;background:#28463266;border:1px solid #78c88c73;border-radius:999px;padding:2px 7px;font-size:.66rem;display:inline-block}.equip-paperdoll{background:radial-gradient(at 50% 35%,#c8963c0f,#0000 65%),linear-gradient(#0d0f11,#090b0c);border:2px solid #b4823c52;border-radius:4px;flex:auto;grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-height:0;padding:10px;display:grid;position:relative;box-shadow:inset 0 0 0 1px #ffc8640d,inset 0 2px 6px #00000080}.equip-paperdoll-silhouette{opacity:.1;pointer-events:none;z-index:0;background:url(/assets/game/oathbreaker-hero.png) 50% 30%/38% no-repeat;position:absolute;inset:0}.equip-cell{z-index:1;cursor:default;background:linear-gradient(#ffffff08,#00000052);border:1px solid #785a2873;border-radius:3px;place-items:center;min-width:0;min-height:0;transition:border-color .14s,box-shadow .14s;display:grid;position:relative}.equip-cell-filled{border-color:color-mix(in srgb, var(--rarity) 55%, #785a2873);background:radial-gradient(circle at 50% 30%, color-mix(in srgb, var(--rarity) 14%, transparent), transparent 65%), linear-gradient(180deg, #ffffff0a, #00000052)}.equip-cell-filled:hover{border-color:var(--rarity);box-shadow:0 0 10px color-mix(in srgb, var(--rarity) 30%, transparent), inset 0 0 8px color-mix(in srgb, var(--rarity) 15%, transparent)}.equip-cell-icon{box-sizing:border-box;place-items:center;width:100%;height:100%;padding:6px;display:grid}.equip-cell-icon img{object-fit:contain;filter:drop-shadow(0 3px 6px #000000b3);width:auto;max-width:100%;height:auto;max-height:100%;display:block}.equip-cell-empty-icon{opacity:.55;filter:drop-shadow(0 0 6px #b98a4524)drop-shadow(0 2px 4px #000000b8)}.equip-cell-score{color:#f3d98a;text-shadow:0 1px 2px #000000d9;letter-spacing:.04em;pointer-events:none;font-size:.62rem;font-weight:700;line-height:1;position:absolute;bottom:2px;right:4px}.equip-tooltip-empty strong{color:#c8aa64cc}.equip-tooltip{z-index:20;pointer-events:none;background:#080a0cf7;border:1px solid #ffc86438;border-radius:4px;min-width:150px;max-width:220px;padding:8px 10px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #000000b3}.equip-tooltip strong{margin-bottom:3px;font-size:.82rem;display:block}.equip-tooltip small{color:#b4a078cc;font-size:.7rem;display:block}.equip-tooltip em{color:#f2994a;margin-top:4px;font-size:.7rem;font-style:italic;display:block}.skill-orb-rack{background:radial-gradient(at 50% 0,#c8963c12,#0000 55%),linear-gradient(#0d0f11,#090b0c);border:2px solid #b4823c4d;border-radius:4px;flex-wrap:wrap;justify-content:center;gap:12px;padding:12px;display:flex;box-shadow:inset 0 0 0 1px #ffc8640a,inset 0 2px 6px #00000080}.skill-gem{cursor:pointer;place-items:center;width:72px;height:72px;display:grid;position:relative}.skill-gem-ring{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.skill-gem-ring-bg{fill:none;stroke:#ffffff14;stroke-width:2.5px}.skill-gem-ring-fill{fill:none;stroke:var(--skill-color,#e05a3a);stroke-width:2.5px;stroke-linecap:round;filter:drop-shadow(0 0 3px var(--skill-color,#e05a3a));transition:stroke-dashoffset .8s linear}.skill-gem-face{background:radial-gradient(circle at 48% 32%, #ffffff2e, transparent 40%), radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--skill-color,#e05a3a) 22%, #0d1014), #0d1014);width:54px;height:54px;box-shadow:inset 0 0 10px #00000080, 0 0 14px color-mix(in srgb, var(--skill-color,#e05a3a) 20%, transparent);border:1px solid #ffffff1f;border-radius:50%;place-items:center;display:grid;position:relative;overflow:hidden}.skill-gem-ready .skill-gem-face{border-color:color-mix(in srgb, var(--skill-color,#e05a3a) 70%, white);box-shadow:inset 0 0 10px #0006, 0 0 22px color-mix(in srgb, var(--skill-color,#e05a3a) 45%, transparent);animation:2s ease-in-out infinite gemPulse}@keyframes gemPulse{0%,to{box-shadow:inset 0 0 10px #0006, 0 0 18px color-mix(in srgb, var(--skill-color) 35%, transparent)}50%{box-shadow:inset 0 0 10px #0006, 0 0 32px color-mix(in srgb, var(--skill-color) 65%, transparent)}}.skill-gem-abbr{color:#fff5dcf2;letter-spacing:.03em;text-shadow:0 1px 4px #000c;font-size:.72rem;font-weight:900;line-height:1;display:block}.skill-gem-icon{object-fit:cover;filter:saturate(1.08)contrast(1.04);border-radius:50%;width:100%;height:100%}.skill-gem-status{color:#c8b48cbf;text-align:center;font-variant-numeric:tabular-nums;background:#00000094;border-radius:999px;padding:2px 0;font-size:.58rem;font-weight:700;line-height:1;display:block;position:absolute;bottom:4px;left:4px;right:4px}.skill-gem-auto{color:color-mix(in srgb, var(--skill-color,#e05a3a) 80%, white);animation:2.4s ease-in-out infinite gemAutoFlicker}@keyframes gemAutoFlicker{0%,to{opacity:1}48%{opacity:.6}50%{opacity:1}}.skill-gem-tooltip{z-index:20;pointer-events:none;text-align:left;background:#080a0cf7;border:1px solid #ffc86433;border-radius:4px;min-width:160px;max-width:230px;padding:9px 11px;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #000c}.skill-gem-tooltip strong{color:var(--text-strong);margin-bottom:2px;font-size:.85rem;display:block}.skill-gem-tooltip em{color:#f2c94c;margin-bottom:5px;font-size:.72rem;font-style:italic;display:block}.skill-gem-tooltip p{color:var(--muted);font-size:.74rem;line-height:1.4}.skill-gem-tooltip-hint{color:#f2c94c;opacity:.85;margin-top:4px;font-size:.68rem}.skill-gem-level-badge{border:1px solid var(--skill-color,#888);color:var(--skill-color,#fff);pointer-events:none;z-index:2;background:#08080ceb;border-radius:8px;padding:2px 6px;font-size:.62rem;font-weight:700;position:absolute;top:-6px;left:-6px}.skill-gem-xpbar{pointer-events:none;background:#0009;border-radius:2px;height:3px;position:absolute;bottom:-8px;left:4px;right:4px;overflow:hidden}.skill-gem-xpbar>span{background:var(--skill-color,#888);height:100%;transition:width .22s ease-out;display:block}.skill-gem-rune-dot{pointer-events:none;z-index:3;background:#f24c4c;border-radius:50%;width:10px;height:10px;animation:1.4s ease-in-out infinite skill-rune-pulse;position:absolute;top:-4px;right:-4px;box-shadow:0 0 8px #f24c4c}@keyframes skill-rune-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.25)}}.skill-gem-rune-pending{outline-offset:2px;border-radius:50%;outline:2px solid #f24c4c8c}.rune-picker-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000000c7;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.rune-tree{background:radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--skill-color) 12%, transparent), transparent 60%), linear-gradient(180deg, #181820 0%, #0c0c14 100%);border:1px solid color-mix(in srgb, var(--skill-color) 35%, var(--line));width:min(720px,100%);max-height:90vh;box-shadow:0 20px 60px #000000bf, 0 0 30px color-mix(in srgb, var(--skill-color) 20%, transparent);border-radius:12px;padding:16px 20px 22px;overflow-y:auto}.rune-tree-header{border-bottom:1px solid color-mix(in srgb, var(--skill-color) 25%, var(--line));grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;margin-bottom:16px;padding-bottom:12px;display:grid}.rune-tree-title{grid-area:1/1;align-items:baseline;gap:10px;display:flex}.rune-tree-title h3{color:#fff;margin:0;font-size:1.1rem}.rune-tree-level{color:var(--skill-color);letter-spacing:.04em;font-size:.85rem;font-weight:700}.rune-tree-level small{color:#b4a07899;font-size:.7rem;font-weight:500}.rune-tree-xpbar{background:#0000008c;border:1px solid #ffffff0f;border-radius:4px;grid-area:2/1;height:6px;position:relative;overflow:hidden}.rune-tree-xpbar>span{background:linear-gradient(90deg, color-mix(in srgb, var(--skill-color) 50%, #f2c94c), var(--skill-color));height:100%;box-shadow:0 0 8px color-mix(in srgb, var(--skill-color) 60%, transparent);transition:width .24s;display:block}.rune-tree-xpbar-max>span{background:linear-gradient(90deg,#f3d98a,#fff8c2)}.rune-picker-close{border:1px solid var(--line);width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;grid-area:1/2/span 2;align-self:center;font-size:1.3rem}.rune-picker-close:hover{color:#fff;background:#ffffff14}.rune-tree-body{flex-direction:column;align-items:center;gap:0;display:flex;position:relative}.rune-tree-root{flex-direction:column;align-items:center;gap:6px;margin-bottom:4px;display:flex}.rune-tree-root-orb{background:radial-gradient(circle at 30% 30%, #ffffff38, transparent 55%), radial-gradient(circle, color-mix(in srgb, var(--skill-color) 70%, #000), color-mix(in srgb, var(--skill-color) 30%, #000));border:2px solid color-mix(in srgb, var(--skill-color) 65%, #fff);width:56px;height:56px;box-shadow:0 0 18px color-mix(in srgb, var(--skill-color) 45%, transparent), inset 0 0 10px #00000073;color:#fff;letter-spacing:.04em;border-radius:50%;place-items:center;font-size:1.05rem;font-weight:700;display:grid}.rune-tree-root-desc{color:var(--muted);text-align:center;max-width:380px;margin:0;font-size:.74rem;line-height:1.45}.rune-tree-tier{opacity:.55;flex-direction:column;align-items:center;width:100%;padding:4px 0 14px;display:flex;position:relative}.rune-tree-tier-unlocked{opacity:1}.rune-tree-connector{background:linear-gradient(#78643c59,#78643c26);border-radius:2px;width:2px;height:24px}.rune-tree-connector-active{background:linear-gradient(180deg, color-mix(in srgb, var(--skill-color) 80%, #fff), color-mix(in srgb, var(--skill-color) 50%, transparent));box-shadow:0 0 8px color-mix(in srgb, var(--skill-color) 60%, transparent)}.rune-tree-tier-label{align-items:center;gap:8px;margin:6px 0 8px;display:flex}.rune-tree-tier-marker{letter-spacing:.08em;color:#f3d98a;background:#503c1e8c;border:1px solid #b4823c80;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-block}.rune-tree-tier-status{letter-spacing:.04em;font-size:.7rem;font-style:normal}.rune-tree-tier-status-locked{color:#b4a07880}.rune-tree-tier-status-pending{color:#f2c94c;animation:1.4s ease-in-out infinite rune-pulse}.rune-tree-tier-status-chosen{color:#6ada8c}@keyframes rune-pulse{0%,to{opacity:.6}50%{opacity:1}}.rune-tree-branches{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;max-width:640px;display:grid;position:relative}.rune-tree-branches:before{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--skill-color) 35%, #78643c59) 15%, color-mix(in srgb, var(--skill-color) 35%, #78643c59) 85%, transparent);pointer-events:none;height:2px;position:absolute;top:-10px;left:16.6%;right:16.6%}.rune-tree-tier-unlocked .rune-tree-branches:before{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--skill-color) 60%, transparent) 15%, color-mix(in srgb, var(--skill-color) 60%, transparent) 85%, transparent);box-shadow:0 0 6px color-mix(in srgb, var(--skill-color) 35%, transparent)}.rune-tree-node{border:1px solid var(--line);color:var(--text,#ddd);text-align:center;cursor:pointer;background:linear-gradient(#ffffff06,#00000059);border-radius:8px;flex-direction:column;align-items:center;gap:4px;min-height:0;padding:28px 10px 10px;transition:transform .14s,border-color .14s,background .14s,box-shadow .14s;display:flex;position:relative}.rune-tree-node-orb{background:radial-gradient(circle,#78643cb3,#322814e6);border:1px solid #b4823c80;border-radius:50%;width:14px;height:14px;position:absolute;top:-7px;left:50%;transform:translate(-50%);box-shadow:0 0 4px #0009}.rune-tree-node:hover:not(:disabled){border-color:var(--skill-color);background:linear-gradient(180deg, color-mix(in srgb, var(--skill-color) 8%, transparent), #00000059);box-shadow:0 0 14px color-mix(in srgb, var(--skill-color) 30%, transparent);transform:translateY(-2px)}.rune-tree-node:hover:not(:disabled) .rune-tree-node-orb{background:radial-gradient(circle, color-mix(in srgb, var(--skill-color) 80%, #fff), color-mix(in srgb, var(--skill-color) 40%, #000));border-color:color-mix(in srgb, var(--skill-color) 70%, #fff);box-shadow:0 0 10px color-mix(in srgb, var(--skill-color) 60%, transparent)}.rune-tree-node:disabled{cursor:not-allowed}.rune-tree-node-chosen{background:radial-gradient(circle at 50% 0,#6ada8c2e,#0000 70%),linear-gradient(#6ada8c0f,#00000059);border-color:#6ada8c;box-shadow:0 0 16px #6ada8c59,inset 0 0 10px #6ada8c14}.rune-tree-node-chosen .rune-tree-node-orb{background:radial-gradient(circle,#c8ffd9,#6ada8c);border-color:#c8ffd9;box-shadow:0 0 12px #6ada8cb3}.rune-tree-node-locked{opacity:.55;filter:grayscale(.6)}.rune-tree-node-dimmed{opacity:.42}.rune-tree-node-name{color:#fff;font-size:.85rem;line-height:1.2}.rune-tree-node-desc{color:var(--muted);margin:0;font-size:.72rem;line-height:1.4}.rune-tree-node-badge{color:#6ada8c;letter-spacing:.04em;background:#50c8782e;border-radius:999px;padding:1px 6px;font-size:.62rem;font-weight:700;position:absolute;top:6px;right:8px}.rune-tree-node-lock{opacity:.7;font-size:.78rem;position:absolute;top:6px;right:8px}.rune-tree-tier-warning{color:#f08c4c;letter-spacing:.04em;margin-top:8px;font-size:.7rem}.rune-empty{color:var(--muted);text-align:center;grid-column:1/-1;padding:12px 4px;font-size:.78rem;font-style:italic}.loot-empty{border:1px dashed var(--line);text-align:center;background:#ffffff08;border-radius:8px;align-content:center;gap:6px;min-height:180px;padding:18px;display:grid}.loot-empty strong{color:var(--text-strong)}.loot-empty span{color:var(--muted);font-size:.86rem}.loot-card{border:1px solid color-mix(in srgb, var(--rarity) 60%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--rarity) 16%, transparent), transparent), var(--panel-soft);width:100%;min-height:72px;color:inherit;text-align:left;cursor:pointer;border-radius:6px;grid-template-columns:46px minmax(0,1fr) 52px;align-items:center;gap:10px;padding:9px;display:grid}.loot-card:hover,.loot-card.selected{border-color:var(--rarity);background:linear-gradient(180deg, color-mix(in srgb, var(--rarity) 24%, transparent), transparent), var(--panel-soft)}.item-icon,.equipment-icon{border:1px solid color-mix(in srgb, var(--rarity,#5b6670) 58%, var(--line));background:radial-gradient(circle at 50% 34%, color-mix(in srgb, var(--rarity,#5b6670) 20%, transparent), transparent 58%), #00000038;border-radius:6px;place-items:center;display:grid;overflow:hidden}.item-icon{width:54px;height:54px}.loot-card .item-icon{width:46px;height:46px}.item-icon.large{width:64px;height:64px}.item-icon img,.equipment-icon img{object-fit:contain;filter:drop-shadow(0 4px 7px #0000007a);width:92%;height:92%;display:block}.loot-card h3{overflow-wrap:anywhere;color:var(--text-strong);margin:3px 0;font-size:.95rem}.loot-numbers{text-align:right}.loot-numbers strong{color:var(--rarity);font-size:1.24rem}.loot-numbers span{display:block}.loot-actions{grid-column:1/-1;gap:8px}.item-detail-panel{border:1px solid color-mix(in srgb, var(--rarity) 56%, var(--line));background:linear-gradient(180deg, color-mix(in srgb, var(--rarity) 13%, transparent), transparent 160px), #0d1012b8;border-radius:8px;align-content:start;gap:12px;min-width:0;padding:12px;display:grid}.item-detail-header{grid-template-columns:64px minmax(0,1fr) 34px;align-items:center;gap:11px;display:grid}.item-detail-header h3{color:var(--text-strong);overflow-wrap:anywhere;margin:2px 0;font-size:1.05rem}.item-detail-header span,.item-detail-header p,.score-delta span,.item-compare-column span,.item-compare-column p{color:var(--muted);font-size:.78rem}.item-detail-close{border:1px solid var(--line);background:var(--panel-soft);width:34px;height:34px;color:var(--muted);cursor:pointer;border-radius:6px;place-items:center;display:grid}.item-compare-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.item-compare-column{border:1px solid var(--line);background:#ffffff09;border-radius:6px;align-content:start;gap:5px;min-width:0;padding:10px;display:grid}.item-compare-column strong{color:var(--text-strong);font-size:1.5rem;line-height:1}.item-compare-column small{color:#d8c8b2;font-size:.72rem}.item-compare-column em{color:#f2994a;font-size:.72rem}.affix-list.compact{margin-top:4px}.score-delta{border:1px solid var(--line);background:#ffffff09;border-radius:6px;justify-content:space-between;align-items:center;padding:9px 10px;display:flex}.score-delta strong{color:var(--text-strong)}.score-delta.positive strong{color:var(--teal)}.score-delta.negative strong{color:#ff756e}.item-detail-actions{display:flex}.legendary-power{background:#f2994a14;border:1px solid #f2994a66;border-radius:4px;grid-column:1/-1;gap:2px;padding:6px 8px;display:grid}.legendary-power strong{color:#f2994a;letter-spacing:.04em;font-size:.78rem}.legendary-power p{color:#e8c79a;margin:0;font-size:.72rem;font-style:italic;line-height:1.35}.equipment-slot em{color:#f2994a;grid-column:1/-1;font-size:.7rem;font-style:italic}.affix-list{grid-column:1/-1;gap:3px;display:grid}.affix-list small{color:#d8c8b2;font-size:.74rem}.tag-row{flex-wrap:wrap;grid-column:1/-1;gap:5px;min-height:20px;display:flex}.tag-row b{color:#ffb0a7;border:1px solid #ff5a5457;border-radius:999px;padding:2px 6px;font-size:.68rem}.claim-button{color:#f2c94c;cursor:pointer;background:#f2c94c1c;border:1px solid #f2c94c80;border-radius:6px;grid-column:1/-1;width:100%;min-height:36px;margin-bottom:10px}.loot-actions button{border-color:var(--line);background:#ffffff0a;flex:1;min-height:32px;font-size:.84rem}.equipment-slots,.log-panel ol,.skill-list,.filter-list{gap:6px;margin-top:8px;display:grid}.skill-card{border:1px solid var(--line);background:var(--panel-soft);border-radius:6px;grid-template-columns:1fr auto;gap:8px;padding:12px;display:grid}.skill-card strong{color:var(--text-strong);display:block}.skill-card span,.skill-card p{color:var(--muted);font-size:.78rem}.skill-card p{grid-column:1/-1}.filter-row{border:1px solid var(--line);background:var(--panel-soft);color:var(--text);border-radius:6px;align-items:center;gap:7px;padding:7px 8px;font-size:.78rem;display:flex}.filter-row input{accent-color:var(--ember)}.equipment-slot strong{overflow-wrap:anywhere;color:var(--text-strong);margin:4px 0 2px;display:block}.equipment-slot{grid-template-columns:38px minmax(0,1fr);align-items:center;gap:9px;display:grid}.equipment-icon{width:38px;height:38px}.equipment-icon.empty{border-color:var(--line);background:#ffffff08}.log-panel ol{padding:0;list-style:none}.log-panel li{border-bottom:1px solid var(--line);color:var(--text);padding:9px 0;font-size:.88rem}.footer-strip{color:var(--muted);border:1px solid var(--line);background:var(--panel);min-height:36px;box-shadow:var(--shadow);border-radius:8px;gap:8px;padding:6px 14px;font-size:.78rem}.footer-strip svg{color:var(--teal);flex:none}.footer-strip strong{color:var(--text-strong);margin-left:auto}.stats-panel,.loot-wrap,.side-stack,.footer-strip{display:none}.mobile-dock{z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#090b0ce0;border:1px solid #ffffff24;border-radius:8px;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;padding:6px;display:grid;position:relative;box-shadow:0 -12px 34px #00000073}.mobile-dock button{min-width:0;min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;place-items:center;gap:3px;display:grid}.mobile-dock button.active{border-color:color-mix(in srgb, var(--ember) 46%, transparent);background:color-mix(in srgb, var(--ember) 16%, #ffffff0a);color:var(--text-strong)}.mobile-dock svg{color:currentColor}.mobile-dock-icon{object-fit:contain;filter:drop-shadow(0 0 6px #f0743e33);width:32px;height:32px;display:block}.mobile-dock button.active .mobile-dock-icon{filter:drop-shadow(0 0 8px #ffd18a61)}.mobile-dock span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.66rem;font-weight:800;line-height:1;overflow:hidden}.mobile-sheet{z-index:50;display:block;position:fixed;inset:0}.mobile-sheet-scrim{cursor:pointer;background:#0000007a;border:0;width:100%;position:absolute;inset:0}.mobile-sheet-panel{background:linear-gradient(#f0743e14,#0000 130px),#0d1012fa;border:1px solid #ffffff24;border-radius:8px;flex-direction:column;width:min(640px,100vw - 48px);display:flex;position:absolute;top:64px;bottom:76px;right:max(12px,50vw - 578px);overflow:hidden;box-shadow:-18px 0 60px #00000094}.mobile-sheet-header{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;min-height:44px;padding:8px 14px;display:flex}.mobile-sheet-header strong{color:var(--text-strong);font-size:1rem}.mobile-sheet-close{border:1px solid var(--line);background:var(--panel-soft);width:32px;height:32px;color:var(--text);cursor:pointer;border-radius:6px;place-items:center;display:grid}.mobile-sheet-body{flex-direction:column;flex:auto;gap:10px;min-height:0;padding:12px;display:flex;overflow:auto}.panel-stack{flex-direction:column;gap:12px;display:flex}.panel-subsection{background:#ffffff09;border:1px solid #ffffff1f;border-radius:8px;padding:10px}.panel-subsection-header{color:var(--text-strong);align-items:center;gap:8px;margin-bottom:10px;display:flex}.panel-subsection-header span{color:var(--muted);margin-left:auto;font-size:.75rem;font-weight:700}.hero-drawer-panel{width:min(560px,100vw - 48px);left:max(12px,50vw - 578px);right:auto;box-shadow:18px 0 60px #00000094}.hero-summary-card{gap:10px;display:grid}.hero-switch-button{color:var(--text-strong);cursor:pointer;background:#c8860a24;border:1px solid #c8860a73;border-radius:6px;justify-self:start;padding:8px 12px;font-weight:900}.mobile-sheet-body .loot-panel,.mobile-sheet-body .equipment-slots,.mobile-sheet-body .skill-list,.mobile-sheet-body .filter-list{margin-top:0}.mobile-sheet-body .loot-panel{grid-template-columns:1fr;padding:0}.mobile-sheet-body .loot-list{grid-template-columns:1fr;max-height:none;padding-right:0;overflow:visible}.mobile-sheet-body .loot-card{grid-template-columns:46px minmax(0,1fr) 48px;min-height:auto;padding:10px}.mobile-sheet-body .item-detail-panel{z-index:2;background:linear-gradient(180deg, color-mix(in srgb, var(--rarity) 13%, transparent), transparent 150px), #0d1012fa;order:-1;margin:0 0 10px;position:relative;bottom:auto}.mobile-sheet-body .item-compare-grid{grid-template-columns:1fr}.mobile-sheet-body .affix-list{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-sheet-body .tag-row{min-height:0}.mobile-sheet-body .skill-card,.mobile-sheet-body .equipment-slot,.mobile-sheet-body .filter-row,.mobile-sheet-body .stat{min-height:48px}.mobile-sheet-body .stat-list,.mobile-sheet-body .resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-log-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.mobile-log-list li{border-bottom:1px solid var(--line);color:var(--text);padding:12px 0;font-size:.9rem}@keyframes idle{0%{transform:translateY(0)}to{transform:translateY(-5px)}}@keyframes stageMarch{0%{transform:translate(0)}to{transform:translate(-28%)}}@keyframes stageBgLoop{0%{background-position:0 0,0}to{background-position:0 0,-4096px}}@keyframes skyMarch{0%{background-position:0}to{background-position:-720px}}@keyframes foregroundMarch{0%{background-position:0 100%}to{background-position:-1024px 100%}}@keyframes heroPointRun{0%{transform:translate(0)translateY(0)}50%{transform:translate(0)translateY(-3px)}to{transform:translate(0)translateY(0)}}@keyframes heroPointIdle{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes heroBodyReady{0%,to{transform:translateX(-50%) rotate(-.4deg) scale(var(--hero-scale,1))}50%{transform:translateX(-50%) rotate(.7deg) scale(var(--hero-scale,1))}}@keyframes walkSheet{0%,24.99%{background-position:0}25%,49.99%{background-position:33.333%}50%,74.99%{background-position:66.667%}75%,to{background-position:100%}}@keyframes enemySheetStep{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes enemyAttackSheetStep{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes enemyAttackSheetStep2{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes enemyPointPress{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes enemyCombatIdle{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes enemyTravelStep{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.enemy-rank-boss.enemy-sprite{animation-duration:2.2s}.enemy-sheet-beast .enemy-static-sprite,.enemy-sheet-beast .enemy-walk-sheet,.stage-travel .enemy-sprite.enemy-sheet-beast{animation-duration:.52s}.enemy-sheet-brute .enemy-static-sprite,.enemy-sheet-brute .enemy-walk-sheet,.stage-travel .enemy-sprite.enemy-sheet-brute{animation-duration:.92s}@keyframes slash{0%{opacity:0;transform:translate(-60px)rotate(-18deg)scaleX(.4)}32%{opacity:.95}to{opacity:0;transform:translate(80px)rotate(-18deg)scaleX(1.2)}}@keyframes laneMove{0%{background-position:0 0,0 0,0 0}to{background-position:-140px 0,-80px 0,0 0}}@keyframes trackSleepers{0%{transform:translate(0)}to{transform:translate(-144px)}}@keyframes dustTrail{0%{opacity:0;transform:translate(0)scaleX(.75)}20%{opacity:.48}to{opacity:0;transform:translate(-160%)scaleX(1.25)}}@keyframes drift{0%{transform:translate(-16vw)}to{transform:translate(64vw)}}@keyframes floatUp{0%{opacity:0;transform:translateY(8px)scale(.4)}18%{opacity:1;transform:translateY(-2px)scale(1.18)}32%{transform:translateY(-6px)scale(.94)}46%{transform:translateY(-12px)scale(1.04)}to{opacity:0;transform:translateY(-44px)scale(1)}}@keyframes floatUpCrit{0%{opacity:0;transform:translateY(10px)scale(.3)rotate(-6deg)}15%{opacity:1;transform:translateY(-4px)scale(1.45)rotate(3deg)}30%{transform:translateY(-10px)scale(.92)rotate(-1deg)}48%{transform:translateY(-18px)scale(1.12)rotate(.5deg)}to{opacity:0;transform:translateY(-58px)scale(1.08)}}.floating-text.crit,.floating-text.execute{animation:1.1s cubic-bezier(.18,.9,.34,1.15) both floatUpCrit}@keyframes beamPulse{0%{opacity:.2;transform:scaleY(.8)}50%{opacity:.85}to{opacity:.2;transform:scaleY(1.05)}}@media (width<=1100px){.hero-select-main{grid-template-columns:minmax(190px,240px) minmax(0,1fr) minmax(190px,220px);gap:10px}.hero-preview-copy{width:min(330px,48%)}.loot-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.hero-select-shell{padding:6px}.hero-select-stage{gap:8px}.hero-select-header{min-height:50px;padding:8px 10px 0}.hero-select-status{display:none}.hero-select-main{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(112px,132px) minmax(0,1fr);gap:8px;padding:0 10px 10px}.hero-roster{grid-row:1/3;gap:6px;padding:7px}.hero-choice-card{grid-template-columns:38px 1fr;gap:5px 7px;min-height:58px;padding:6px}.hero-choice-thumb{width:38px;height:46px}.hero-choice-copy strong{font-size:.78rem}.hero-choice-copy span,.hero-choice-state{font-size:.58rem}.hero-choice-state{padding:1px 5px}.hero-preview-panel{min-height:0}.hero-preview-art-wrap{inset:0 0 0 24%}.hero-preview-art{width:min(52vh,55vw);height:min(52vh,55vw)}.hero-preview-copy{gap:5px;width:min(270px,58%);padding:10px;bottom:10px;left:10px}.hero-preview-copy h1{font-size:clamp(1.5rem,6vw,2.2rem)}.hero-preview-copy p{display:none}.hero-traits{gap:4px}.hero-traits span{padding:2px 6px;font-size:.6rem}.hero-loadout-panel{grid-template-columns:1fr auto;align-items:center;gap:8px;padding:8px;display:grid}.hero-stat-grid,.hero-start-copy{display:none}.hero-start-button{min-width:136px;min-height:42px}.app-shell{gap:6px;padding:6px}.topbar{gap:8px;min-height:48px;padding:6px 8px}.topbar-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.icon-button{min-height:34px;padding:0 8px;font-size:.82rem}.game-grid{border-radius:8px;grid-template-columns:1fr;padding:6px;display:grid}.game-right-panel{display:none}.stage-panel{min-height:0}.combat-hud{grid-template-columns:1fr auto;gap:8px;inset:8px 8px auto}.hero-hud{grid-template-columns:36px 1fr;padding:7px}.hero-hud-portrait{width:36px;height:36px}.stage-objective,.loot-toast{display:none}.skill-wheel{grid-template-columns:repeat(2,44px);gap:5px;padding:5px;bottom:170px;right:12px}.skill-orb{width:44px;height:50px;padding:3px 3px 14px}.skill-orb-icon{width:38px;height:38px}.skill-orb-status{font-size:.48rem}.stage-hud{grid-template-columns:1fr;padding:7px 10px;bottom:8px;left:10px;right:10px}.hero-sprite{width:0;height:0;bottom:190px;left:16%}.hero-frame-viewport{--hero-frame-height:clamp(140px, 36vh, 185px);width:calc(var(--hero-frame-height) * .903);height:var(--hero-frame-height)}.enemy-sprite{width:0;height:0;bottom:190px}.enemy-frame-viewport{width:108px;height:132px}.enemy-runtime-motion .enemy-frame-viewport{height:108px}.enemy-boss .enemy-sprite{bottom:170px}.enemy-boss .enemy-frame-viewport{width:136px;height:160px}.enemy-crown{bottom:144px;right:-44px}.enemy-boss .enemy-crown{bottom:188px;right:-56px}.slash{width:132px;height:90px;bottom:252px;right:32%}.slash-b{bottom:226px}.loot-beam{width:64px;height:150px;bottom:168px;right:22%}.floating-text{right:calc(35% + var(--float-index) * 12px);bottom:calc(286px + var(--float-index) * 14px)}.loot-list,.stat-list,.resource-grid{grid-template-columns:1fr}.mobile-dock{gap:4px;padding:7px}.mobile-dock button{gap:3px;min-height:48px}.mobile-dock span{font-size:.66rem}.mobile-sheet-panel{right:0;bottom:calc(64px + env(safe-area-inset-bottom));left:0;top:env(safe-area-inset-top,8px);border-bottom:0;border-radius:12px 12px 0 0;width:auto;height:auto;max-height:none;padding-bottom:0;box-shadow:0 -22px 60px #00000094}.mobile-sheet-body{padding:10px;overflow:auto}.mobile-sheet-body .loot-panel,.mobile-sheet-body .equipment-slots,.mobile-sheet-body .skill-list,.mobile-sheet-body .filter-list{margin-top:0}.mobile-sheet-body .loot-panel{grid-template-columns:1fr;padding:0}.mobile-sheet-body .loot-list{grid-template-columns:1fr;max-height:none;padding-right:0;overflow:visible}.mobile-sheet-body .loot-card{grid-template-columns:46px minmax(0,1fr) 48px;min-height:auto;padding:10px}.mobile-sheet-body .item-detail-panel{z-index:2;background:linear-gradient(180deg, color-mix(in srgb, var(--rarity) 13%, transparent), transparent 150px), #0d1012fa;order:-1;margin:0 0 10px;position:relative;bottom:auto}.mobile-sheet-body .item-compare-grid{grid-template-columns:1fr}.mobile-sheet-body .affix-list{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-sheet-body .tag-row{min-height:0}.mobile-sheet-body .skill-card,.mobile-sheet-body .equipment-slot,.mobile-sheet-body .filter-row,.mobile-sheet-body .stat{min-height:48px}.mobile-sheet-body .stat-list,.mobile-sheet-body .resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (height<=520px) and (orientation:landscape){.hero-select-shell{padding:5px}.hero-select-stage{gap:6px}.hero-select-header{min-height:42px;padding:6px 10px 0}.hero-select-status{padding:7px 10px}.hero-select-main{grid-template-columns:minmax(180px,240px) minmax(0,1fr) minmax(180px,220px);gap:8px;padding:0 10px 10px}.hero-roster{gap:5px;padding:7px}.hero-choice-card{grid-template-columns:40px 1fr;gap:5px 7px;min-height:56px;padding:5px}.hero-choice-thumb{width:40px;height:46px}.hero-choice-copy strong{font-size:.78rem}.hero-choice-copy span,.hero-choice-state{font-size:.58rem}.hero-preview-art-wrap{inset:0 4% 0 20%}.hero-preview-art{width:min(68vh,40vw);height:min(68vh,40vw)}.hero-preview-copy{gap:5px;width:min(330px,56%);padding:10px;bottom:10px;left:10px}.hero-preview-copy h1{font-size:clamp(1.55rem,3.2vw,2.1rem)}.hero-preview-copy strong{font-size:.92rem}.hero-preview-copy p{display:none}.hero-loadout-panel{gap:8px;padding:8px}.hero-stat-grid{gap:5px}.hero-stat-chip{padding:6px 4px}.hero-start-copy{padding:8px}.hero-start-button{min-height:38px}.app-shell{gap:4px;padding:5px}.topbar{min-height:42px;padding:5px 8px}.icon-button{min-height:30px;padding:0 8px;font-size:.78rem}.game-grid{grid-template-columns:1fr;gap:0;padding:5px}.game-right-panel{display:none}.combat-hud{grid-template-columns:minmax(142px,.55fr) minmax(190px,.9fr) minmax(130px,.5fr);gap:6px;inset:6px 6px auto}.hero-hud{grid-template-columns:30px 1fr;gap:7px;padding:6px}.hero-hud-portrait{width:30px;height:30px}.skill-wheel{grid-template-columns:repeat(2,38px);gap:5px;padding:4px;bottom:170px;right:10px}.skill-orb{width:38px;height:44px;padding:3px 3px 13px}.skill-orb-icon{width:32px;height:32px}.stage-hud{grid-template-columns:minmax(108px,.32fr) minmax(180px,1fr) auto 30px;gap:7px;min-height:32px;padding:4px 8px;bottom:6px;left:12px;right:12px}.stage-hud>div:first-child span{display:none}.stage-hud strong{font-size:.76rem}.retreat-btn{width:30px;height:28px;padding:0;font-size:.72rem}.bleed-meter{display:none}.mobile-dock{gap:3px;padding:4px 5px}.mobile-dock button{min-height:32px;padding:2px 0}.mobile-dock-icon{width:24px;height:24px}.mobile-dock span{font-size:.56rem}.mobile-sheet-panel{width:min(460px,100vw - 16px);max-height:none;top:48px;bottom:56px;right:8px}.mobile-sheet-body{max-height:calc(100% - 52px)}}.item-cell-delta{text-shadow:0 1px 2px #000;font-size:9px;font-weight:700;line-height:1;position:absolute;bottom:2px;left:2px}.item-cell-delta.delta-up{color:#4cff6e}.item-cell-delta.delta-down{color:#ff4c4c}.item-cell-delta.delta-new{color:gold}@keyframes hitShake{0%,to{transform:translate(0)}20%{transform:translate(-3px,1px)}50%{transform:translate(2px,-1px)}75%{transform:translate(-2px)}}@keyframes critShake{0%,to{transform:translate(0)rotate(0)}15%{transform:translate(-5px,2px)rotate(-.4deg)}40%{transform:translate(4px,-2px)rotate(.3deg)}65%{transform:translate(-3px,1px)rotate(-.2deg)}85%{transform:translate(2px,-1px)}}.stage-panel.shake-hit{animation:.18s both hitShake}.stage-panel.shake-crit{animation:.28s both critShake}@keyframes killShake{0%,to{transform:translate(0)scale(1)}10%{transform:translate(-7px,3px)scale(1.005)}30%{transform:translate(6px,-3px)scale(1.008)}55%{transform:translate(-4px,2px)scale(1.004)}80%{transform:translate(3px,-1px)}}@keyframes bossKillShake{0%,to{transform:translate(0)scale(1)}8%{transform:translate(-12px,5px)scale(1.012)}22%{transform:translate(10px,-6px)scale(1.018)rotate(-.4deg)}40%{transform:translate(-8px,4px)scale(1.012)rotate(.3deg)}60%{transform:translate(6px,-3px)scale(1.006)}82%{transform:translate(-3px,1px)}}.stage-panel.shake-kill{animation:.32s both killShake}.stage-panel.shake-boss-kill{animation:.55s cubic-bezier(.2,.8,.3,1) both bossKillShake}.stage-panel.shake-crit .hero-sprite,.stage-panel.shake-kill .hero-sprite,.stage-panel.shake-boss-kill .hero-sprite{animation-play-state:paused}.floating-text.kill{color:coral;letter-spacing:1px;text-shadow:0 0 18px #ff5a30,0 2px 6px #000;font-size:1.55rem;font-weight:900;animation:1.3s cubic-bezier(.18,.9,.34,1.2) both floatUpKill}@keyframes floatUpKill{0%{opacity:0;transform:translateY(8px)scale(.2)rotate(-8deg)}14%{opacity:1;transform:translateY(-6px)scale(1.7)rotate(4deg)}30%{transform:translateY(-12px)scale(.88)rotate(-1deg)}50%{transform:translateY(-22px)scale(1.18)}to{opacity:0;transform:translateY(-72px)scale(1.05)}}@keyframes hitFlash{0%{filter:brightness()saturate()}30%{filter:brightness(8)saturate(0)sepia(0)}to{filter:brightness()saturate()}}.enemy-sprite.is-hit .enemy-static-sprite{animation:.14s hitFlash}.enemy-sprite.enemy-rank-elite.is-hit .enemy-static-sprite{filter:brightness(6)saturate(0)sepia()hue-rotate(300deg);animation:.18s hitFlash}.skill-vfx{object-fit:contain;pointer-events:none;z-index:5;width:80px;height:80px;animation:.4s forwards vfxPop;position:absolute;bottom:28%}@keyframes vfxPop{0%{opacity:0;transform:scale(.6)rotate(-10deg)}30%{opacity:1;transform:scale(1.2)rotate(5deg)}70%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.1)}}.skill-vfx-cleave{width:112px;height:112px}.skill-vfx-execute{width:132px;height:132px}.skill-vfx-crit{width:88px;height:88px}.skill-vfx-iron_oath{width:104px;height:104px;bottom:10%}.skill-vfx-lacerating_sweep{width:180px;height:72px}.boss-kill-banner{z-index:200;pointer-events:none;justify-content:center;animation:.4s cubic-bezier(.34,1.56,.64,1) both bossKillDrop;display:flex;position:fixed;top:0;left:0;right:0}@keyframes bossKillDrop{0%{opacity:0;transform:translateY(-80px)}to{opacity:1;transform:translateY(0)}}.boss-kill-inner{background:linear-gradient(135deg,#1a0a00 60%,#3d1500);border:2px solid #c8860a;border-top:none;border-radius:0 0 16px 16px;flex-direction:column;align-items:center;gap:4px;padding:12px 32px 16px;display:flex;box-shadow:0 8px 32px #000a,0 0 24px #c8860a66}.boss-kill-label{letter-spacing:3px;color:#c8860a;text-transform:uppercase;font-size:11px}.boss-kill-name{color:#ffe0a0;text-shadow:0 2px 8px #c8860a88;font-size:22px;font-weight:900}.boss-kill-stage{color:#a07040;font-size:12px}.boss-kill-reward{color:gold;margin-top:4px;font-size:13px;font-weight:700}.zone-progress-bar{background:#0006;border:1px solid #c8860a4d;border-radius:7px;height:14px;margin:4px 0 2px;position:relative;overflow:hidden}.zone-progress-fill{background:linear-gradient(90deg,#3d1500,#c8860a);border-radius:7px;height:100%;transition:width .9s}.zone-progress-fill[style*="width: 100"]{background:linear-gradient(90deg,#c8860a,gold);box-shadow:0 0 8px #ffd70066}.zone-progress-label{color:#fff;text-shadow:0 1px 2px #000;letter-spacing:.5px;justify-content:center;align-items:center;font-size:9px;font-weight:700;display:flex;position:absolute;inset:0}.zone-debuff-badge{cursor:help;place-items:center;width:18px;height:18px;margin-left:4px;display:inline-grid}.zone-debuff-badge img,.button-art-icon,.panel-title-art-icon,.footer-art-icon,.inline-art-icon,.boss-choice-btn-icon{object-fit:contain;display:block}.zone-debuff-badge img{width:18px;height:18px}.button-art-icon{filter:drop-shadow(0 0 6px #f0743e47);width:22px;height:22px}.button-art-icon.small,.inline-art-icon,.boss-choice-btn-icon{width:18px;height:18px}.inline-art-icon{vertical-align:-4px;margin-right:5px;display:inline-block}.check-in-btn{color:#4cff9e;cursor:pointer;background:linear-gradient(135deg,#002a1a,#004d30);border:1px solid #00a060;border-radius:6px;place-items:center;width:42px;min-height:38px;padding:0;font-size:12px;font-weight:700;animation:1.5s ease-in-out infinite alternate checkInPulse;display:inline-grid}@keyframes checkInPulse{0%{box-shadow:0 0 4px #00a06044}to{box-shadow:0 0 14px #00a060aa}}.check-in-btn:hover{background:linear-gradient(135deg,#004d30,#007a4d)}.burst-button{color:gold;cursor:pointer;background:linear-gradient(135deg,#5a3a00,#8b5e00);border:1px solid #c8860a;border-radius:6px;justify-content:center;align-items:center;gap:6px;min-height:38px;padding:5px 12px;font-size:12px;font-weight:700;transition:all .2s;display:inline-flex}.burst-button:hover:not(:disabled){background:linear-gradient(135deg,#7a5200,#b07800);box-shadow:0 0 12px #c8860a66}.burst-button:disabled{opacity:.4;cursor:not-allowed}.burst-button.burst-active{color:#4cff6e;background:linear-gradient(135deg,#1a3a00,#2a5a00);border-color:#4cff6e;animation:.6s ease-in-out infinite alternate burstPulse}@keyframes burstPulse{0%{box-shadow:0 0 6px #4cff6e44}to{box-shadow:0 0 18px #4cff6eaa}}.stage-panel.zone-black_forge_mines .lane-sky{background-blend-mode:multiply;background-color:#3c140099;background-image:url(/assets/game/bg-black-forge-mines.webp)}.stage-panel.zone-black_forge_mines .lane{background:linear-gradient(#2d1000 0%,#1a0800 100%)}.stage-panel.zone-bleeding_furnace .lane-sky{background-blend-mode:multiply;background-color:#3c000099;background-image:url(/assets/game/bg-bleeding-furnace.webp)}.stage-panel.zone-bleeding_furnace .lane{background:linear-gradient(#2d0000 0%,#1a0000 100%)}.stage-panel.zone-silent_choir .lane-sky{background-blend-mode:multiply;background-color:#05001099;background-image:url(/assets/game/bg-silent-choir.webp)}.stage-panel.zone-silent_choir .lane{background:linear-gradient(#100028 0%,#050010 100%)}.stage-panel.zone-ossuary_keep .lane-sky{background-blend-mode:multiply;background-color:#0e0e0a99;background-image:url(/assets/game/bg-ossuary-keep.webp)}.stage-panel.zone-ossuary_keep .lane{background:linear-gradient(#1a1a10 0%,#0e0e0a 100%)}.stage-panel.zone-pale_wastes .lane-sky{background-blend-mode:multiply;background-color:#050a1499;background-image:url(/assets/game/bg-pale-wastes.webp)}.stage-panel.zone-pale_wastes .lane{background:linear-gradient(#0a1020 0%,#050a14 100%)}.stage-panel.zone-iron_caravan .lane-sky{background-blend-mode:multiply;background-color:#080c1099;background-image:url(/assets/game/bg-iron-caravan.webp)}.stage-panel.zone-iron_caravan .lane{background:linear-gradient(#0c1018 0%,#080c10 100%)}.stage-panel.zone-crimson_keep .lane-sky{background-blend-mode:multiply;background-color:#14000599;background-image:url(/assets/game/bg-crimson-keep.webp)}.stage-panel.zone-crimson_keep .lane{background:linear-gradient(#200008 0%,#140005 100%)}.stage-panel.zone-moonblood_crypt .lane-sky{background-blend-mode:multiply;background-color:#0a001499;background-image:url(/assets/game/bg-moonblood-crypt.webp)}.stage-panel.zone-moonblood_crypt .lane{background:linear-gradient(#100020 0%,#0a0014 100%)}.stage-panel.zone-oath_abyss .lane-sky{background-blend-mode:multiply;background-color:#0e001099;background-image:url(/assets/game/bg-oath-abyss.webp)}.stage-panel.zone-oath_abyss .lane{background:linear-gradient(#180020 0%,#0e0010 100%)}.stage-panel.zone-forgemaw_core .lane-sky{background-blend-mode:multiply;background-color:#1a050099;background-image:url(/assets/game/bg-forgemaw-core.webp)}.stage-panel .lane-sky{background-color:#0000;background-image:none!important}.stage-panel.zone-forgemaw_core .lane{background:linear-gradient(#2d0a00 0%,#1a0500 100%)}.stage-panel.zone-black_forge_mines .lane,.stage-panel.zone-bleeding_furnace .lane,.stage-panel.zone-silent_choir .lane,.stage-panel.zone-ossuary_keep .lane,.stage-panel.zone-pale_wastes .lane,.stage-panel.zone-iron_caravan .lane,.stage-panel.zone-crimson_keep .lane,.stage-panel.zone-moonblood_crypt .lane,.stage-panel.zone-oath_abyss .lane,.stage-panel.zone-forgemaw_core .lane{background:radial-gradient(at 32% 70%,#00000057,#0000 23%),radial-gradient(at 73% 70%,#0000006b,#0000 22%),linear-gradient(#0000 0%,#03030314 55%,#03030357 100%)}.affix-operations{border:1px solid var(--line);background:#ffffff09;border-radius:6px;gap:2px;padding:8px 10px;display:grid}.affix-row{border-radius:4px;justify-content:space-between;align-items:center;gap:6px;padding:3px 0;transition:background .15s;display:flex}.affix-row:hover{background:#ffffff0a}.affix-row.affix-locked{background:#c8860a14;border-left:2px solid #c8860a;padding-left:6px}.affix-text{color:#c8a060;flex:1;font-size:12px}.affix-locked .affix-text{color:gold}.affix-actions{opacity:0;gap:4px;transition:opacity .15s;display:flex}.affix-row:hover .affix-actions{opacity:1}.affix-lock-btn,.affix-reroll-btn{cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:4px;place-items:center;width:24px;height:24px;padding:0;line-height:1.4;transition:background .15s;display:inline-grid}.affix-lock-btn img,.affix-reroll-btn img{object-fit:contain;width:17px;height:17px}.affix-lock-btn:hover,.affix-reroll-btn:hover:not(:disabled){background:#ffffff1f}.affix-lock-btn.is-locked{background:#c8860a33;border-color:#c8860a}.affix-reroll-btn:disabled{opacity:.3;cursor:not-allowed}.inventory-footer{justify-content:center;padding:8px 0 4px;display:flex}.expand-inventory-btn{color:#c8a060;cursor:pointer;background:linear-gradient(135deg,#1a1400,#2d2200);border:1px solid #4a3800;border-radius:6px;justify-content:center;align-items:center;gap:5px;padding:5px 14px;font-size:11px;transition:all .2s;display:inline-flex}.expand-inventory-btn:hover:not(:disabled){color:gold;border-color:#c8860a;box-shadow:0 0 8px #c8860a44}.expand-inventory-btn:disabled{opacity:.35;cursor:not-allowed}.synergy-dot{pointer-events:none;background:radial-gradient(circle,#d8ffd6 0 22%,#4cff6e 42%,#0000 72%);border:1px solid #96ffa6d1;border-radius:50%;width:8px;height:8px;position:absolute;top:2px;right:2px;box-shadow:0 0 8px #4cff6ee6}.boss-choice-overlay{z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000a6;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.boss-choice-modal{text-align:center;background:linear-gradient(145deg,#0e0500,#1e0a00);border:2px solid #c8860a;border-radius:14px;padding:28px 36px;animation:.35s cubic-bezier(.34,1.56,.64,1) both modalPop;box-shadow:0 0 48px #c8860a44,0 16px 32px #000c}@keyframes modalPop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.boss-choice-icon{object-fit:contain;filter:drop-shadow(0 0 16px #f04c3059);width:70px;height:70px;margin:0 auto 8px;display:block}.boss-choice-title{color:#ffd18a;letter-spacing:.08em;margin:0 0 6px;font-size:1.3rem;font-weight:900}.boss-choice-desc{color:var(--muted);margin:0 0 20px;font-size:.82rem}.boss-choice-btns{gap:12px;display:flex}.boss-choice-btn{cursor:pointer;border:1px solid;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:12px 16px;font-size:.95rem;font-weight:700;transition:all .2s;display:flex}.boss-choice-btn span{color:#ffffff80;font-size:.68rem;font-weight:400}.boss-choice-fight{color:#ffd18a;background:linear-gradient(135deg,#3d1500,#6b2800);border-color:#c8860a}.boss-choice-fight:hover{background:linear-gradient(135deg,#5a2000,#8b3800);box-shadow:0 0 16px #c8860a55}.boss-choice-skip{color:var(--muted);background:#ffffff0a;border-color:#ffffff26}.boss-choice-skip:hover{background:#ffffff14;border-color:#ffffff4d}.retreat-btn{cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:6px;place-items:center;padding:4px 8px;font-size:.9rem;transition:all .2s;display:inline-grid}.retreat-btn img{object-fit:contain;width:20px;height:20px}.retreat-btn:hover:not(:disabled){background:#ff646426;border-color:#ff646466}.retreat-btn:disabled{opacity:.25;cursor:not-allowed}.skill-orb-icon{z-index:1;object-fit:cover;width:50px;height:50px;filter:saturate(1.08) contrast(1.05) drop-shadow(0 0 6px color-mix(in srgb, var(--skill-color,#e05a3a) 35%, transparent));border-radius:6px;display:block;position:relative}.skill-orb-abbr{color:var(--text-strong);font-size:.78rem;font-weight:900;line-height:1}@media (width<=720px){.skill-orb-icon{width:38px;height:38px}}@media (width<=480px){.skill-orb-icon{width:32px;height:32px}}.client-shell{--chrome-line:#b17a2d6b;--chrome-line-soft:#b17a2d38;--chrome-panel:linear-gradient(180deg, #13110ffa, #060809fa);--chrome-panel-soft:radial-gradient(ellipse at 50% 0%, #b867221f, transparent 48%), linear-gradient(180deg, #111212fa, #070809fa);--chrome-inset:inset 0 0 0 1px #ffd5850d, inset 0 0 32px #0000007a;--chrome-shadow:0 18px 48px #0000009e;background:radial-gradient(at 50% -20%,#7a3d172e,#0000 48%),linear-gradient(90deg,#ffc46809 1px,#0000 1px) 0 0/44px 44px,linear-gradient(#07090a,#030404);grid-template-rows:auto minmax(0,1fr) auto;gap:8px;padding:10px}.client-shell .topbar{border:1px solid var(--chrome-line);min-height:58px;box-shadow:var(--chrome-shadow), var(--chrome-inset);background:linear-gradient(90deg,#040506fa,#171009f5 50%,#040506fa),url(/assets/game/ui-chrome/ui-chrome-atlas.png) 50%/720px no-repeat;border-radius:4px;grid-template-columns:minmax(190px,260px) minmax(260px,1fr) auto;padding:7px 12px}.client-shell .topbar:before,.client-shell .topbar:after,.client-shell .mobile-sheet-panel:before,.client-shell .mobile-sheet-panel:after,.client-shell .daily-goals-card:before,.client-shell .offline-modal:before,.client-shell .boss-choice-modal:before{content:"";pointer-events:none;position:absolute}.client-shell .topbar{position:relative}.client-shell .topbar:before{border:1px solid #ffd88c14;inset:4px}.client-shell .topbar:after{background:linear-gradient(90deg,#0000,#f0c36ab8,#0000);width:min(420px,46vw);height:1px;bottom:-1px;left:50%;transform:translate(-50%)}.client-shell .game-badge{min-width:0}.client-shell .game-badge-icon{background:radial-gradient(circle,#be6b2438,#000000b8);border:1px solid #f0c36a47;border-radius:50%;width:38px;height:38px;padding:3px}.client-shell .game-badge-sub{color:#c6ab7ac2;font-family:var(--font-number);letter-spacing:.22em}.client-shell .game-badge-title,.client-shell .mobile-sheet-header strong,.client-shell .panel-title h2,.client-shell .offline-modal-header h3,.client-shell .boss-choice-title,.client-shell .daily-goals-title{font-family:var(--font-title);letter-spacing:.08em;text-shadow:0 2px 8px #000c}.client-shell .topbar-resources{justify-content:center;gap:8px}.client-shell .res-pill{background:linear-gradient(#53371494,#0a0b0bd1),radial-gradient(circle at 50% 0,#f0c36a29,#0000 55%);border-color:#a9772d6b;border-radius:3px;min-height:34px;padding:4px 11px 4px 8px;position:relative;box-shadow:inset 0 0 0 1px #ffe2a00a,0 4px 10px #00000047}.client-shell .res-pill:after{content:"";background:linear-gradient(90deg,#0000,#f0c36a57,#0000);height:1px;position:absolute;bottom:3px;left:7px;right:7px}.client-shell .res-icon,.client-shell .button-art-icon,.client-shell .mobile-dock-icon{filter:drop-shadow(0 0 7px #f0c36a42)}.client-shell .res-val{color:var(--ui-brass-hi);font-family:var(--font-number);font-weight:900}.client-shell .topbar-actions{gap:8px}.client-shell .icon-button,.client-shell .daily-goals-toggle,.client-shell .check-in-btn,.client-shell .burst-button,.client-shell .claim-button,.client-shell .loot-actions button,.client-shell .offline-modal-dismiss,.client-shell .hero-switch-button,.client-shell .daily-goal-claim{min-height:38px;color:var(--text-strong);font-family:var(--font-title);letter-spacing:.06em;background:linear-gradient(#4e3112e0,#0c0c0beb);border:1px solid #b77e2f75;border-radius:4px;font-weight:900;position:relative;box-shadow:inset 0 0 0 1px #ffda910d,inset 0 -10px 24px #00000042}.client-shell .icon-button:hover,.client-shell .daily-goals-toggle:hover,.client-shell .check-in-btn:hover,.client-shell .burst-button:hover:not(:disabled),.client-shell .claim-button:hover,.client-shell .loot-actions button:hover,.client-shell .offline-modal-dismiss:hover,.client-shell .hero-switch-button:hover,.client-shell .daily-goal-claim:hover{border-color:#f0c36ad1;transform:translateY(-1px);box-shadow:inset 0 0 0 1px #ffda9114,0 0 16px #c6860a38}.client-shell .burst-button{background:linear-gradient(#6f2914e6,#200e0af0);border-color:#be422794}.client-shell .burst-button:disabled{color:#c2beb06b;background:linear-gradient(#2a2d2c9e,#0c0d0dd6);border-color:#575a565c}.client-shell .qa-badge{z-index:12;color:#9bd4ff;background:#142d44c7;border-color:#50aaff75;border-radius:2px;min-height:20px;padding:2px 8px;font-size:.68rem;position:absolute;bottom:-24px;left:13px}.client-shell .game-grid,.client-shell .stage-panel{border-color:var(--chrome-line-soft);box-shadow:var(--chrome-shadow), var(--chrome-inset);background:linear-gradient(#0c0d0de0,#050606eb);border-radius:5px}.client-shell .footer-strip{border:1px solid var(--chrome-line-soft);color:#d2be96d1;background:linear-gradient(90deg,#030405d6,#1d1209ad,#030405d6);border-radius:4px;min-height:38px;display:flex;box-shadow:inset 0 0 0 1px #ffd88c0a,0 -10px 24px #00000052}.client-shell .footer-strip strong{color:var(--ui-brass-hi);font-family:var(--font-title)}.client-shell .mobile-dock{z-index:20;border-color:var(--chrome-line);box-shadow:var(--chrome-shadow), inset 0 0 0 1px #ffd88c0a;background:linear-gradient(#16130ff5,#050607f5);border-radius:4px;gap:7px;padding:7px;transition:opacity .18s,transform .18s,filter .18s;position:relative}.client-shell-panel-open .mobile-dock{pointer-events:none;opacity:.28;filter:saturate(.6)}.client-shell .mobile-dock button{background:linear-gradient(#261f17bd,#070809d1);border-color:#ffd88c14;border-radius:3px;min-height:50px;box-shadow:inset 0 0 0 1px #ffd88c08}.client-shell .mobile-dock button.active{background:radial-gradient(circle at 50% 0,#f0c36a33,#0000 58%),linear-gradient(#503112d6,#0c0a08eb);border-color:#f0c36ab8;box-shadow:inset 0 0 18px #f0743e1f,0 0 18px #c6860a29}.client-shell .mobile-dock span{color:#e5d3aed1;font-family:var(--font-title);letter-spacing:.08em}.client-shell .mobile-sheet,.client-shell .daily-goals-overlay,.client-shell .offline-overlay,.client-shell .boss-choice-overlay{z-index:60}.client-shell .mobile-sheet-scrim,.client-shell .daily-goals-overlay,.client-shell .offline-overlay,.client-shell .boss-choice-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:radial-gradient(at 50% 45%,#4d240c2e,#0000 45%),#000000ad}.client-shell .mobile-sheet-panel,.client-shell .daily-goals-card,.client-shell .offline-modal,.client-shell .boss-choice-modal{border:1px solid var(--chrome-line);background:linear-gradient(180deg, #50270d29, transparent 150px), var(--chrome-panel), url(/assets/game/ui-chrome/ui-chrome-atlas.png) 50% 8% / 900px auto no-repeat;box-shadow:var(--chrome-shadow), var(--chrome-inset);border-radius:5px}.client-shell .mobile-sheet-panel:before,.client-shell .daily-goals-card:before,.client-shell .offline-modal:before,.client-shell .boss-choice-modal:before{z-index:0;border:1px solid #ffd88c0f;inset:7px}.client-shell .mobile-sheet-panel>*,.client-shell .daily-goals-card>*,.client-shell .offline-modal>*,.client-shell .boss-choice-modal>*{z-index:1;position:relative}.client-shell .mobile-sheet-panel{width:min(760px,100vw - 56px);top:78px;bottom:74px}.client-shell .hero-drawer-panel{width:min(620px,100vw - 56px)}.client-shell .mobile-sheet-header,.client-shell .offline-modal-header{background:linear-gradient(90deg,#03040547,#663d122e,#03040547);border-bottom:1px solid #b17a2d4d;min-height:54px;padding:10px 16px}.client-shell .mobile-sheet-close,.client-shell .offline-modal-close{background:linear-gradient(#2a1f14e6,#08090aeb);border-color:#b17a2d6b;border-radius:3px}.client-shell .mobile-sheet-body{scrollbar-color:#b17a2d8c #00000040;padding:14px 14px 22px}.client-shell .panel-subsection,.client-shell .panel-section,.client-shell .item-detail-panel,.client-shell .item-compare-column,.client-shell .score-delta,.client-shell .stat-hero-card,.client-shell .stat-group,.client-shell .filter-panel,.client-shell .daily-goal-item,.client-shell .offline-stat{background:radial-gradient(at 50% 0,#b17a2d14,#0000 60%),#050708b8;border:1px solid #b17a2d3d;border-radius:4px;box-shadow:inset 0 0 0 1px #ffd88c08}.client-shell .panel-subsection-header,.client-shell .filter-panel-header,.client-shell .daily-goals-title,.client-shell .stat-group-title{color:var(--ui-brass-hi);font-family:var(--font-title);letter-spacing:.06em}.client-shell .loot-panel{gap:12px}.client-shell .loot-list{background:repeating-linear-gradient(135deg,#ffd88c06 0 1px,#0000 1px 8px),#00000038;border:1px solid #b17a2d38;border-radius:4px;padding:10px}.client-shell .loot-card,.client-shell .skill-card,.client-shell .equipment-slot,.client-shell .filter-row,.client-shell .stat{background:linear-gradient(#1a1a18db,#070809e0);border-color:#b17a2d33;border-radius:3px;box-shadow:inset 0 0 0 1px #ffd88c06}.client-shell .loot-card:hover,.client-shell .loot-card.selected{border-color:color-mix(in srgb, var(--rarity,var(--ui-brass-hi)) 75%, var(--ui-brass-hi));box-shadow:inset 0 0 0 1px #ffd88c0f, 0 0 18px color-mix(in srgb, var(--rarity,var(--ui-brass-hi)) 22%, transparent)}.client-shell .item-icon,.client-shell .equipment-icon{border-color:color-mix(in srgb, var(--rarity,var(--ui-brass)) 58%, #00000080);background:radial-gradient(circle at 50% 35%, color-mix(in srgb, var(--rarity,var(--ui-brass)) 18%, transparent), transparent 58%), linear-gradient(180deg, #161512, #050606);border-radius:3px}.client-shell .equipment-slots{background:radial-gradient(at 50% 0,#5633122e,#0000 56%),#0003;border:1px solid #b17a2d33;border-radius:4px;padding:10px}.client-shell .skill-orb-rack{background:radial-gradient(circle,#61331429,#0000 60%),linear-gradient(#100e0dfa,#050607fa);border-color:#b17a2d57;border-radius:4px}.client-shell .skill-gem{filter:drop-shadow(0 8px 18px #00000075)}.client-shell .rune-tree{background:radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--skill-color) 12%, transparent), transparent 58%), linear-gradient(180deg, #11100f, #050607);border-color:#b17a2d61}.client-shell .filter-chip{background:linear-gradient(#1c1a16eb,#070808eb);border-color:#b17a2d40;border-radius:3px;min-height:34px}.client-shell .filter-chip-on{background:radial-gradient(circle at 12px,#57b48038,#0000 45%),linear-gradient(#183725c7,#070908f0);border-color:#57b48094}.client-shell .filter-chip-dot{box-shadow:0 0 10px}.client-shell .offline-modal,.client-shell .boss-choice-modal,.client-shell .daily-goals-card{color:var(--text)}.client-shell .offline-stats{gap:10px}.client-shell .offline-stat-value,.client-shell .boss-choice-title{font-family:var(--font-number)}.client-shell .boss-choice-btn{font-family:var(--font-title);border-radius:4px}.client-shell .boss-choice-fight{background:linear-gradient(#663710f2,#241008f5);border-color:#f0c36ab8}.client-shell .boss-choice-skip{background:linear-gradient(#2d2f2ec7,#08090af0);border-color:#7a7e7e6b}.client-shell .milestone-toast,.client-shell .boss-kill-banner{font-family:var(--font-title);letter-spacing:.06em}@media (width<=900px){.client-shell{grid-template-rows:auto minmax(0,1fr) auto;padding:6px}.client-shell .topbar{grid-template-columns:minmax(96px,1fr) auto;gap:8px;min-height:170px}.client-shell .topbar-resources{grid-area:1/2/span 2;grid-template-columns:54px;justify-items:stretch;display:grid}.client-shell .res-pill{justify-content:center;min-height:28px;padding:3px 7px}.client-shell .topbar-actions{flex-wrap:wrap;grid-column:1/-1;justify-content:end}.client-shell .footer-strip{display:none}.client-shell .mobile-dock{gap:5px;padding:5px}.client-shell .mobile-dock button{min-height:56px}.client-shell .mobile-sheet-panel,.client-shell .hero-drawer-panel{width:auto;inset:196px 8px 76px}}@media (width<=480px){.client-shell .topbar{min-height:184px}.client-shell .game-badge-icon{width:34px;height:34px}.client-shell .game-badge-title{font-size:.98rem}.client-shell .topbar-actions{gap:7px}.client-shell .daily-goals-toggle,.client-shell .check-in-btn,.client-shell .burst-button,.client-shell .icon-button{min-height:38px}.client-shell .mobile-dock button{min-height:50px}.client-shell .mobile-dock-icon{width:26px;height:26px}.client-shell .mobile-sheet-panel,.client-shell .hero-drawer-panel{inset:200px 6px 70px}}.inventory-header{background:#ffffff08;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:6px 8px;transition:background .2s;display:flex}.inventory-header .inv-capacity-label{color:var(--text-strong);font-size:.82rem;font-weight:700}.inventory-header.inv-near-full .inv-capacity-label{color:#f2c94c}.inventory-header.inv-full .inv-capacity-label{color:#ff5a54;animation:1s ease-in-out infinite invFullPulse}@keyframes invFullPulse{0%,to{opacity:1}50%{opacity:.5}}.salvage-all-btn{color:#ff756e;cursor:pointer;background:#ff5a541a;border:1px solid #ff5a5466;border-radius:4px;align-items:center;gap:4px;padding:4px 10px;font-size:.78rem;font-weight:700;transition:all .15s;display:inline-flex}.salvage-all-btn:hover{background:#ff5a5433;border-color:#ff5a54}.offline-overlay{z-index:300;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000a6;justify-content:center;align-items:center;animation:.25s ease-out both overlayFadeIn;display:flex;position:fixed;inset:0}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.offline-modal{background:linear-gradient(#181008fa,#0c0806fa);border:2px solid #c8860a59;border-radius:16px;width:min(420px,100vw - 32px);animation:.3s cubic-bezier(.34,1.56,.64,1) both modalPopIn;overflow:hidden;box-shadow:0 24px 64px #000000b3,0 0 32px #c8860a26}@keyframes modalPopIn{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.offline-modal-header{border-bottom:1px solid #c8860a26;align-items:center;gap:10px;padding:16px 20px;display:flex}.offline-modal-icon{object-fit:contain;filter:drop-shadow(0 0 10px #f0743e47);width:34px;height:34px;display:block}.offline-modal-header h3{color:#ffd18a;flex:1;margin:0;font-size:1.1rem;font-weight:900}.offline-modal-close{border:1px solid var(--line);background:var(--panel-soft);width:32px;height:32px;color:var(--muted);cursor:pointer;border-radius:6px;place-items:center;display:grid}.offline-stats{grid-template-columns:repeat(2,1fr);gap:10px;padding:20px;display:grid}.offline-stat{border:1px solid var(--line);background:#ffffff08;border-radius:8px;grid-template-rows:auto auto;grid-template-columns:32px 1fr;gap:4px 8px;padding:12px;display:grid}.offline-stat-icon{object-fit:contain;grid-area:1/1/3;place-self:center;width:28px;height:28px}.offline-stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;grid-column:2;font-size:.72rem}.offline-stat-value{color:var(--text-strong);grid-column:2;font-size:1.1rem;font-weight:900}.offline-stat-value.gold{color:#ffd18a}.offline-stat-value.items{color:#f2c94c}.offline-modal-dismiss{color:#ffd18a;cursor:pointer;background:linear-gradient(135deg,#5a3a00cc,#8b5e00cc);border:1px solid #c8860a66;border-radius:8px;width:calc(100% - 40px);margin:0 20px 20px;padding:12px;font-size:.95rem;font-weight:800;transition:all .15s;display:block}.offline-modal-dismiss:hover{background:linear-gradient(135deg,#7a5200e6,#b07800e6);box-shadow:0 0 16px #c8860a40}.milestone-toast{z-index:150;color:#ffd18a;pointer-events:none;white-space:nowrap;background:linear-gradient(135deg,#0a0805f2,#140e08f2);border:1px solid #c8860a80;border-radius:20px;padding:10px 20px;font-size:.82rem;font-weight:600;animation:.4s cubic-bezier(.34,1.56,.64,1) both toastSlideUp;position:fixed;bottom:60px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000080,0 0 12px #c8860a33}@keyframes toastSlideUp{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.panel-tabs{border:1px solid var(--line);background:#0000004d;border-radius:8px;flex-shrink:0;grid-template-columns:repeat(4,1fr);gap:2px;padding:4px;display:grid}.panel-tab{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;align-items:center;gap:1px;padding:5px 3px;font-size:.58rem;font-weight:700;transition:all .15s;display:flex}.panel-tab-icon{object-fit:contain;filter:drop-shadow(0 0 6px #f0743e2e);width:24px;height:24px;display:block}.panel-tab.active .panel-tab-icon{filter:drop-shadow(0 0 8px #ffd18a57)}.panel-title-art-icon,.footer-art-icon{filter:drop-shadow(0 0 6px #f0743e47);width:22px;height:22px}.panel-tab:hover{color:var(--text-strong);background:#ffffff0f}.panel-tab.active{color:#ffd18a;background:#c8860a26;border:1px solid #c8860a4d}.panel-tab-content{scrollbar-width:thin;scrollbar-color:#c8860a4d transparent;flex:1;min-height:0;overflow:hidden auto}.daily-goals-toggle{color:#ffd18a;cursor:pointer;background:#c8860a1f;border:1px solid #c8860a59;border-radius:6px;padding:4px 12px;font-size:13px;transition:background .15s}.daily-goals-toggle:hover{background:#c8860a38}.daily-goals-toggle-pulse{color:#fff1c2;border-color:#ffd76a;animation:1.4s ease-in-out infinite dailyGoalsPulse}@keyframes dailyGoalsPulse{0%,to{box-shadow:0 0 #ffd76a80}50%{box-shadow:0 0 0 6px #ffd76a00}}.daily-goals-overlay{z-index:80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.daily-goals-card{background:linear-gradient(#1c1815 0%,#131110 100%);border:1px solid #c8860a66;border-radius:10px;min-width:380px;max-width:480px;padding:18px 22px;box-shadow:0 12px 40px #0000008c}.daily-goals{flex-direction:column;gap:10px;display:flex}.daily-goals-title{color:#ffd18a;letter-spacing:1px;margin:0 0 4px;font-size:16px}.daily-goals-list{flex-direction:column;gap:10px;display:flex}.daily-goal{background:#ffffff08;border:1px solid #ffffff14;border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.daily-goal-done{background:#8cc85a14;border-color:#8cc85a73}.daily-goal-claimed{opacity:.55}.daily-goal-row{justify-content:space-between;align-items:baseline;font-size:13px;display:flex}.daily-goal-label{color:var(--text-strong)}.daily-goal-progress{color:var(--text-muted);font-variant-numeric:tabular-nums}.daily-goal-bar{background:#ffffff0f;border-radius:3px;height:6px;position:relative;overflow:hidden}.daily-goal-bar>span{background:linear-gradient(90deg,#c8860a,#ffd76a);border-radius:3px;height:100%;transition:width .25s ease-out;display:block}.daily-goal-done .daily-goal-bar>span{background:linear-gradient(90deg,#6dbf4a,#b6ff7a)}.daily-goal-reward{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:12px;display:flex}.daily-goal-claim{color:#fff;cursor:pointer;background:linear-gradient(#c8860a,#8a5a08);border:1px solid #ffd76a80;border-radius:4px;padding:3px 12px;font-size:12px}.daily-goal-claim:hover{color:#1c1815;background:linear-gradient(#ffd76a,#c8860a)}.daily-goal-tag{border-radius:3px;padding:2px 8px;font-size:11px}.daily-goal-tag-claimed{color:var(--text-muted);background:#ffffff0f}.affix-tier-t1{color:#ff8a3d;font-weight:700}.affix-tier-t2{color:#b980ff;font-weight:600}.affix-tier-t3{color:#f2c94c}.affix-tier-t4{color:#58a6ff}.affix-tier-t5{color:#aeb4bb}.item-set-tag{color:#8de0a0;letter-spacing:.04em;background:#2850324d;border:1px solid #6edc8c80;border-radius:4px;margin-top:4px;padding:2px 8px;font-size:11px;display:inline-block}.bestiary-panel{flex-direction:column;gap:14px;padding:4px 2px 12px;display:flex}.bestiary-summary{color:var(--muted);gap:18px;font-size:.82rem;display:flex}.bestiary-summary strong{color:var(--text-strong);margin:0 4px;font-size:1rem}.bestiary-family-title{color:var(--text-strong);letter-spacing:.04em;margin:0 0 6px;font-size:.85rem}.bestiary-family-count{color:var(--muted);margin-left:4px;font-weight:400}.bestiary-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.bestiary-card{border:1px solid var(--line);background:var(--panel-soft);border-radius:6px;flex-direction:column;transition:border-color .12s;display:flex;overflow:hidden}.bestiary-card-killed{border-color:#e05a3a8c}.bestiary-card-seen{border-color:#a0a0a066}.bestiary-card-locked{opacity:.55}.bestiary-card-portrait{aspect-ratio:1;background:#00000073;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.bestiary-card-portrait-img{width:100%;height:100%;image-rendering:pixelated;background-position:0;background-repeat:no-repeat;background-size:400% 100%}.bestiary-card-locked .bestiary-card-portrait-img{filter:brightness(0)saturate(0)}.bestiary-card-seen .bestiary-card-portrait-img{filter:grayscale(.85)brightness(.7)}.bestiary-card-portrait-fallback{color:#ffffff59;font-size:1.6rem;font-weight:700}.bestiary-card-rank{letter-spacing:.04em;color:#ddd;background:#0000008c;border-radius:3px;padding:1px 5px;font-size:10px;position:absolute;top:4px;right:4px}.bestiary-rank-elite{color:#fff;background:#6950c8b3}.bestiary-rank-boss{color:#fff;background:#c0392bd9}.bestiary-card-body{flex-direction:column;gap:2px;padding:6px 8px 8px;display:flex}.bestiary-card-name{color:var(--text-strong);font-size:.82rem}.bestiary-card-stats{color:var(--muted);flex-wrap:wrap;gap:2px;font-size:.72rem;display:flex}.bestiary-card-stats-seen{color:#b8b8b8}.bestiary-card-stats-locked{color:#aaa6;font-style:italic}.bestiary-qa-bar{z-index:5;background:linear-gradient(135deg,#3c1212eb,#1c0c0ceb);border:1px solid #dc503c8c;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 12px;display:flex;position:sticky;top:-16px;box-shadow:0 6px 18px #00000073}.bestiary-qa-bar-info{flex-direction:column;gap:2px;font-size:.78rem;display:flex}.bestiary-qa-bar-info strong{color:#ffb8a0;letter-spacing:.04em}.bestiary-qa-bar-info span{color:#d8c4bd}.bestiary-qa-hint{font-size:.7rem;color:#d8c4bdb3!important}.bestiary-qa-bar-actions{flex-wrap:wrap;gap:8px;display:flex}.bestiary-qa-btn{letter-spacing:.04em;color:#f1d8cc;cursor:pointer;background:#281414b3;border:1px solid #b4645080;border-radius:6px;padding:6px 12px;font-size:.78rem;transition:background .15s,border-color .15s}.bestiary-qa-btn:hover:not(:disabled){background:#501e1ed9;border-color:#dc7850d9}.bestiary-qa-btn:disabled{opacity:.4;cursor:not-allowed}.bestiary-qa-btn-primary{color:#fff;background:linear-gradient(135deg,#d24a2a,#8a2a18);border-color:#ffb088;font-weight:600}.bestiary-qa-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#ee5c38,#a4341e)}.bestiary-qa-btn-exit{color:#c8c8c8;border-color:#8c8c8c66}.bestiary-card-qa-base{opacity:1;border-color:#b4645059}.bestiary-card-qa-base .bestiary-card-portrait-img{filter:none!important}.bestiary-card-qa{cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s}.bestiary-card-qa:hover{border-color:#ffb478b3;transform:translateY(-2px)}.bestiary-card-qa-selected{box-shadow:0 0 0 2px #ffb478a6,0 6px 14px #dc502859;border-color:#ffb088!important}.bestiary-card-qa-disabled{opacity:.4;cursor:not-allowed}.bestiary-card-qa-check{color:#1a0a04;background:#ffb088;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:.85rem;font-weight:700;display:flex;position:absolute;top:4px;left:4px;box-shadow:0 2px 6px #00000080}.qa-badge{letter-spacing:.06em;color:#fff;cursor:pointer;background:linear-gradient(135deg,#d24a2a,#8a2a18);border:1px solid #ffb088;border-radius:999px;align-items:center;margin-right:8px;padding:6px 12px;font-size:.74rem;font-weight:600;animation:2s ease-in-out infinite qa-badge-pulse;display:inline-flex;box-shadow:0 2px 8px #dc502866}.qa-badge:hover{background:linear-gradient(135deg,#ee5c38,#a4341e)}@keyframes qa-badge-pulse{0%,to{box-shadow:0 2px 8px #dc502866}50%{box-shadow:0 2px 14px #ff8250b3}}.stat-hero-card{background:linear-gradient(#281c0c73,#0a0c0ea6);border:1px solid #b4823c4d;border-radius:6px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.stat-hero-card-row{justify-content:space-between;align-items:baseline;display:flex}.stat-hero-card-name{color:#f3d98a;letter-spacing:.04em;font-size:.95rem;font-weight:700}.stat-hero-card-level{color:#fff;font-variant-numeric:tabular-nums;font-size:1.15rem}.stat-hero-card-xpbar{background:#0000008c;border:1px solid #ffffff0d;border-radius:3px;height:6px;overflow:hidden}.stat-hero-card-xpbar>span{background:linear-gradient(90deg,#51b4a6,#f2c94c);height:100%;transition:width .2s;display:block;box-shadow:0 0 6px #f2c94c66}.stat-hero-card-xpnum{color:#bea56eb3;letter-spacing:.06em;text-align:right;font-size:.66rem}.stat-group{flex-direction:column;gap:6px;display:flex}.stat-group-title{letter-spacing:.12em;text-transform:uppercase;color:#bea56ea6;border-bottom:1px dashed #b4823c2e;margin:0;padding-bottom:2px;font-size:.66rem;font-weight:700}.stat-list.compact{gap:6px}.stat-list.compact .stat{padding:8px 10px}.stat-list.compact .stat strong{margin-top:2px;font-size:1.15rem}.stat-list.compact .stat span{font-size:.64rem}.filter-panel{flex-direction:column;gap:8px;display:flex}.filter-panel-header{border-bottom:1px dashed #b4823c33;justify-content:space-between;align-items:baseline;padding-bottom:4px;display:flex}.filter-panel-header span{letter-spacing:.1em;text-transform:uppercase;color:#bea56ea6;font-size:.66rem}.filter-panel-header strong{color:#f3d98a;font-variant-numeric:tabular-nums;font-size:.95rem}.filter-panel-header strong small{color:#bea56e80;margin-left:2px;font-size:.7rem;font-weight:500}.filter-chip-grid{flex-wrap:wrap;gap:6px;display:flex}.filter-chip{border:1px solid var(--line);color:#b4a078b3;letter-spacing:.02em;cursor:pointer;background:#ffffff05;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.74rem;transition:border-color .12s,background .12s,color .12s;display:inline-flex}.filter-chip:hover{color:#f3d98a;border-color:#f2c94c73}.filter-chip-dot{background:#b4a0784d;border:1px solid #ffffff0f;border-radius:50%;width:7px;height:7px}.filter-chip-on{color:#c8ffd9;background:#3c6e4b2e;border-color:#6ada8c8c;box-shadow:inset 0 0 8px #6ada8c14}.filter-chip-on .filter-chip-dot{background:#6ada8c;border-color:#c8ffd9;box-shadow:0 0 6px #6ada8cb3}.mobile-log-list .mobile-log-item{font-variant-numeric:tabular-nums;color:#dcd7c8d9;border-bottom:1px solid #b4823c1f;padding:6px 8px;font-size:.78rem;line-height:1.45}.mobile-log-list .mobile-log-empty{text-align:center;color:#b4a07880;border-bottom:none;padding:24px 8px;font-style:italic}.mobile-log-list .mobile-log-kill{color:#ffb380}.mobile-log-list .mobile-log-crit{color:#ff6b6b;font-weight:600}.mobile-log-list .mobile-log-loot{color:#c8ffd9}.mobile-log-list .mobile-log-levelup{color:#f3d98a;font-weight:700}.mobile-log-list .mobile-log-bleed{color:#d97757}.res-pill-torment{cursor:pointer;background:#b43c282e;border:1px solid #e05a3a8c;align-items:center;gap:4px;display:inline-flex}.res-pill-torment:hover{background:#e05a3a47}.res-pill-torment .res-val{color:#ffb380;font-weight:700}.torment-panel{padding:12px}.torment-panel-head{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.torment-panel-head strong{color:#ffb380;font-size:14px}.torment-panel-sub{color:#aaa;font-size:12px}.torment-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;display:grid}.torment-cell{color:#ddd;text-align:left;cursor:pointer;background:#1e1e2399;border:1px solid #78787866;border-radius:6px;flex-direction:column;gap:4px;padding:8px;transition:border-color .15s,background .15s;display:flex}.torment-cell:hover:not(:disabled){background:#3c2323b3;border-color:#e05a3ab3}.torment-cell:disabled{cursor:default}.torment-cell-locked{opacity:.45}.torment-cell-current{background:#f0743e2e;border-color:#f0743e;box-shadow:inset 0 0 0 1px #f0743e59}.torment-cell-head{justify-content:space-between;align-items:center;display:flex}.torment-cell-tier{color:#ffb380;font-size:14px}.torment-cell-badge{color:#ccc;background:#50505080;border-radius:3px;padding:1px 6px;font-size:10px}.torment-cell-badge-ok{color:#b8e8c0;background:#50a0644d}.torment-cell-badge-lock{color:#888;background:#50505080}.torment-cell-current .torment-cell-badge{color:#ffe0c8;background:#f0743e66}.torment-cell-stats{color:#ccc;justify-content:space-between;font-size:11px;display:flex}.torment-cell-loot{color:#c8ffd9}.achievements-panel{padding:12px}.achievements-panel-head{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.achievements-panel-head strong{color:#ffd980;font-size:14px}.achievements-panel-sub{color:#aaa;font-size:12px}.achievements-section-title{color:#999;letter-spacing:.5px;margin:12px 0 6px;font-size:12px}.achievements-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;display:grid}.achievement-card{background:#1e1e2399;border:1px solid #78787866;border-radius:6px;flex-direction:column;gap:4px;padding:8px;display:flex}.achievement-card-unlocked{background:#503c1e59;border-color:#f3d98ab3;box-shadow:inset 0 0 0 1px #f3d98a40}.achievement-card-event{opacity:.7}.achievement-card-head{justify-content:space-between;align-items:center;display:flex}.achievement-card-title{color:#f0e8c8;font-size:13px}.achievement-card-unlocked .achievement-card-title{color:#ffe58a}.achievement-card-badge{color:#ccc;background:#50505080;border-radius:3px;padding:1px 6px;font-size:10px}.achievement-card-badge-ok{color:#ffe58a;background:#f3d98a4d}.achievement-card-badge-event{color:#b0b8e0;background:#50507866}.achievement-card-desc{color:#bbb;font-size:11px;line-height:1.4}.achievement-card-bar{background:#3c3c3c99;border-radius:2px;height:4px;overflow:hidden}.achievement-card-bar-fill{background:linear-gradient(90deg,#d97757,#f3d98a);height:100%;transition:width .3s}.achievement-card-reward{color:#c8ffd9;font-size:10px}.build-planner-panel{padding:12px}.build-planner-head{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.build-planner-head strong{color:#ffd980;font-size:14px}.build-planner-sub{color:#aaa;font-size:12px}.build-planner-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.build-card{border:1px solid var(--build-accent,#78787866);background:#1e1e23b3;border-radius:6px;flex-direction:column;gap:8px;padding:10px;display:flex}.build-card-head{align-items:center;gap:8px;display:flex}.build-card-icon{font-size:22px;line-height:1}.build-card-titles{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.build-card-name{color:var(--build-accent,#fff);font-size:14px}.build-card-tagline{color:#999;font-size:11px}.build-card-pct{color:var(--build-accent,#fff);font-size:16px;font-weight:700}.build-card-bar{background:#3c3c3c99;border-radius:2px;height:4px;overflow:hidden}.build-card-bar-fill{background:var(--build-accent,#d97757);height:100%;transition:width .3s}.build-card-counts{color:#ccc;font-size:11px}.build-card-desc{color:#b8b8b8;font-size:11px;line-height:1.5}.build-card-reqs{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.build-card-req{background:#32323780;border-radius:3px;align-items:center;gap:6px;padding:3px 6px;font-size:11px;display:flex}.build-card-req-kind{color:#ddd;background:#50506499;border-radius:2px;flex-shrink:0;padding:0 4px;font-size:10px}.build-card-req-label{color:#ccc;flex:1}.build-card-req-status{flex-shrink:0;font-size:10px}.build-card-req-have{background:#50a06440}.build-card-req-have .build-card-req-label,.build-card-req-have .build-card-req-status{color:#c8ffd9}.build-card-req-owned{background:#a08c5033}.build-card-req-owned .build-card-req-label,.build-card-req-owned .build-card-req-status{color:#f3d98a}.build-card-req-missing{opacity:.65}.build-card-req-missing .build-card-req-status{color:#888}.build-card-req-empty{color:#888;background:0 0;font-style:italic}.zone-mod-badge{color:#d8c8f0;cursor:help;background:#503c6466;border:1px solid #b48cdc80;border-radius:3px;align-items:center;margin-left:6px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.crimson-tide-badge{color:#ffd0d0;cursor:help;background:#b41e1e66;border:1px solid #ff5050b3;border-radius:3px;align-items:center;margin-left:6px;padding:2px 8px;font-size:11px;font-weight:700;animation:1.5s ease-in-out infinite crimsonPulse;display:inline-flex}@keyframes crimsonPulse{0%,to{box-shadow:0 0 #ff505099}50%{box-shadow:0 0 8px 2px #ff5050b3}}
